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
根据我的理解,您的索引是明智的,将有助于提高查询的性能。但我还建议您在表中建立Primary Key
索引,而不仅仅是合并索引Unique Index
我这么说的原因是,如果您想引用此表的任何记录,可能是删除它或执行任何其他功能,主键将很有用。另一方面,它实际上可能会降低查询的性能,因为您需要所有字段,而现在使用主键字段,您必须引入 4 个字段。作为解决方案,您可以指定结果中需要哪些列。
希望这是有道理的:-)