mysql军规

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未允许的子查询

 

posted @ 2011-11-22 20:39  秋丰  阅读(266)  评论(0)    收藏  举报