一文看懂MySQL schema优化的 23个建议
概述

mysql schema优化建议
1、保证你的数据库的整洁性。
2、归档老数据
删除查询中检索或返回的多余的行。
3、在数据上加上索引
加完索引一定要看下执行计划
4、不要过度使用索引,评估你的查询
因为增删改每次都需要维护索引。

5、压缩 text 和 blob 数据类型
主要是为了节省空间,减少从磁盘读数据
6、UTF 8 和 UTF16 比 latin1 慢
7、有节制的使用触发器
尽可能放在业务层面实现。
8、保持数据最小量的冗余 — 不要复制没必要的数据
9、使用链接表,而不是扩展行
10、注意你的数据类型,尽可能的使用最小的
主要是为了节省空间,前面应该是有介绍了根据生产环境的数据去评估数据类型长度。
11、如果其他数据需要经常需要查询,而 blob/text 不需要,则将 blob/text 数据域其他数据分离
12、经常检查和优化表
命令是:optimize table XXX;
13、经常做重写 InnoDB 表的优化
实际上就是alter table xx engine=innodb;
13、有时,增加列时,先删除索引,之后在加上索引会更快
建议DDL操作用PT工具去做。
15、为不同的需求选择不同的存储引擎
比较推荐用innodb引擎
16、日志表或审计表使用ARCHIVE存储引擎 — 写的效率更高
建议单独规划一个库来做。
17、将 session 数据存储在 memcache 中,而不是 MySQL 中
memcache 可以设置自动过期,防止MySQL对临时数据高成本的读写操作
18、如果字符串的长度是可变的,则使用VARCHAR代替CHAR
主要是节约空间,因为CHAR是固定长度,而VARCHAR不是(utf8 不受这个影响)
19、逐步对 schema 做修改
永远保持对数据库的敬畏,因为你不知道一个小的变化将会产生怎样巨大的影响
20、在开发环境测试所有 schema 变动,而不是在生产环境的镜像上去做
DDL操作一定要慎重
21、不要随意改变你的配置文件,这可能产生非常大的影响
修改配置文件都需要在测试环境验证后再上生产
22、有时候,少量的配置会更好
增加参数需要对该参数所带来的后果有一定的了解。

23、质疑使用通用的MySQL配置文件
配置最好都自定义。
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36