Ich habe einen Tisch mit mehr als 15m Zeilen. Ich brauche die Gesamtzahl der Zeilen. Damit:
SELECT COUNT(*) FROM thetable;
Das dauert ungefähr 50s. Erklären gibt mir Select tables optimized away
. Ich nehme an, dies bedeutet, dass das Ergebnis nur mithilfe eines Index gefunden werden kann. Warum dauert es dann immer noch so lange? Hier sind einige Informationen zum Index in der id
Spalte (nicht nullbar):
Indextyp: BTREE (gruppiert)
Kardinalität: 14623100
Einzigartig: JA
Wie kann ich die Leistung dieser Abfrage verbessern? Vielen Dank.
Hinweis: Die Datenbank ist MySQL 5.7.1 und verwendet die InnoDB-Engine.
BEARBEITEN:
Anweisung erstellen:
CREATE TABLE `properties` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`address` varchar(255) DEFAULT NULL,
`locality` varchar(50) DEFAULT NULL,
`latitude` decimal(13,9) DEFAULT NULL,
`longitude` decimal(13,9) DEFAULT NULL,
`state` varchar(10) DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
.....
PRIMARY KEY (`id`),
KEY `index_properties_on_address` (`address`),
KEY `index_properties_on_latitude` (`latitude`),
KEY `index_properties_on_longitude` (`longitude`),
KEY `index_properties_on_state` (`state`),
KEY `index_properties_on_created_at` (`created_at`),
.....
) ENGINE=InnoDB AUTO_INCREMENT=28267712 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;
Hinweis: Ich habe einige Zeilen weggelassen, es gibt 44 Spalten.
Plan erklären:
+ ---- + ------------- + ------- + ------------ + ------ + - ------------- + ------ + --------- + ------ + ------ + ----- ----- + ------------------------------ + | id | select_type | Tabelle | Partitionen | Typ | mögliche_Tasten | Schlüssel | key_len | ref | Zeilen | gefiltert | Extra | + ---- + ------------- + ------- + ------------ + ------ + - ------------- + ------ + --------- + ------ + ------ + ----- ----- + ------------------------------ + | 1 | EINFACH | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Ausgewählte Tabellen auswählen | + ---- + ------------- + ------- + ------------ + ------ + - ------------- + ------ + --------- + ------ + ------ + ----- ----- + ------------------------------ +