mysql index kérdés
Sziasztok!
Van egy egyszerű table
CREATE TABLE `refr` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`date` date NOT NULL default '0000-00-00',
`text` text NOT NULL,
KEY `id` (`id`),
KEY `date` (`date`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;
és egy select:
SELECT text,date FROM refr ORDER BY date DESC LIMIT 1;
egy paraméter:
my.conf : log-long-format
és két kérdés:
- ez a log-long-format ha jól értettem, azt teszi, hogy nem csak a slow queryket hanem az indexeletlen lekéréseket is logolja. Az én selectem szerintem indexelt, ezt állitja az explain is.
mysql> explain SELECT text,date FROM refr ORDER BY date LIMIT 1;
+-------+-------+---------------+------+---------+------+------+-------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+-------+---------------+------+---------+------+------+-------+
| refr | index | NULL | date | 3 | NULL | 8 | |
+-------+-------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
Akkor miért logolja mégis???
- kérdés 2:
ha LIMIT # et használok, miért nézi mégis át az összes sort egy indexelt lekérdezésben? Elvileg meg kéne állnia a #diknél. explain azt mondja az összes sort átnézte.
Köszi,
GaB
■ Van egy egyszerű table
CREATE TABLE `refr` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`date` date NOT NULL default '0000-00-00',
`text` text NOT NULL,
KEY `id` (`id`),
KEY `date` (`date`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;
és egy select:
SELECT text,date FROM refr ORDER BY date DESC LIMIT 1;
egy paraméter:
my.conf : log-long-format
és két kérdés:
- ez a log-long-format ha jól értettem, azt teszi, hogy nem csak a slow queryket hanem az indexeletlen lekéréseket is logolja. Az én selectem szerintem indexelt, ezt állitja az explain is.
mysql> explain SELECT text,date FROM refr ORDER BY date LIMIT 1;
+-------+-------+---------------+------+---------+------+------+-------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+-------+---------------+------+---------+------+------+-------+
| refr | index | NULL | date | 3 | NULL | 8 | |
+-------+-------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
Akkor miért logolja mégis???
- kérdés 2:
ha LIMIT # et használok, miért nézi mégis át az összes sort egy indexelt lekérdezésben? Elvileg meg kéne állnia a #diknél. explain azt mondja az összes sort átnézte.
Köszi,
GaB
Összes sor
Talán ezért. Talán nem. :)
-boogie-