【发布时间】:2019-03-21 12:57:06
【问题描述】:
我在本地机器上使用 docker 和 Mysql 容器。
步骤:
- 启动 mysql docker。使用内存约 2-2.5G。
- 启动命令“优化表”。使用内存增长到 4.5-5G;
- 重启mysql docker,再次使用内存2-2.5G(见截图)
- 列表项;
数据库有 10 个小表(
为什么会这样? 附:对不起我的英语不好。
【问题讨论】:
-
“为什么会这样?”你想要简短的回答还是长的回答?因为很可能冗长的答案将在此处进行解释。
-
短的是。最有可能
optmize table使用 innodb 缓冲池可以更快地重建表和索引。因为理论上加载表数据或将其部分放入内存并从内存中重建页面然后做多个随机磁盘 I/O 以从磁盘获取页面并进行重建。 -
我还以为内存中的所有表也是,因为 InnoDB Buffer Pool Data 设置为 8G。还是我发现有问题?
-
InnoDB 不会在内存中自动加载表读取 this
标签: mysql optimization database-indexes