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




MySQL.RU - Webboard



Вернуться
Почему не используются индексы (Bod2000) 15/01/2003 - 19:28:55
      Re: Почему не используются индексы (Dinky) 16/01/2003 - 19:55:21
      Re: Почему не используются индексы (Bod) 17/01/2003 - 14:31:47
      Re: Почему не используются индексы (Dinky) 17/01/2003 - 20:00:56
      Re: Почему не используются индексы (vi.k) 19/01/2003 - 13:08:39
      Re: Почему не используются индексы (Bod2000) 20/01/2003 - 13:41:22
      Re: Почему не используются индексы (vi.k) 20/01/2003 - 15:50:23
      Re: Почему не используются индексы (Dinky) 20/01/2003 - 17:59:03

> Original message text:
> From: Bod2000 - 15/01/2003 - 19:28:55
> Subject:Почему не используются индексы
> -----------------
> Hi All!
> Возникла интересная ситуация - оптимизатор не использует индексы.
>
> Имеем:
> - MySQL 3.23.51
> 2 таблицы A и B
> Запрос:
> надо получить список покупателей (табл. А) которые делали заказы (табл. B) у магазина или если у них выставлен признак A.Поле2
> select A.поле1
> from A,B
> where (A.Поле1=B.Поле1 and B.Поле2=Значение) or (A.Поле2=Значение)
> group by A.Поле1
>
> A.Поле1 и B.Поле1 являются primary key для своих таблиц
> A.Поле2 и Б.Поле2 проиндексированы отдельными индексами.
> ни один из индексов не используется.
>
> Вопрос - Почему.
>


From: Bod - 17/01/2003 - 14:31:47
Subject:Почему не используются индексы
-----------------
CREATE TABLE `zakaz`
(
`id_z` int(10) unsigned NOT NULL default '0',
`id_u` int(10) unsigned NOT NULL default '0',
`id_s` int(10) unsigned NOT NULL default '0',
`numbers_book` int(10) unsigned NOT NULL default '0',
`date1` int(10) unsigned NOT NULL default '0',
`sumzakaz` float(4,2) NOT NULL default '0.00',
PRIMARY KEY (`id_z`),
KEY `idz_u` (`id_u`)
) TYPE=MyISAM

CREATE TABLE `users`
(
`id_u` int(10) unsigned NOT NULL auto_increment,
`username` char(30) NOT NULL default '',
`password` char(30) NOT NULL default '',
`name` char(50) NOT NULL default '',
`secondname` char(50) NOT NULL default '',
`adress` char(80) NOT NULL default '',
`city` char(40) NOT NULL default '',
`country` char(40) NOT NULL default '',
`crm_owner` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id_u`),
KEY `crm_owner_key` (`crm_owner`)
) TYPE=MyISAM

select users.id_u
from users,zakaz
where (users.id_u=zakaz.id_u and zakaz.id_s=1) or (users.crm_owner=1)
group by users.id_u;

однако при выполнении условий по отдельности (в 2-ух отдельных запросах) или через AND все индексы используются.



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

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

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



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