如何正确索引以下内容?

jon*_*jon 5 php mysql indexing

我有下面的表(file_category_tbl)来表示文件和类别之间的连接.

fileId - bigint(20)         
categoryId - bigint(20)
order - int(10)
Run Code Online (Sandbox Code Playgroud)

为了可以对一个类别中的文件进行排序,我有一个订单字段...因此,我的问题是我需要哪些索引才能在以下方面获得最佳性能:

SELECT * FROM file_category_tbl WHERE categoryId="3" ORDER BY order ASC
Run Code Online (Sandbox Code Playgroud)

我有一个独特的索引UNIQUE(fileId,categoryId); 因为不可能有fileId相同的categoryId.我也有一个索引categoryId,因为这是搜索的内容.我还有一个索引order?...但是这是必要的吗?因为它只是在做orderBy这个......

亲切的问候任何响应者...... J

mit*_*atw 1

根据我的理解,您的索引是明智的,将有助于提高查询的性能。但我还建议您在表中建立Primary Key索引,而不仅仅是合并索引Unique Index

我这么说的原因是,如果您想引用此表的任何记录,可能是删除它或执行任何其他功能,主键将很有用。另一方面,它实际上可能会降低查询的性能,因为您需要所有字段,而现在使用主键字段,您必须引入 4 个字段。作为解决方案,您可以指定结果中需要哪些列。

希望这是有道理的:-)