在对其执行任何大型插入或选择语句之后,MySQL 似乎希望将整个表保留在缓存中(表大小 = ~20GB)。现在我的 innodb 缓冲池是 20GB。总内存为 32GB。我将提供一些内存使用情况和 innodb 状态的输出以及 mysqltuner 的输出。过去几天一直让我发疯。请帮忙!我感谢任何反馈,如果您需要更多信息,请告诉我。
此外,执行“FLUSH TABLES”只会在内存中关闭并重新打开它们。至少我认为这就是正在发生的事情。这是我执行一堆插入之前的 innodb 当前内存状态:
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 21978152960; in additional pool allocated 0
Dictionary memory allocated 6006471
Buffer pool size 1310719
Free buffers 347984
Database pages 936740
Old database pages 345808
Modified db pages 0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 78031, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 551887, …
Run Code Online (Sandbox Code Playgroud)