Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Использование индекса .... (Dmitriy) 26/04/2012 - 09:34:54
      Re: Использование индекса .... (Akina) 26/04/2012 - 12:18:01
      Re: Использование индекса .... (Dmitriy) 26/04/2012 - 17:12:18
      Re: Использование индекса .... (Akina) 26/04/2012 - 21:24:31



From: Dmitriy - 26/04/2012 - 09:34:54
Subject:Использование индекса ....
-----------------
Часу доброгу, уважаемые. Столкнулся с интересной дилемой...

есть таблица:
CREATE TABLE `events` (
`parent_id` int(11) NOT NULL,
`ds` date NOT NULL DEFAULT '0000-00-00',
`de` date NOT NULL DEFAULT '0000-00-00',
`ts` time NOT NULL DEFAULT '00:00:00',
`te` time NOT NULL DEFAULT '23:59:59',
`days` varchar(15) DEFAULT NULL,
PRIMARY KEY (`parent_id`,`ds`,`de`,`ts`,`te`),
KEY `ds` (`ds`,`de`,`ts`,`te`,`days`),
KEY `ts` (`ts`,`te`),
KEY `days` (`days`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

казалось бы что запрос типа:select * from events where ds >= now();
будет использовать ключи, но explain опровергает ожидаемое ...
explain select * from events where ds >= now();
+----+-------------+--------+------+---------------+------+---------+------+-------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+---------------+------+---------+------+-------+-------------+
| 1 | SIMPLE | events | ALL | ds | NULL | NULL | NULL | 99661 | Using where |
+----+-------------+--------+------+---------------+------+---------+------+-------+-------------+


самое интересное и мне не понятное, почему при указание возвращаемого столбца, ключ всё таки начинает использоваться ...
explain select ds from events where ds >= now();
+----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+
| 1 | SIMPLE | events | range | ds | ds | 3 | NULL | 49138 | Using where; Using index |
+----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+


где логика? что я пропустил?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41152



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |