1:原则上 索引和删表能解决80%的问题 比如订单表 三个月前的删除(移动到历史库)
2:一些技巧上的
比如查询条件不要带函数 比如时间带date_format 先自己算好成时间戳再去做条件
stauts这种 最要不要用string 建议用int 0 1 2 3 数字比字符串快
3:后端使用上的
循环里面不要去查询 可以直接用join
多数情况下group by 能解决大多数问题
不行就group by 多字段+unionall +contact
原则上 一条sql 一定比多条sql省时间
如果这一条很慢 那么多数条件下 是有优化的余地
4:模型设计上的
(1)大数据量的表 尽量字段要少 尽量不要去动
比如网站的全部粉丝表
现在突然有一天 要设置其中100个为管理员
普通做法 100w一下 是加一个字段 比如isadmin 但这样非常不好 很多对管理员的操作模型就会去链接这张极其数据量大的表
正确做法 应该新建一张管理员表来关联这个粉丝表
(2)常用的表 不要有大字段 ,分表分表 原则上不要怕表多 字段多才是灾难
(3)可以考虑innodb 但数据特大的时候就不要去查了 都没优化的余地
5:某些统计类 日志类的东西 如果特爱去查 最好每天定时去生成 比如留存
当然 如果量小 一句sql也可以
6:善用存储过程 比如某些递归 存储过程还是蛮快的