MySQL的 40条使用规则

1、数据库和表的字符集统一使用 UTF-8
2、所有表最好都使用 Innodb 存储引擎
3、所有的表和字段都需要添加注释
4、在表中建立预留字段
5、禁止在数据库中存储图片,文件等大的二进制数据
6、尽量控制单表数据量的大小,建议控制在500万以内
7、谨慎使用MYSQL分区表
8、尽量做到冷热数据分离,减小表的宽度
9、禁止在线上做数据库压力测试
10、禁止从开发环境、测试环境直接连生产环境数据库
11、选择符合存储需要的最小的数据类型
12、避免使用 TEXT,BLOB 数据类型,TEXT类型可以存储 64k 的数据
13、避免使用 ENUM 类型
14、尽可能把所有列定义为 NOT NULL
15、使用 TIMESTAMP(4 个字节)或DATETIME 类型(8个字节)存储时间
16、同财务相关的金额类数据必须使用decimal 类型
17、限制每张表上的索引数量,建议单张表索引不超过5个
18、禁止给表中的每一列都建立单独的索引
19、每个 Innodb 表必须有个主键
20、不要在不适合的时候创建索引
21、适合索引场景尽量创建索引
22、合理使用索引列,避免索引失效
23、选择正确的索引列的顺序
24、避免建立冗余索引和重复索引(增加了查询优化器生成执行计划的时间)
25、对于频繁的查询优先考虑使用覆盖索引
26、建议使用预编译语句进行数据库操作
27、避免数据类型的隐式转换
28、设计数据库时,应该要对以后扩展进行考虑
29、充分利用表上已经存在的索引
30、程序连接不同的数据库使用不同的账号,禁止跨库查询
31、禁止使用不含字段列表的INSERT 语句
32、避免使用子查询,可以把子查询优化为 join 操作
33、避免使用 JOIN 关联太多的表
34、减少同数据库的交互次数
35、对应同一列进行 or 判断时,使用 in代替 or
36、禁止使用 order by rand()进行随机排序
37、WHERE 从句中禁止对列进行函数转换和计算
38、在明显不会有重复值时使用 UNIONALL 而不是 UNION
39、拆分复杂的大 SQL 为多个小 SQL
40、禁止为程序使用的账号赋予 super 权限

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值