我有5个简单字段的表。表中的总行数为cca 250。
当我使用PHPmyAdmin和一个DELETE查询时,它会在0.05秒内处理。 (总是)。
问题是我的PHP应用程序(PDO连接)处理其他查询和此查询之间的相同查询非常慢(cca 10秒)。还有5行的另一个SELECT查询(cca 1秒)。它有时只发生! 其他查询(cca 100)总是正常,时间响应正常。
应该是什么问题或如何找到问题所在?
表:
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';
正如我之前所说,表只有250行。表的大小是96Kib。 我也用空表测试它也很慢。
答案 0 :(得分:0)
在EXPLAIN中包装您的查询并查看它是否正在运行顺序选择,而不是使用索引。 EXPLAIN将是我确定是否存在数据模型问题的第一站(错误/缺失索引将是一个模型问题)。
关于EXPLAIN:https://dev.mysql.com/doc/refman/5.7/en/explain.html
我推荐的另一个工具是运行'mytop'并查看服务器活动/负载在它停滞的那些时间。 http://jeremy.zawodny.com/mysql/mytop/
答案 1 :(得分:0)
有一些网络问题。我用某些网络外围设备卸载了docker app,看起来很多。