Advertisement

MySQL Index Expansion

阅读量:

问题

最近在看《MySQL实战45讲》中遇到一个比较困惑的问题。问题是:

有如下表

复制代码
    CREATE TABLE `geek` ( 
      `a` int(11) NOT NULL, 
      `b` int(11) NOT NULL, 
      `c` int(11) NOT NULL, 
      `d` int(11) NOT NULL, 
      PRIMARY KEY (`a`,`b`), 
      KEY `c` (`c`), 
      KEY `ca` (`c`,`a`), 
      KEY `cb` (`c`,`b`) 
    ) ENGINE=InnoDB;

有两条SQL如下:

复制代码
    select * from geek where c=N order by a limit 1; 
    select * from geek where c=N order by b limit 1;

问题:哪个索引是多余的?

作者认为索引c与联合索引(c,a,b)效果相同。

对于这一块感

全部评论 (0)

还没有任何评论哟~