有没有一种方法来设置一个索引,不使用任何类型的文件在mysql中进行以下查询?优化子查询和排序
SELECT * FROM bigtable WHERE id IN ([a indexed subquery]) ORDER BY title;
这种情况下的ID是主键。使用Innodb。 对这种查询做一个EXPLAIN总是会说它使用的是filesort。
编辑1:
,因为它在我的情况是自动生成的子查询并不重要。 但对于参数的缘故让让这样的查询,而不是
SELECT * FROM bigtable WHERE id IN (4,6,8,7,10,40,21,54...) ORDER BY title;
有什么办法来索引此查询不使用文件排序为“ORDER BY”?
奖金问题:有没有其他数据库可以做到这一点?
实在不够充分估计,但看着你的子查询可能与左加入更好,基于(ID在你的BigTable的索引,其他可能的子查询列,标题)作为覆盖索引。 – DRapp