缓存
通过hash查找实现,每次对这个表更新都会刷新缓存,检查是否命中会对缓存加锁,读写频繁的系统就不要使用查询缓存了
query_cache_size缓存大小 必须是1024整数倍
如果我们自己知道查询结果很大,不会被缓存 就加上
SQL_NO_CACHE
这样可以提高查询效率执行计划
优化方式
内连接。使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。
外连接。左向外连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
https://www.cnblogs.com/youzhangjin/archive/2009/05/22/1486982.html
用覆盖索引也算优化方式
CREATE TABLE `film` (
`film_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
比如film_id是unsigned不可能为负数