3000 characters? You'd probably want either a BLOB or a TEXT file, since the physical limits of char and varchar are 256 characters. You may want to ask whether you actually need the data in the database, however. You could store the text in each case in a text file on your machine's file system and then just reference that from a field that stored the _path_ to each file.
Why do that? Well, records with BLOB or TEXT data in
can get very messy after a while, and take some looking after. Both these types are, for the pruposes of storing text, like having very large varchar feilds - and hence come with the same inherent problems of storing, searching and deleting/inserting large numbers of data records of very different lengths. Eventually the database becomes fragmented, and you need to run OPTIMIZE TABLE to clean things up (this is true even on Linux, which does not suffer fragmentation problems natively, since MySQL uses a linked list of drive locations to store where the data is in its data-directories (
http://dev.mysql.com/doc/mysql/en/OP...E.html#IDX1707).
So what are the advantages of storing your text in your database? Well, first and foremost, you only ever have to back up your database, in order to back up all your data. Also, if your fields are _all_ going to be around the 3000 characters in size, then the potential messiness of deleted BLOBs probably isn't a great concern. You'd be running OPTIMIZE TABLES periodically, anyway. String your data in your database is also more flexible, since you can search the data directly, and so on. While using separate files and storing their paths in your database makes a lot of sense when dealing with potential BLOB data types such as images, ithere are less inherent benefits when considering text, since any such approach which puts some of the data for your application outside the actual database means that you are beginning to store data about how you are storing your data, rather than just storing your data.
That's probably more info than you wanted, though....
'Use a TEXT field, Mike.'
Take it easy,
Dan