Mysql之对一些数据类型的选用

1.char和varchar:
char为定长,varchar不定长,varchar类型用得比较多,对于那些长度变化不大并且对查询速度有较高要求的数据可以考虑使用char类型来存储。
不同的存储引擎对char和varchar的使用原则有所不同:
(1)myisam引擎:建议使用定长的数据列;
(2)memory引擎:无论选择哪种类型,都是按char类型来处理;
(3)innodb引擎:建议用varchar类型。

2.text和blob:保存较大文本时会使用这两种类型。

区别:Bolb能用来保存二进制数据,比如照片;text只能保存字符数据。
这两种类型会引起一些性能问题,特别是在执行了大量的删除操作时,删除操作会在数据表中留下很大的空洞,为了提高性能,建议定期使用optimize table功能
对这类表进行碎片整理。
可以使用合成索引来提高大文本的查询性能:
合成索引就是根据大文本字段的内容建立一个散列值,并把这个值存储在单独的数据列中,接下来就可以通过检索散列值找到数据行了。这种技术只能用于
精确匹配的查询。可以使用MD5()函数生成散列值。
补充:repeat()函数可以插入大量字符串:如:repeat('haha',100);这个返回的是一个text或者blob类型的值
3.浮点数和定点数:
精确保存数据的话要使用定点数(decimal)。

浮点数容易丢失精度。

4.日期类型的选择:

(1)根据实际需要选择能够满足应用的最小存储的日期类型。

(2)如果要记录年月日时分秒,并且记录的年份比较久远,那么最好使用DATETIME。

(3)如果记录的日期需要让不同时区的用户使用,那么最好使用TIMESTAMP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值