我有一个有四列的表......
`id` INT(11) NOT NULL AUTO_INCREMENT
`tid` INT(11) NOT NULL
`cid` INT(11) NOT NULL
`name` NVARCHAR(4096) NULL DEFAULT NULL
id是唯一的主键。其他列不是唯一的。
我想返回具有特定tid和cid值并按名称排序的所有id值的列表。所以这...
select id
from myTable
where cid = 1 && tid = 1
order by name
表中有大约 125k 条记录,并且应该有大约 50k 条恰好符合此条件。所有四列都有单独的索引。
在我的机器上,查询运行大约需要 140 毫秒。我需要把它降低到大约 20 毫秒或更好。我认为解决方案是添加一个新的覆盖索引,该索引按cid、tid和 name 的顺序定义。虽然没有任何区别。
有任何想法吗?我的覆盖指数是否设置不正确?