美文网首页
Schema与数据类型优化

Schema与数据类型优化

作者: 肉饼屋 | 来源:发表于2019-09-26 08:53 被阅读0次

    我们在定义表结构时或者在对表进行修改时,需要注意一些东西

    数据类型

    1. 使用越大数据类型,则会使用更多的内存,所以在选择数据类型时就尽量考虑合适的类型
    2. Mysql在存储char类型数据时,会删除所有的末尾空格
    3. Mysql在存储Text和Blob类型数据时,是当做一个对象进行存储的,当值太大时,InnoDB会使用专门的“外部”存储区域来进行存储。
    4. 时间类型有两种datetimetimestampdatetime能保存大范围的值,从1001年到9999年,精度为秒;timestamp能保存1970以来的秒数,由于只使用4位字节的存储空间,所以最大只能存储2038年,当超过这个范围,在插入或者修改时就会报错。
    5. 选择行标识符时,尽量选择性能好的类型,例如整数型。
    6. 使用不同的类型的标识符进行连表,性能可能会不一样

    范式和反范式

    在教科书上,一般都会追求范式,一级、二级等等。但是在实际中,过度的范式,会导致过多的连表,导致索引失效、查询时间增加、开发难度等问题,所以一般都需要两者相结合,例如增加缓存表或者汇总表,可以通过触发器来进行自动维护。

    使用alter table

    在使用alter table时,需要注意它极大可能会导致表的重建,表的重建会锁住整张表,导致数据库的性能整体下降,特别是大表,我在实际工作中,给一张上亿行的表增加过字段,需要3个小时才能完成,而且也出现了性能上的问题。

    相关文章

      网友评论

          本文标题:Schema与数据类型优化

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