mysql - 我在 mysqld.exe (Xampp) 中遇到高磁盘使用率

标签 mysql windows xampp

enter image description here

数据库大小仅为200MB。我尝试使用 phpmyadmin 中的内置工具修复它,它确实有帮助,但它会恢复到更高的磁盘使用率。

操作系统:Windows 10

最佳答案

最可能的解释是您正在运行大量使用临时空间的查询。但这只是一个猜测,因为您没有提供有关 MySQL 服务器中正在运行的内容的信息。

MySQL 查询通常使用 GROUP BYORDER BYDISTINCT 来使用临时空间。有时有很多临时空间,有时有一点空间,但每秒有很多查询。这可以解释报告的磁盘 I/O 速率。

您可以通过仔细优化查询来减少这种情况,以便它们使用索引而不是在磁盘上的临时空间中进行排序或分组。查询优化的主题很大,在 Stack Overflow 帖子中无法涵盖太多内容。

如果您需要帮助优化特定查询,您应该针对该查询提出问题,并提供每个表的 SHOW CREATE TABLESHOW TABLE STATUS 的输出在查询中。

磁盘 I/O 的其他用途也可以快速发生。

例如,如果您的缓冲池太小,并且您的查询重复扫描完整的 200MB 数据,那么 MySQL 服务器将被迫一遍又一遍地替换缓冲池中的页面,每次从磁盘读取相同的数据时间。如果您可以为缓冲池分配更多 RAM,则可以降低页面回收率,并且可能会大大提高整体性能。

另一个例子是,如果您使用 UPDATE 一遍又一遍地更改数据,您可能会向事务日志和二进制日志写入大量 I/O,即使总大小您的数据不会增长。

调整数据库服务器是一个复杂的过程。如果您需要帮助调整 MySQL 选项,最好在 dba.stackexchange.com 上询问。包括您的 MySQL 版本以及 mysql.ini 中的当前选项。

关于mysql - 我在 mysqld.exe (Xampp) 中遇到高磁盘使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560031/

相关文章:

php - 表单域输入空比不更新

mysql - 如何使我的数据库连接正常工作?

windows - Windows 上的 Node.js 恢复

php - 在 Windows Server 2008 x64 上安装 php 内存缓存

php - 如何在 xampp 服务器上运行 Angular 应用程序?

php - Laravel 设置用户属性

php - 如何使用 php 更新 mysql 的当前日期?

windows - 使用 Perl 将 UTF-8 字符放入 Excel?

c++ - SetWindowPos中的客户坐标是什么意思

php - XAMPP:无法启动 Apache (Windows 10)