【发布时间】:2012-08-27 15:46:25
【问题描述】:
我有下表 (file_category_tbl) 来表示文件和类别之间的连接。
fileId - bigint(20)
categoryId - bigint(20)
order - int(10)
为了可以对某个类别中的文件进行排序,我有一个 order 字段... 因此,我的问题是我需要哪些索引才能在以下方面获得最佳性能:
SELECT * FROM file_category_tbl WHERE categoryId="3" ORDER BY order ASC
我有一个唯一索引 UNIQUE (fileId ,categoryId);
因为不可能有相同的fileId 和相同的categoryId。
我在categoryId 上也有一个索引,因为这是正在搜索的内容。
我也有一个关于order的索引?...但这有必要吗?因为它只是在这个上面做一个orderBy...
向任何响应者致以诚挚的问候... J
【问题讨论】:
-
我认为
categoryId,order上的多索引应该足以满足上述查询 -
我以为mysql不关心
ORDER BY部分的索引。编辑:如果mysql可以或不能在ORDER BY上使用索引取决于很多:dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html