I am using MySQL data base with Rails. I have created a field of type string. Are there any limits to its length? What about type text?
Also as text is variable sized, I believe there would be extra costs associated with using text objects. How important can they get, if at all?
A fixed-length string that is always right-padded with spaces to the specified length when stored The range of Length is 1 to 255 characters. Trailing spaces are removed when the value is retrieved.
CHARvalues are sorted and compared in case-insensitive fashion according to the default character set unless theBINARYkeyword is given.
A variable-length string. Note: Trailing spaces are removed when the value is stored (this differs from the ANSI SQL specification)
The range of Length is 1 to 255 characters.VARCHARvalues are sorted and compared in case-insensitive fashion unless theBINARYkeyword is given
A
TINYBLOBorTINYTEXTcolumn with a maximum length of 255 (28 - 1) characters
A
BLOBorTEXTcolumn with a maximum length of 65,535 (216 - 1) characters , bytes = 64 KiB
A
MEDIUMBLOBorMEDIUMTEXTcolumn with a maximum length of 16,777,215 (224 - 1)characters , bytes = 16 MiB
A
LONGBLOBorLONGTEXTcolumn with a maximum length of 4,294,967,295 (232 - 1) characters , bytes = 4 GiB
See MySQL Data Types Quick Reference Table for more info.
also you can see MYSQL - String Type Overview
String, in general, should be used for short text. For example, it is a VARCHAR(255) under MySQL.
Text uses the larger text from the database, like, in MySQL, the type TEXT.
For information on how this works and the internals in MySQL and limits and such, see the other answer by Pekka.
If you are requesting, say, a paragraph, I would use text. If you are requesting a username or email, use string.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With