尽量避免在 where 子句使用 !...代替 in 是一个好的选择
用Where子句替换HAVING 子句 因为HAVING 只会在检索出所有记录之后才对结果集进行过滤
1....long_query_time 指定记录慢查询日志SQL执行时间的阈值(默认单位s,可精确至ms)
?...Hash查找只能进行全值匹配
命中缓存,在返回结果前,MySQL会检查用户权限,查询无需被解析,看出缓存直接返回结果其实很不容易
如果缓存中结果正确的,每次缓存牵涉到表被更新,都要对缓存也进行刷新,如此即使是同一个...将一个表达式转化为常数表达式
等价变换规则
子查询优化
可能转为关联查询,减少表的查询次数
提前终止查询
发现已经满足查询条件时立即终止,特例如limit子句
发现不成立条件,立即返回null