问题适用于timestamp
之类的行,其中每行都存储不同的值。
我已经在搜索stackoverflow并阅读有关索引的内容,但如果没有一个值等于另一个值,我不理解利润。因此,索引基数将等于行数。有什么好处?
答案 0 :(得分:3)
这种专栏实际上是一个很好的索引候选者,最好是一个独特的索引。
表是未排序的数据集,因此在不了解表的情况下,数据库必须按顺序遍历整个表以查找您要查找的行(O(n)复杂度,其中n是数字的行)。
索引本质上是一个以排序方式存储值的树,它允许数据库智能地找到您要查找的行(O(log n))。此外,使索引唯一告诉数据库每个时间戳值只能有一行,因此一旦检索到一行,数据库就可以停止搜索更多内容。
假设您根据时间戳搜索行,这种索引的性能优势应该很大。
答案 1 :(得分:2)
索引是键值和检索指针之间的映射。如果使用索引的策略看起来是最佳的,则DBMS在查询期间使用索引 如果索引永远不会被使用,那么它就没用了。
索引可以基于单个键控值或基于一系列键值(取决于索引类型)加速查找,或者在仅查询需要键的情况下允许仅索引检索。根据桌子的大小和各种其他因素,加速可以低至两个一个或高达一百个。
如果您的时间戳字段从未在查询的WHERE子句或ON子句中使用,那么您最好没有索引。选择指数的艺术比这更深入,但这是一个开始。