mysql - Mysql表大小优化

标签 mysql database database-optimization

我正在考虑一个问题。

在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?

最佳答案

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

其次,数据库的工作方式与过程语言不同。记录存储在页面上,页面会被填满,直到不再适合为止。然后使用附加页面。通常,一个页面上有很多记录。

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

听起来您正在尝试“过早优化”。这并不是万恶之源,但却是完成任务的主要干扰因素。换句话说,根据需要定义记录。做你想做的事。如果您遇到性能问题,请在出现问题时进行修复。

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

关于mysql - Mysql表大小优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477843/

相关文章:

SQL如何获取指定时间范围内的所有重复

sql - 压缩数据库中的列数是否有益?

mysql - 优化凌乱的查询

Mysql - 返回表A的所有结果并选择性地与表B连接

mysql - 比较两个具有 4 个约束的 SQL 表并将匹配结果保存在新表中

mysql - 将 Redis 数据同步到 MySQL 的最佳策略是什么?

sql - SQLite:带索引列的查询中条件的执行顺序是什么?

php - 设置变量 $_GET 全局(添加好友)

php - 从 MySQL_query 切换到 PDO 导致不必要的转义

php - 如何在 MySQL 中的单个查询中使用 group by 检索多列计数值?