MySQL 索引和数据访问时间复杂度

MySQL indexing and data access time complexity

MySQL 我读到当我们对特定数据列建立索引时数据访问时间复杂度是 log(n) 因为使用了 BTree,有没有数据访问时间变得更多的情况log(n) 例如 O(n),因为当我们以排序的方式将数据插入 BTree 时,树会在一侧生长,数据访问复杂性会增加到 O(n) 他们是否有任何关于插入数据的政策进入这个索引 BTree ??感谢您的回答

一些注意事项:

  • 磁盘访问(对性能而言)远比 O() 重要。
  • A "Rule of Thumb":一个节点有100个子节点(或叶元素)。因此...
  • 在典型的 InnoDB BTree(数据或索引)中,一百万行 table 将只有大约 3 层深。对于 万亿 行,大约 6 个级别。这是 "log n" 发挥作用的主要地方。
  • BTrees,如果自下而上增强,则保持平衡。
  • 在MySQL中,不用担心BTrees;还有更糟糕的事情要处理——索引、查询的制定等
  • InnoDB 使用 B+Trees,通过不必在每次耗尽节点元素时向下钻取树来使索引扫描相当高效。
  • 维基百科是另一个有用的参考资料。