Mysql的Innodb具有页面,范围,段,表空间的概念,但我不知道它们如何相互影响。它们有什么关系?一个表空间有16K页是什么意思?这与物理行有何关系,“页”是否在内存中?

我假设Oracle可能具有相同的概念,但是我不确定在哪里寻找它。有没有很好的引用书/书详细讨论了这一点?

最佳答案

对于innodb:

表空间既是物理概念,也是逻辑概念。过去,所有innodb表在ibdata文件中都将它们的数据混合在一起。在这些文件中,表空间是组成表的段的不必要连续的集合。在较新版本的mysql中,可以将单个表放入其自己的文件中,该文件也称为表空间。

无论哪种情况,表空间都包含:

  • 段,其中包含该表的1个或多个扩展区。
  • 扩展区包含64页。我不知道为什么64.
  • 页面的大小为16k,在理论上经过了优化,可在磁盘级别进行有效的存储和检索。当需要更多页面时,将按扩展区数量分配页面。

  • 参见this pdf的第11页。

    10-07 12:37