Mysql文章千千万再次做一个常用的汇总
单表优化:
单表的性能经过优化可支撑千万级别的数据量,数据量在这之下的不建议做拆分
索引:
不要轻易建索引,针对经常出现在where和order by的字段建立索引
在where语句中进行Null值判断会放弃使用索引而进行全表扫描
值分布很少的字段不适合建索引,例如性别
字符字段只建前缀索引
不用外键吗,由程序保证约定
使用联合索引时注意查询顺序和索引顺序一致
查询SQL:
慢查询日志来找慢SQL
不做列运算任何对列的操作都将导致全表扫描,包括库函数,将操作移到等号后面
sql语句尽可能简单,大语句拆小语句,一条sql只能在一个cpu中运行,减少锁时间
不用select *
or改写成in,or的效率是n,in的效率是log(n)
不用函数和触发器在程序中实现
避免%xx类型的查询
避免在where中使用!=和><会导致全表扫描
对于连续数值使用between代替in
尽量使用in来替代join
7万+

被折叠的 条评论
为什么被折叠?



