码迷,mamicode.com
首页 > 数据库 > 详细

如何为MySQL选择更合适的数据类型

时间:2017-12-09 18:07:08      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:设计   ip地址   color   准则   效率   一个   使用进行   固定   数据   

更小的通常更好

在表设计最开始之初,我认为这里的选择合适的数据类型是非常关键的,他可以尽可能减轻数据库的硬盘占用,和在查询的过程中越简单越小的数据类型则需要的占用了更小的cpu缓存,内存,硬盘,和相对应的处理cpu的周期。

简单就好

数据类型的选择应该保持越简单越好的准则, 比方说整形比起字符类型来说的代价更低,因为字符类型的校对规则和排序规则相对于整形来说更加复杂

应该使用mysql 的内建类型而不是选择字符串来进行存储日期和时间,也应该使用整形来存储ip地址。

尽量避免NULL

而且应该避免使用null类型,因为NULL对MySQL来说会更难进行优化,null列会使得索引、索引统计、和值比较发生更为复杂的变化,并且为null的列会使用更多的储存空间在MySQL中也需要更特殊的处理,当null被索引的时候

每个索引记录会需要一个额外的字节,在myisam 中甚至会导致固定大小的索引(例如只有一个整数列索引)变成可变大小的索引。通常null的列改为not null 带来的性能提升比较小,所以(调优时)没有必要首先在现有的数据表

中查找并且修正 ,除非确定这块会导致问题,但是在计划创建索引的列中,就应该尽量避免设计成null列,但值得一提的是在innodb中使用进行null列的存储是使用单独的位(bit)进行存储null 的值,在大量出现null 的情况,有很好

的空间效率。但这点不适用于myisam。

 

如何为MySQL选择更合适的数据类型

标签:设计   ip地址   color   准则   效率   一个   使用进行   固定   数据   

原文地址:http://www.cnblogs.com/gosimple/p/8012014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!