《mysql char、varchar、text等字符串类型定义Mysql必读》要点:
本文介绍了mysql char、varchar、text等字符串类型定义Mysql必读,希望对您有用。如果有疑问,可以联系我们。
导读:1.对于长度基本固定的列,如果该列恰好更新又特别频繁,适合char2.varchar虽然存储变长字符串,但不可太小也不可太大.UTF8最多能存21844个...
1.对于长度基本固定的列,如果该列恰好更新又特别频繁,适合char
2.varchar虽然存储变长字符串,但不可太小也不可太大.UTF8最多能存21844个汉字,或65532个英文
3.varbinary(M)保存的是二进制字符串,它保存的是字节而不是字符,所以没有字符集的概念,M长度0-255(字节).只用于排序或比较时大小写敏感的类型,不包括密码存储
4.TEXT类型与VARCHAR都类似,存储可变长度,最大限制也是2^16,但是它20bytes以后的内容是在数据页以外的空间存储(row_format=dynamic),对它的使用需要多一次寻址,没有默认值.
一般用于存放容量平均都很大、操作没有其它字段那样频繁的值.
网上部分文章说要避免使用text和blob,要知道如果纯用varchar可能会导致行溢出,效果差不多,但因为每行占用字节数过多,会导致buffer_pool能缓存的数据行、页下降.另外text和blob上面一般不会去建索引,而是利用sphinx之类的第三方全文搜索引擎,如果确实要创建(前缀)索引,那就会影响性能.凡事看具体场景.
另外尽可能把text/blob拆到另一个表中
5.BLOB可以看出varbinary的扩展版本,内容以二进制字符串存储,无字符集,区分大小写,有一种经常提但不用的场景:不要在数据库里存储图片.
转载请注明本页网址:
http://www.vephp.com/jiaocheng/5564.html