Così qui è una tabella molto semplice 'tbl':Perché questa semplice query MySQL è così lenta?
+---------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+----------------+
| val | varchar(45) | YES | MUL | NULL | |
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
+---------+---------------------+------+-----+---------+----------------+
e gli indici per esso:
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| tbl | 0 | PRIMARY | 1 | id | A | 201826018 | NULL | NULL | | BTREE | |
| tbl | 1 | val | 1 | val | A | 881336 | NULL | NULL | YES | BTREE | |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
sto cercando questo semplice selezionare:
select val from tbl where val = 'iii';
risultato: 86.208 righe nel set (0,08 sec)
Ma quando voglio modificarlo leggermente:
select id, val from tbl where val = 'iii';
il risultato è: 86208 rows in set (47.30 sec)
ho un proprio indice sul coumn che qualora punti a, tutto sto modifica è la rappresentazione righe di risultati. Perché c'è un ritardo così terrificante? (Devo dire che non riesco a riprodurre questo ritardo ogni volta che voglio: anche dopo aver ripristinato la cache della query o impostato il comando 'query_cache_type = off' può essere fatto rapidamente).
Si potrebbe provare a eseguire "EXPLAIN", ma si sospetta che si tratti più di un problema relativo al server. –
Perché dovresti selezionare 86 mila campi e fare quello di DUE colonne? Penso che il problema qui sia la logica della query:/Forse dovresti condividere quello che vuoi ottenere? –
Motore ?, prova l'indice di testo completo – jcho360