如何为MySQL选择更合适的数据类型
Posted to_simple
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为MySQL选择更合适的数据类型相关的知识,希望对你有一定的参考价值。
更小的通常更好
在表设计最开始之初,我认为这里的选择合适的数据类型是非常关键的,他可以尽可能减轻数据库的硬盘占用,和在查询的过程中越简单越小的数据类型则需要的占用了更小的cpu缓存,内存,硬盘,和相对应的处理cpu的周期。
简单就好
数据类型的选择应该保持越简单越好的准则, 比方说整形比起字符类型来说的代价更低,因为字符类型的校对规则和排序规则相对于整形来说更加复杂。
应该使用mysql 的内建类型而不是选择字符串来进行存储日期和时间,也应该使用整形来存储ip地址。
尽量避免NULL
而且应该避免使用null类型,因为NULL对MySQL来说会更难进行优化,null列会使得索引、索引统计、和值比较发生更为复杂的变化,并且为null的列会使用更多的储存空间在MySQL中也需要更特殊的处理,当null被索引的时候
每个索引记录会需要一个额外的字节,在myisam 中甚至会导致固定大小的索引(例如只有一个整数列索引)变成可变大小的索引。通常null的列改为not null 带来的性能提升比较小,所以(调优时)没有必要首先在现有的数据表
中查找并且修正 ,除非确定这块会导致问题,但是在计划创建索引的列中,就应该尽量避免设计成null列,但值得一提的是在innodb中使用进行null列的存储是使用单独的位(bit)进行存储null 的值,在大量出现null 的情况,有很好
的空间效率。但这点不适用于myisam。
以上是关于如何为MySQL选择更合适的数据类型的主要内容,如果未能解决你的问题,请参考以下文章