MYSQL写在磁盘上不可见

标签 mysql linux io disk-io

enter image description here

如您在图片中所见,我从 MySQL 获得约 14-15Mb/s(也达到 50-60Mb/s)的写入速度,在 phpMyAdmin 中它显示每秒约 400-500 次写入。 同样在下图中,您可以看到 IO Graph enter image description here

问题是我找不到这些数据的写入位置。因为我在 mysql 中看不到任何插入/更新查询,而且当我检查目录大小时,它也是一样的。那么这些数据被写入何处?

编辑:RAM 也没有被使用,请查看下面的屏幕截图。 enter image description here

最佳答案

刚刚偶然发现了我的这个老问题,想给出答案/解释。

实际上,我前一天删除了大约 80-9000 万行。我在晚上 11 点开始删除,查询运行了大约 6-7 个小时才完成。当我使用 InnoDB 时,它只从内存中删除数据而不是从磁盘中删除(起初)。一旦完成,它也开始从磁盘中删除数据。但由于 InnoDB 的性质,即使删除数据后它也不会释放磁盘,文件大小没有变化。

当时我看到的是写入,并且没有运行查询(删除查询),当时我无法确定它正在从磁盘中删除数据。

虽然学习经验很棒(因为生产级服务因 MySQL 响应缓慢而受到影响)。

关于MYSQL写在磁盘上不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38803542/

相关文章:

PHP mysqlnd/MySQL 版本

mysql - 有人可以帮助我理解外键 UPDATE 和 DELETE 与关系名称吗?

java - 我的 JAVA 程序中的 SQL 查询使用预处理语句完成,尽管正确,但抛出错误

C++ TCP 服务器比较字符串失败

python - 如何使用带有 stdin 的 wall 命令将消息广播到 python 中的所有 bash 终端?

java - 需要帮助在 java 中写入输入/输出文件

MySQL 在 where 子句中分配用户定义的变量

c++ - 在不重启的情况下旋转日志,多进程问题

java - Android下载-使用输出流方式

io - 写语句不能在派生类型的用户定义格式化 I/O 过程中生成新行