2017-12-06 4 views
0

Ich habe Tabelle mit 5 einfachen Feldern. Die Gesamtzahl der Zeilen in der Tabelle beträgt ca. 250.Mysql 5.7 Innodb Abfrage löschen sehr langsam nach dem Zufallsprinzip

Wenn ich PHPmyAdmin mit einer DELETE-Abfrage verwende, wird es in 0,05 Sekunden verarbeitet. (immer).

Problem ist, dass meine PHP-Anwendung (PDO-Verbindung) die gleiche Abfrage zwischen anderen Abfragen verarbeitet und diese Abfrage extrem langsam ist (ca. 10 Sek.). Und noch eine SELECT-Abfrage in der Tabelle mit 5 Zeilen (cca 1 sec.). Es ist nur manchmal passiert! Andere Abfragen (cca 100) sind immer OK mit normaler Zeitantwort.

Welches Problem sollte oder wie zu finden, was das Problem ist?

Tabelle:

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; 

Abfrage:

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

Wie gesagt Tabelle nur 250 Zeilen. Die Größe des Tisches beträgt 96 Kib. Ich testete auch mit leeren Tisch und es ist auch langsam.

+1

Was bedeutet cca? – bassxzero

+0

@bassxzero War im Begriff, dasselbe zu fragen. Ich gehe ungefähr davon aus? –

+1

cca = * circa * oder * ungefähr. * –

Antwort

0

Wickeln Sie Ihre Abfrage in EXPLAIN und sehen Sie, ob sie eine sequenzielle Auswahl ausführt und keine Indizes verwendet. EXPLAIN wäre meine erste Anlaufstelle, um festzustellen, ob ich ein Datenmodellproblem habe (schlechte/fehlende Indizes wären ein Modellproblem).

Über ERKLÄREN: https://dev.mysql.com/doc/refman/5.7/en/explain.html

Ein weiteres Werkzeug, das ich empfehlen würde, ist ‚mytop‘ und Blick auf die Serveraktivität/Last während dieser Zeit ausgeführt wird, wenn es bogging. http://jeremy.zawodny.com/mysql/mytop/

+1

Darf ich einen Vorschlag hinzufügen, um die langsame Abfrage zu aktivieren – frz3993

+0

Nicht sicher, dass dies ein großer Vorteil sein wird, da sie wissen, was langsam läuft, aber ich stimme zu, dass es generell eine gute Praxis ist, besonders beim Sortieren aus einem Lag/Moor. – DDeMartini

+1

Nur um sicherzustellen, dass das Problem mit der db liegt, nicht durch die App oder das Netzwerk verursacht .... – frz3993