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




MySQL.RU - Webboard



Вернуться
Выбрать индекс (TLoD,Snake) 25/04/2005 - 20:40:56
      Re: Выбрать индекс (Dinky) 25/04/2005 - 22:44:56

> Original message text:
> From: TLoD,Snake - 25/04/2005 - 20:40:56
> Subject:Выбрать индекс
> -----------------
> Есть табличка следующего содержания:
>
> CREATE TABLE `entry` (
> `id` bigint(20) unsigned NOT NULL auto_increment,
> `uid` int(10) unsigned NOT NULL default '0',
> `crtm` datetime default NULL,
> `title` varchar(150) default NULL,
> `text` mediumtext,
> `privacy` enum('all','user','friend','private') NOT NULL default 'all',
> `comment_privacy` enum('all','user','friend','private') NOT NULL default 'all',
> `publish` tinyint(1) default NULL,
> `mood` varchar(100) default NULL,
> `music` varchar(100) default NULL,
> `comment_cnt` int(10) unsigned NOT NULL default '0',
> `adm` tinyint(1) default NULL,
> PRIMARY KEY (`id`),
> KEY `uid` (`uid`),
> KEY `crtm` (`crtm`,`publish`,`privacy`,`comment_privacy`,`adm`)
> ) ENGINE=InnoDB DEFAULT CHARSET=cp1251
>
> Это база сообщений, нужно выбрать из нее все новые сообщения по дате и административные, вне зависимости от даты. Для этого делаю такой запрос:
>
> select * from entry where crtm > '2005-01-10' OR adm=1;
>
> EXPLAIN мне показывает, что хоть мускль и избрал !возможный! ключ crtm, на самом деле он никакого индекса пользовать не стал.
>
> Это борется созданием отдельного ключа по полю adm. Ключи были сгруппированы в crtm так как они используются в запросах комбинировано. Вопрос в том, как бы эти ключи теперь реорганизовать? Надо ли выносить их все в отдельные индексы?
>
>


From: Dinky - 25/04/2005 - 22:44:56
Subject:Выбрать индекс
-----------------
нет, надо почитать КАК mysql использует индексы ;)
http://dev.mysql.com/doc/mysql/en/mysql-indexes.html
http://dev.mysql.com/doc/mysql/ru/mysql-indexes.html

--
Dmitry



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

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

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



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