您现在的位置是:亿华云 > 系统运维
MySQL优化之Schema设计
亿华云2025-10-03 02:49:50【系统运维】8人已围观
简介本文转载自微信公众号「小猪notebook」,作者钟Ger。转载本文请联系小猪notebook公众号。参考文献:《高性能MySQL(第三版)》1. 更优化的数据类型(1)选择可以正确存储数据的最小数据
本文转载自微信公众号「小猪notebook」,设计作者钟Ger。设计转载本文请联系小猪notebook公众号。设计
参考文献:《高性能MySQL(第三版)》
1. 更优化的设计数据类型
(1)选择可以正确存储数据的最小数据类型。 因为它们占用更少的设计磁盘、内存和CPU缓冲,设计且处理时需要的设计CPU周期也更少。
(2)简单的设计数据类型。 因为简单数据类型的设计操作通常需要更少的CPU周期。eg:整型比字符型更好;使用MySQL内建的设计类型如date、datetime、设计time等而不是设计字符串来存储日期和时间;使用整型来存储IP地址而非字符串。源码库
(3)尽量避免NULL。设计通常情况下最好指定列为NOT NULL。设计因为若查询中包含可以为NULL的设计列,对于MySQL对可为NULL列使用索引、索引统计和值比较都更复杂。
我们建表时选择数据类型参考上图的流程即可。
2. MySQL数据类型大致整理
我们开发中常用的MySQL数据类型整理如下:
在建表的过程中,我们可以根据不同数据类型的优缺点来进行选取,从而使得表的存储空间与性能达到最优。
3. 一些简单的设计原则
一些我们开发过程中值得借鉴的表设计原则总结:
避免过度设计,减少产生复杂查询的schema、香港云服务器多列表的设计 使用小而简单的合适数据类型,除非真实数据模型中有明确需要,否则尽可能避免使用null值,而应该给每个列设置一个默认0值 尽可能使用相同数据类型存储相似或相关的值,尤其是关联条件中使用的列 可变长字符串中尽可能按需设置字符串的长度 避免使用MySQL废弃的特性,例如指定浮点数的精度、整数的显示宽度等 希望每位Developer都能够好好设计表,减少被公司的DBA吐槽的机会很赞哦!(9)