美文网首页
一:表的优化与列类型的选择

一:表的优化与列类型的选择

作者: _sleeping | 来源:发表于2018-08-07 10:57 被阅读5次

    1.选择合适的数据类型

    数据类型的选择,重点在于合适二字,如何确定选择的数据类型是否合适

    列选择原则

       使用简单的数据类型,使用可以存下你的数据的最小的数据类型,Int要比varchar类型在mysql处理上简单。

        字段类型优先级:整形>date,time>enum(枚举),char>varchar>blob,text

        尽可能的使用not null定义字段

        尽量少用text类型,非用不可时最好考虑分表

    列的特点分析

        整形:定长,没有字串集的差异,

         比如 tinyint,1,2,3,4 char(1) a,b,c,d,e

         从空间上,都是占1个字节,但order by 排序前者快

        原因:字符需要考虑字符集与校对集(就是排序规则)

        time 定长,运算快,节省空间

        enum能以到约束值的目的,内部用整形存储但是与char联查内部需要转换

        char 定长

        varchar 不定长

        text/blob 无法使用内存临时表(排序等操作只能在磁盘进行)

    例如:使用int存储日期时间,利用FROM_UNIXTIME(),UNIX_TIMESTAMP()两个函数来进行转换。

    使用bigint存储IP地址,利用INET_ATON(),INET_NTOA()来进行转换。

          insert into test(ip) values (inet_aton('192.168.0.100'))

          select inet_ntoa(ip) from test;

    2.定长与变长分离

    核心且常用的字段,宜设置为定长保存到一张表,

    而varchar,text,blob,这种变长字段适合单独放扩展表,用主键与核心表关联起来。

    3.常用字段和不常用字段要分离

    结合具体业务,将不常用的查询频度较低的字段拆出来

    4.在1对多,需要关联统计的字段添加冗余字段,以减少连表和子查询

    相关文章

      网友评论

          本文标题:一:表的优化与列类型的选择

          本文链接:https://www.haomeiwen.com/subject/lqeovftx.html