转自 刘智慧的文章
1.尽量不要在数据库做运算,复杂运算移到程序段cpu,竟可能简单运用mysql
2.控制单表数据量, 库表控制300---400,单表字段控制20---50个,单表1G或500W行
3.效率优先,提升性能,适当牺牲范式,加入冗余
4.拒绝大事务,大SQL,大批量
5.将字符转为数字更加高效,查询更快,占用空间越少
6.避免使用null,会是索引失效
7.尽量不要用text,blob的数据类型,不要存图片在数据库中
8.能不加索引尽量不加
9.不要用索引列数据进行数据运算,会索引失效,导致全表扫描
10.尽量不要用外键
11.尽可能少用触发器和存储过程
12.尽量不要用 select *,指定要查询的字段
13.改or 用 in 或union
14.避免负向查询(not 。。) 或%前缀的查询,导致 索引失效
15.count(*)开销大,少用
16.统一字符集 和 校对规则
17.统一命名规范
18.不要在程序段 对数据库显示加锁,因对数据库不可控,采用事务
19.mysql的子查询大部分性能较差
20.分解连接(内外连接),单表执行,保证高并发