0

我正在考虑一个问题。

在 C 语言中,我们建议 struct 的大小应该是 2 字节的倍数。

情商:

struct text{
   int index;//assume int is 4 byte.
   char [8] word;
}//alought text is only 12 bytes, compiler would assign 16 bytes for this struct

因此,我想知道 MySQL 的记录大小(感谢 Gordon Linoff)是否遇到同样的问题?

此外,如何通过控制表大小来优化 MySQL?

4

1 回答 1

1

首先,您指的是记录大小而不是表大小。

其次,数据库不像过程语言那样工作。记录存储在页面上,这些页面会被填满,直到不再适合为止。然后使用附加页面。通常,一个页面上有许多记录。

您可以在此处了解页面的外观。它们很复杂,但基本上对用户隐藏。

听起来您正在尝试“过早优化”。这并不是万恶之源,但它是完成事情的主要干扰。换句话说,根据需要定义记录。做你想做的事。如果您有性能问题,请在出现问题时解决这些问题。

记录的大小将是您的问题中最少的。数据库以页为单位执行 I/O,因此 12 和 16 字节之间的差异对于单个记录没有意义。您仍然需要阅读整个页面(要大得多)。

于 2014-06-29T16:15:16.553 回答