MySQL:什么是页面?

时间:2010-12-09 18:48:17

标签: mysql database innodb

我无法在MySQL数据库的上下文中记住页面的内容。当我看到8KB /页的内容时,这意味着每行8KB还是......?

3 个答案:

答案 0 :(得分:18)

那么,

对于MySql来说,这不是一个真正的问题,更多的是关于内存管理中的页面大小。

您可以在此处阅读:http://en.wikipedia.org/wiki/Page_(computer_memory)

简单地说它是交换/存储的最小数据单元。

默认页面大小为4k,可能没问题。

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

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

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

但另一方面,如果你的数据没有填满页面大小,或者只是一点点或者其他东西,你会浪费空间。

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

答案 1 :(得分:18)

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

来自13.2.11.2. File Space Management

  

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

来自13.2.14. Restrictions on InnoDB Tables

  

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

此外,将相关联:

  

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

答案 2 :(得分:5)

这是将数据存储/读/写到磁盘和内存中的大小。

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

请注意,“页面”并非MySQL独有。它是所有数据库参数的一个方面。