1,尽量简单应用mysql,不要让mysql去做运算。比如 md5 order by Rand()
2, 一个数据库的表不要太多,表的字段数不要太多。数据库设计遵循平衡原则,适当牺牲范式,加入冗余,在代码复杂度,性能,设计规范三项中取得平衡。
3,拒绝大sql ,大事务, 大批量。
4,选择合适的字段。 比如int有几种,每一种占有的空间不一样,范围也不一样。不需要存负数使用无符号字段。例如ip用 int UNSIGNED 存就比varchar(15)效率更高
5,优先使用ENUM或SET ,避免使用null字段。
6,少用text,blob字段,并拆分到单独的表。
7,合理添加索引,字符字段必须添加前缀索引。不要在索引列进行数学运算或者函数运算。尽量不用外键。每个表都要有一个自增列做主键。
8,sql语句尽量简单
9,保持事务(连接)短小
10,只取用到的字段不用 select *
11,同一字段的or 改用 in where id = 1 or id = 2 改为 id in(1,2)
12,like 'something%' 才用的到索引
13,减少使用count(*)
14, limit 分页优化
15,GROUP BY 去除排序
16,用UNION ALL 而非 UNION
17,统一用utf-8
18,禁止DBA未允许的子查询