索引值的顺序在关系数据库中重要吗?
Does the sequence of indexed values matter in a relational database?
假设我有一个带有主键 'ID'(整数)的 table。
如果我填充 100.000.000 条记录,其中所有 ID 都已排序:(1, 2, 3, 4, 5, 6, 7, ...)。
所以最小 ID 为 1,最大为 100.000.000.
如果 ID 分散:(3, 89, 100, 101, 232, 767, ...),查询会更快吗?
像 PostgreSQL 或 Oracle 这样的数据库能否使用它来以某种方式提高搜索性能(即使比较只是 'bigger then'、'lesser then'(我想))。
那没什么区别。因为通常索引创建一个树结构来存储值,所以搜索需要 Log(n)
(n 个项目) 来找到项目。
如果您允许 insert/delete,则几乎不可能保持项目的顺序。除非你花大价钱更新。
假设我有一个带有主键 'ID'(整数)的 table。
如果我填充 100.000.000 条记录,其中所有 ID 都已排序:(1, 2, 3, 4, 5, 6, 7, ...)。 所以最小 ID 为 1,最大为 100.000.000.
如果 ID 分散:(3, 89, 100, 101, 232, 767, ...),查询会更快吗?
像 PostgreSQL 或 Oracle 这样的数据库能否使用它来以某种方式提高搜索性能(即使比较只是 'bigger then'、'lesser then'(我想))。
那没什么区别。因为通常索引创建一个树结构来存储值,所以搜索需要 Log(n)
(n 个项目) 来找到项目。
如果您允许 insert/delete,则几乎不可能保持项目的顺序。除非你花大价钱更新。