Mysql 5.7 Innodb 随机删除查询很慢
Mysql 5.7 Innodb Delete query very slow randomly
我 table 有 5 个简单字段。 table 中的总行数为 cca 250。
当我将 PHPmyAdmin 与一个 DELETE 查询一起使用时,它的处理时间为 0.05 秒。 (总是)。
问题是我的 PHP 应用程序(PDO 连接)处理其他查询之间的相同查询,而这个查询非常慢(大约 10 秒)。另一个 SELECT 查询 table 也有 5 行(约 1 秒)。它只是偶尔发生!
其他查询 (cca 100) 总是可以正常时间响应。
应该是什么问题或者怎么发现是什么问题?
Table:
CREATE TABLE `list_ip` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`type` CHAR(20) NOT NULL DEFAULT '',
`address` CHAR(50) NOT NULL DEFAULT '',
`description` VARCHAR(50) NOT NULL DEFAULT '',
`datetime` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00',
PRIMARY KEY (`id`),
INDEX `address` (`address`),
INDEX `type` (`type`),
INDEX `datetime` (`datetime`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB;
查询:
DELETE FROM list_ip WHERE address='1.2.3.4' AND type='INT' AND datetime<='2017-12-06 08:04:30';
正如我之前所说,table 只有 250 行。 table 的大小是 96Kib。
我也用空 table 测试过,它也很慢。
在 EXPLAIN 中包装您的查询并查看它是否是 运行 顺序 select,不使用索引。 EXPLAIN 将是我确定我是否有数据模型问题的第一站(错误/缺少索引将是一个模型问题)。
关于解释:https://dev.mysql.com/doc/refman/5.7/en/explain.html
我推荐的另一个工具是 运行 'mytop' 并在服务器停滞时查看服务器 activity/load。 http://jeremy.zawodny.com/mysql/mytop/
出现了一些网络问题。我用一些网络外围设备卸载了 docker 应用程序,看起来好多了。
我 table 有 5 个简单字段。 table 中的总行数为 cca 250。
当我将 PHPmyAdmin 与一个 DELETE 查询一起使用时,它的处理时间为 0.05 秒。 (总是)。
问题是我的 PHP 应用程序(PDO 连接)处理其他查询之间的相同查询,而这个查询非常慢(大约 10 秒)。另一个 SELECT 查询 table 也有 5 行(约 1 秒)。它只是偶尔发生! 其他查询 (cca 100) 总是可以正常时间响应。
应该是什么问题或者怎么发现是什么问题?
Table:
CREATE TABLE `list_ip` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`type` CHAR(20) NOT NULL DEFAULT '',
`address` CHAR(50) NOT NULL DEFAULT '',
`description` VARCHAR(50) NOT NULL DEFAULT '',
`datetime` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00',
PRIMARY KEY (`id`),
INDEX `address` (`address`),
INDEX `type` (`type`),
INDEX `datetime` (`datetime`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB;
查询:
DELETE FROM list_ip WHERE address='1.2.3.4' AND type='INT' AND datetime<='2017-12-06 08:04:30';
正如我之前所说,table 只有 250 行。 table 的大小是 96Kib。 我也用空 table 测试过,它也很慢。
在 EXPLAIN 中包装您的查询并查看它是否是 运行 顺序 select,不使用索引。 EXPLAIN 将是我确定我是否有数据模型问题的第一站(错误/缺少索引将是一个模型问题)。
关于解释:https://dev.mysql.com/doc/refman/5.7/en/explain.html
我推荐的另一个工具是 运行 'mytop' 并在服务器停滞时查看服务器 activity/load。 http://jeremy.zawodny.com/mysql/mytop/
出现了一些网络问题。我用一些网络外围设备卸载了 docker 应用程序,看起来好多了。