SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.11.2007 15:49:41

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Отличия USE INDEX и FORCE INDEX

MySQL поддерживает возможность указывать оптимизатору какой индекс использовать. Для этого служат директивы IGNORE INDEX, USE INDEX,  FORCE INDEX, http://dev.mysql.com/doc/refman/5.0/en/index-hints.html

USE INDEX и FORCE INDEX указывают на один из возможных индексов. В случае FORCE INDEX данный индекс используется всегда, когда это возможно, а в случае USE INDEX указанный индекс используется всегда, если оптимизатор не предпочел обойтись без индексов вообще (сделать полный скан таблицы)

Неактивен

 

#2 16.03.2008 23:17:10

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Отличия USE INDEX и FORCE INDEX

На моей практике использование FORCE INDEX значительно замедляло выполнение запроса по сравнению с запросом без указывания индекса. На сколько это может быть логичным? smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 16.03.2008 23:35:38

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Отличия USE INDEX и FORCE INDEX

Приведите пожалуйста запрос и структуру таблицы. Оптимизатор знает, что иногда перебор таблицы быстрее, чем использование индекса (при небольшом числе записей). Объяснение может быть таким: при использовании индекса необходимо двигаться по дереву, то есть перемещаться в разные области диска. При полном переборе, можно просто последовательно считать таблицу.

Например, если CARDINALITY низкая и индекс позволяет сократить число просматриваемых записей только вдвое, то full scan предпочтительнее из-за последовательного чтения диска.

Неактивен

 

#4 18.03.2008 18:42:03

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Отличия USE INDEX и FORCE INDEX

Наверное мои слова не объективны, т.к. запросы делались не в соответствующих условиях smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson