我有一个小问题:主索引和二级索引的性能有什么区别?是什么导致了这种差异?
我在谷歌搜索,我发现二级索引存储在另一个表中,所以这会减慢所有操作。但是还有其他一些原因可以证明性能下降是合理的?
非常感谢
我有一个小问题:主索引和二级索引的性能有什么区别?是什么导致了这种差异?
我在谷歌搜索,我发现二级索引存储在另一个表中,所以这会减慢所有操作。但是还有其他一些原因可以证明性能下降是合理的?
非常感谢
聚集表是没有“堆”部分的 B-Tree - 行直接存储在聚集索引(主键)的 B-Tree 结构中。B-Tree 的节点可以拆分或合并,因此物理位置或行可以改变,所以我们不能有一个从二级索引到行的简单“指针”,所以二级索引必须包含完整的副本能够可靠地识别行的主索引字段。
这适用于 Oracle、MS SQL Server,也适用于 InnoDB。
这意味着聚集表中的二级索引比基于堆的表中的二级索引“胖”,其中:
让我引用使用索引,卢克!:“索引组织表和聚集索引的优势大多仅限于不需要第二个索引的表。”
真可惜,因为 MySQL 不允许您独立于存储引擎选择集群。