语句尽量简单,不在数据库做复杂运算;select,insert一定要带上字段名,不允许select *,优化LIMIT分页:不要用LIMIT start, offset。
2
/7
不允许where后面字段上做运算或者加函数,会导致用不了索引;禁用select for update、 insert……select from、insert TB values……(必须明确给出字段)、order by rand()语法。
3
/7
只用inner join或者left join;禁止用right join。表关联的on必须有索引,只关联需要表,只选择需要的列。
4
/7
复杂查询拆分简单查询;尽量小批量小语句分段执行;一个sql不要超过1G的binlog;大事务可以set auto_commit =0 关闭自动提交,但是拒绝滥用,会导致阻塞。
5
/7
拒绝3大类型sql:大SQL (BIG SQL),大事务 (BIG Transaction),大批量 (BIG Batch) ,合理拆分sql。小语句小事务好处:减少锁、用上多cpu,缓存命中率高
6
/7
语句尽量简单,不在数据库做复杂运算,不用存储过程、函数,大消耗性能的SQL很容易对其他SQL产生影响,MySQL优化器不足,处理复杂SQL时容易选择错误执行计划。
7
/7
MySQL没有SQL级并行、HashJoin、分析函数等特性,处理复杂SQL能力不强;在高并发的系统中,复杂SQL容易产生锁问题。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有