我的数据库中有一些列,大多数是varchar 255s。它们只被访问一次,但是对于登录用户,每次加载/请求时它们被加载一次。 (大多数情况下,它们包含用户偏好等内容。)
我的问题是,我应该在这些列上创建索引吗?我已经在其他列上获得了多个查询中使用的索引,而不是只读取一次并像这些列一样存储。
答案 0 :(得分:6)
您只需要用于排序或搜索的列的索引。
即。它们出现在JOIN
,WHERE
,HAVING
,GROUP
或ORDER BY
条款中。
即使这样,也没有必要。
答案 1 :(得分:3)
答案是否取决于.....看看您的查询计划,是否有利于添加索引?
您的查询可能已经包含在目前的索引中 请记住,添加索引会降低更新/插入速度。
答案 2 :(得分:3)
我认为答案取决于列是仅用于选择,还是用于where子句或连接以及其他排序/查询操作。
如果是前者,没有索引,如果是后者那么查询会更快地使用索引(通常很好)
答案 3 :(得分:2)
如果我没有错,索引列也将取决于有多少用户以及每个用户的首选项大小。例如,如果您存储了1000000个用户首选项,那肯定会有助于对其进行索引。