【发布时间】:2009-06-08 09:43:11
【问题描述】:
如果我们在表的主键上创建索引,它将如何提高性能,,,,好像创建索引后所需的记录可能会出现在索引列表的末尾!
【问题讨论】:
如果我们在表的主键上创建索引,它将如何提高性能,,,,好像创建索引后所需的记录可能会出现在索引列表的末尾!
【问题讨论】:
我认为您对索引如何工作的理解是错误的。它们不是列表。
有关索引的介绍性阅读,请参阅Wikipedia article。
【讨论】:
现代数据库总是在主键上有一个索引。再创造一个——充其量——对你的表现没有任何影响。
【讨论】:
在表上创建索引后,对该表的任何操作(插入、更新和删除)也将对索引执行,从而使表和索引保持同步。
所以如果在创建索引后添加一行,它会被放到索引中正确的位置。
如果它在列表末尾的正确位置 IS,它仍然更快,因为数据库将使用 Binary Search(或其他优化的搜索算法)来查找项目,导致读取次数远少于全表扫描。
希望这会有所帮助,
【讨论】:
索引通常是排序的。然后数据库可以使用二分搜索和其他机制来确保找到所需的项目是有效的。此外,表使用主键作为聚集索引(通常) - 表中的数据按与该索引相同的顺序排列,这意味着通过该索引搜索数据更快。
【讨论】:
这是否意味着不搜索算法索引就没有好处????
【讨论】: