Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UNE INDEX для VIEW (выбор индекса в представлении) / 9 сообщений из 9, страница 1 из 1
05.01.2016, 20:54:16
    #39142511
Artemeey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
`view` = обычное представление

SELECT * FROM `view` USE INDEX (`PRIMARY`) WHERE ....

Получаю ошибку: #1176 - Key 'PRIMARY' doesn't exist in table 'view'

Если запрос делать так: SELECT * FROM `view` WHERE ...., интерпретатор выбирает не тот индекс.

Как же при выборке с использованием VIEW указать предпочтительный индекс?
...
Рейтинг: 0 / 0
05.01.2016, 21:35:23
    #39142522
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
Лучше вообще VIEW не использовать.
...
Рейтинг: 0 / 0
05.01.2016, 21:54:25
    #39142527
Artemeey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
Если кому то будет интересно, то ключи не использовались из-за большого условия.

На допустимый максимальный перебор условий для использования ключа влияет параметр max_seeks_for_key.
Настроив это параметр представление начнет работать с необходимыми ключами.
...
Рейтинг: 0 / 0
05.01.2016, 21:57:10
    #39142528
Artemeey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
Как использовать USE INDEX при вызове представления - решения не нашел.

Споры о том, для чего придуманы представления и стоит ли их использовать - за рамками данной темы.
...
Рейтинг: 0 / 0
06.01.2016, 19:17:50
    #39142822
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
ArtemeeyКак использовать USE INDEX при вызове представления - решения не нашел.Представление вообще-то не индексировано. В принципе. Так что нет смысла пытаться использовать то, чего нет.
...
Рейтинг: 0 / 0
06.01.2016, 22:23:48
    #39142885
Artemeey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
Akina,

Представление строится на данных таблиц. Эти таблицы имеют индекс. При вызове представления используются индексы соответствующих таблиц.
...
Рейтинг: 0 / 0
06.01.2016, 22:35:13
    #39142890
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
ArtemeeyПредставление строится на данных таблиц. Эти таблицы имеют индекс. При вызове представления используются индексы соответствующих таблиц.
Даже в подзапросах индексы в подавляющем большинстве случаев используются только внутри подзапроса. А если вьюв не будет раскрываться в тексте - то индекс гарантированно будет использоваться исключительно внутри. И даже хуже - если в подзапросе мог бы использоваться покрывающий индекс, во внешнем запросе будет гарантированное сканирование таблицы.
...
Рейтинг: 0 / 0
07.01.2016, 03:07:30
    #39142922
Artemeey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
Akina,

Сейчас VIEW использует индекс правильно. Выше я написал, что дело было в настройке max_seeks_for_key, влияющая на использования индекса в условиях вида
`a` = '...' OR `a` = '...'
А так же вида:
...
Рейтинг: 0 / 0
07.01.2016, 03:07:55
    #39142923
Artemeey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNE INDEX для VIEW (выбор индекса в представлении)
А так же вида:

`a` IN (....)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UNE INDEX для VIEW (выбор индекса в представлении) / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]