2017-12-06 35 views
0

私は5つの簡単なフィールドを持つテーブルを持っています。テーブルの行の合計は250です。Mysql 5.7 Innodbクエリがランダムに非常に遅く削除されます

1つのDELETEクエリでPHPmyAdminを使用すると、0.05秒で処理されます。 (常に)。

問題は、私のPHPアプリケーション(PDO接続)が他のクエリとこのクエリとの間で同じクエリを処理することが非常に遅いことです(cca 10秒)。また、5行のテーブルに対する別のSELECTクエリ(cca 1秒)。それは時々だけ起こった! 他のクエリ(cca 100)は通常の時間応答では常にOKです。

どのような問題がありますか、どのように問題を見つけるか?

表:

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; 

クエリ:テーブルはわずか250行を持って前に私が言ったように

DELETE FROM list_ip WHERE address='1.2.3.4' AND type='INT' AND datetime<='2017-12-06 08:04:30'; 

。テーブルのサイズは96Kibです。 私も空のテーブルとその速度が遅いとテストしました。

+1

ccaとは何ですか? – bassxzero

+0

@bassxzero同じことをやろうとしていた。私は約仮定ですか? –

+1

cca = * circa * or * about。* –

答えて

0

EXPLAINでクエリをラップし、インデックスを使用せずに順次選択を実行しているかどうかを確認します。私がデータモデルの問題を抱えているかどうかを判断するには、EXPLAINが私の最初の邪魔になるでしょう(不良/欠落しているインデックスは1つのモデルの問題です)。

について説明します。私はお勧めhttps://dev.mysql.com/doc/refman/5.7/en/explain.html

もう1つのツールは、「mytop」を実行し、それが停滞だ当時の際にサーバの活動/負荷を見ています。 http://jeremy.zawodny.com/mysql/mytop/

+1

遅いクエリのログをオンにするための提案を追加することもできます – frz3993

+0

遅く実行されていることを知っているように見えるので、ここに大きな利点があるかどうかわかりませんが、一般的には、ラグ/ボグを出す。 – DDeMartini

+1

問題がデータベースに存在するかどうかを確認するには、アプリケーションまたはネットワークに起因するものではありません。 – frz3993

関連する問題