products 表有一个 actor 索引,title 无索引
SELECT * FROM products WHERE actor='SEAN CARREY'
AND title like '%APOLLO%';
上面的查询在MySQL中是
1.把表中所有行的所有数据都从存储引擎取到服务器再比较actor和title
还是只把所有行的所有actor和title从存储引擎取到服务器比较,再从存储引擎取出符合条件的行的所有数据
products 表有一个 actor 索引,title 无索引。所以,以 InnoDB 为例,MYSQL 的读取顺序是:
找到可用索引(actor 索引)。
通过索引找到所有满足条件 actor='SEAN CARREY' 的聚簇索引,并得到一堆主键。
从主键拿到具体行数据,比较 title 条件并返回满足条件的数据。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。