表 tb1 仅有索引 ix1(c1,c2,c3),查询语句为:
SELECT COUNT(*) FROM tb1 WHERE c2=? AND c3=?
使用 ix1 访问的执行计划会是?
A. TABLE FULL SCAN
B. TABLE RANGE SCAN
C. TABLE SKIP SCAN
D. TABLE GET
这题感觉有点奇怪?我觉得是A才对,有人帮忙验证码?谢谢!
表 tb1 仅有索引 ix1(c1,c2,c3),查询语句为:
SELECT COUNT(*) FROM tb1 WHERE c2=? AND c3=?
使用 ix1 访问的执行计划会是?
A. TABLE FULL SCAN
B. TABLE RANGE SCAN
C. TABLE SKIP SCAN
D. TABLE GET
这题感觉有点奇怪?我觉得是A才对,有人帮忙验证码?谢谢!
如果不使用hint 默认是走全表扫描,不会走这个索引,不过题中说了要使用这个索引,那就选C吧
--建表建索引
obclient(root@ryc_mysql)[test]> create table tb1(c1 int,c2 int,c3 int);
Query OK, 0 rows affected (0.735 sec)
obclient(root@ryc_mysql)[test]> insert into tb1 values(1,1,1),(2,2,2);
Query OK, 2 rows affected (0.038 sec)
Records: 2 Duplicates: 0 Warnings: 0
obclient(root@ryc_mysql)[test]> alter table tb1 add index ix_1(c1,c2,c3);
Query OK, 0 rows affected (2.234 sec)
如果只是使用索引的话,v4.2.1版本默认不会走table skip scan
要显式的指定index_ss使用跳跃扫描才会走table_skip_scan
所以对于这道题只是要求使用这个ix_1索引没有其他要求的话我认为就是选table full scan
懂了 ![]()