数据库设计-数据库索引建立问题

发布于 2017-10-06 05:18:00 字数 102 浏览 1334 评论 1

一个表在没建立索引前,新数据的添加会怎么存储?是顺序存储吗?
当一个表中的已有数据了,现在建立索引,是不是会导致已有的数据按照B-树的建立算法进行调整(当然数据项肯定是在叶节点)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2017-10-19 13:37:33

这些和数据库具体的实现相关. 比如在Oracle里, 默认的表类型为 Heap organized tables, 当新添加数据时, 数据会被放在 segment里第一个能够放下此数据的自由空间里. 和索引没有关系. 建立索引也不会"导致已有的数据按照B-树的建立算法进行调整". 因为Oracle BTree索引叶节点放得是 key和rowid, 并不是数据项. 推荐一本oracle的书 <<Expert Oracle Database Architecture>>

对Mysql innodb引擎来说, 是Index Organized Tables, 数据项就在B树的叶节点. 它默认肯定是有index的.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文