Новости
Документация
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

> Original message text:
> 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 |
> +----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+
>
>
> где логика? что я пропустил?
>


From: Akina - 26/04/2012 - 21:24:31
Subject:Использование индекса ....
-----------------
Эксперименты многих товарищей показывают, что в значительной части случаев этот порог - где-то в районе 5-7%.


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

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

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



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