实例
3.SQL的解析预处理及生成执行计划
3.1 查询速度为什么会慢
?
MySQL服务器处理查询请求的整个过程
3.2 查询缓存对SQL性能的影响
?...Hash查找只能进行全值匹配
命中缓存,在返回结果前,MySQL会检查用户权限,查询无需被解析,看出缓存直接返回结果其实很不容易
如果缓存中结果正确的,每次缓存牵涉到表被更新,都要对缓存也进行刷新,如此即使是同一个...sql语句即使对同一个表查询中不同不涉及的字段被更新,下次查询这个sql同样无法命中
此外每次在对缓存进行检查SQL是否命中时,都要对缓存加锁
?...将外连接转化为内连接
如当有where条件和库表结构等会重写优化
对一些过滤规则进行等价变换
?...将一个表达式转化为常数表达式
等价变换规则
子查询优化
可能转为关联查询,减少表的查询次数
提前终止查询
发现已经满足查询条件时立即终止,特例如limit子句
发现不成立条件,立即返回null