SELECT性能在仅包含不同值的字段上设置索引是否有用?
例如:
order_id
--------
98317490
10928343
82931376
93438473
...
答案 0 :(得分:2)
当然,与所有索引一样,它很有用 - 如果你有一些在WHERE子句上有这个字段的select语句,那么它很有用。
此字段是否具有不同的值并不重要。
请注意,如果您的字段在数据库中标记为UNIQUE或PRIMARY KEY,那么数据库在技术上已经有了该字段的索引,因此为其添加另一个索引不会改变任何内容。
答案 1 :(得分:2)
SELECT性能在仅包含不同值的字段上设置索引是否有用?
这取决于。如果您经常搜索此列,则索引非常有用:
指数的有用性取决于其选择性。例如,如果您的列包含布尔值,则为:
然后您可以轻松猜测,使用索引查找“true”值相对于读取整个表格来搜索它们将是一个巨大的提升。
另一方面,使用索引搜索“false”将比不使用索引慢,因为无论如何你都要阅读整个表格,你也可以不费心去处理索引。
如果值都是不同的,那么选择性是最大的,索引将非常有用。也就是说,假设您实际搜索该列!
永远不会使用的索引会降低更新速度。