MySQL:什么是页面?

Mat*_*tty 32 mysql database innodb

在MySQL数据库的上下文中,我不能为我的生活记住页面是什么.当我看到8KB /页的内容时,这意味着每行8KB还是......?

Mic*_*Sim 19

数据库页面是组织数据库文件中数据的内部基本结构.这里有一些关于InnoDB模型的信息.

13.2.11.2开始.文件空间管理:

您在配置文件中定义的数据文件构成InnoDB表空间.这些文件在逻辑上连接在一起以形成表空间.[...]表空间由数据库页面组成,默认大小为16KB.页面分组为大小为1MB(64个连续页面)的范围.表空间内的"文件"在InnoDB中称为段.

13.2.14开始.InnoDB表的限制

InnoDB中的默认数据库页面大小为16KB.通过重新编译代码,您可以将其设置为8KB到64KB之间的值.

此外,要将放在与页面相关的位置:

除可变长度列(VARBINARY,VARCHAR,BLOB和TEXT)之外,最大行长度略小于数据库页面的一半.也就是说,最大行长度约为8000字节.LONGBLOB和LONGTEXT列必须小于4GB,并且总行长度(包括BLOB和TEXT列)必须小于4GB.

  • 是的,你可以这样想.如果应用上面的MySQL限制,则行更像是一个不能超过半页的句子.(文本行的长度将固定,对于数据库行不是这样.) (6认同)
  • 所以基本上,它类似于书中的物理页面,它可以包含多行(文本行)? (3认同)

The*_*can 18

好,

它不是关于MySql的问题,更多的是关于内存管理中的页面大小.

你可以在这里阅读:http://en.wikipedia.org/wiki/Page_ (computer_memory)

简单地说,它是交换/存储的最小数据单位.

默认页面大小是4k,这可能很好.

如果您拥有大型数据集或只有极少数写入操作,则可能会提高性能以提高页面大小.

看看这里:http://db.apache.org/derby/manuals/tuning/perf24.html

为什么?因为可以一次获取/寻址更多数据.如果概率很高,所需的数据非常接近你刚刚获取的数据,或者直接接着(好吧它不是真的在3d空间但我觉得你明白我的意思),你可以在一次操作中获取它并且通常从您的硬盘驱动器中更好地利用多种缓存和数据提取技术.

但另一方面,如果您的数据没有填满页面大小或者只是稍微多一些,那么您会浪费空间.

我个人从来没有调整页面大小很重要的情况.总是有更好的方法来优化性能,如果没有,它已经足够快了.


Rie*_*sio 5

它是数据存储/读取/写入磁盘和内存的大小。

对于不同的工作负载/数据集,不同的页面大小可能会更好或更糟;即有时您可能希望每页更多的行,或者每页更少的行。话虽如此,默认页面大小适合大多数应用程序。

请注意,“页面”在MySQL中并非唯一。这是所有数据库的参数的一个方面。