【发布时间】:2015-10-27 04:33:28
【问题描述】:
这个问题可能看起来与之前发布的问题非常相似,但略有不同。 当您的查询始终包含两列时,我知道为两列创建索引是一个好习惯,但对于这种情况,查询就像检查一列,然后从第二列中查找大于给定值的所有记录,例如
SELECT * FROM Data WHERE User_Id = 'Johndoe' AND Last_Query > 1001
那么我应该仍然对两个列使用单个索引(在上面的示例中为User_id、Last_Query)还是应该为每列创建不同的索引?
【问题讨论】:
-
有时您根本不应该使用索引。很大程度上取决于表的大小和数据的类型。
-
应该在这个上使用索引,这将是一个包含多对多关系的大表,因此对于给定点的每个用户都需要查看为他发布的任何新问题@vol7ron
-
一个 User_Id 索引就足够了,因为您正在应用 where 'User_Id'(已使用索引)AND Last_Query > 1001(未使用索引)
-
您是否会单独按任一字段进行搜索?该查询是否需要高效?
-
MySQL 还是 MS SQL Server?不要标记未涉及的产品,尤其是涉及产品可能表现不同的区域时。
标签: mysql sql sql-server