2

我的数据库中有一些列,主要是 varchar 255s。它们只被访问一次,但每个页面加载/请求登录用户加载一次。(大多数情况下,它们包含用户偏好等内容)。

我的问题是,我是否应该在这些列上创建索引?我已经在多个查询中使用的其他列上获得了索引,而不是只读取一次并像这些列一样存储。

4

4 回答 4

6

您只需要用于排序或搜索的列上的索引。

IE。它们出现在JOIN, WHERE, HAVING, GROUPorORDER BY子句中。

即使这样,也不是绝对必要的。

于 2011-05-12T17:06:00.613 回答
3

答案是这取决于.....看看您的查询计划,添加索引是否有益?

您的查询可能已经被目前那里的索引所覆盖。
请记住,添加索引会减慢更新/插入速度。

于 2011-05-12T17:06:52.330 回答
3

我认为答案取决于列是否仅用于选择,或者它们是否用于 where 子句或连接以及其他排序/查询操作。

如果是前者,则没有索引,如果是后者,那么使用索引查询会更快(通常情况下)

于 2011-05-12T17:06:56.353 回答
2

如果我没记错的话,索引一列也将取决于那里有多少用户以及每个用户的偏好大小。例如,如果您存储了 1000000 个用户偏好,那么它肯定会有助于对其进行索引。

于 2011-05-12T17:07:46.680 回答