SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 22.12.2016 10:23:23

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Быстродействие и View

Есть View1 на основе запроса SELECT t1.id ....
Запрос полностью не привожу, так как сложный и, думаю, проблема не в самом запросе.
Данный запрос с фильтром WHERE t1.id = N1 выполняется за 10 мс.
View на основе данного запроса SELECT * FROM View1 WHERE id = N1 выполняется 1,5 сек.
Не могу понять почему такая разница?
Есть идеи?

Неактивен

 

#2 22.12.2016 10:41:36

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Быстродействие и View

вероятно View1 записывается во временную таблицу и уже по ней выполняется поиск.

http://sqlinfo.ru/articles/info/9.html написал:

Существует два алгоритма, используемых MySQL при обращении к представлению: MERGE и TEMPTABLE.

В случае алгоритма MERGE, MySQL при обращении к представлению добавляет в использующийся оператор соответствующие части из определения представления и выполняет получившийся оператор.

В случае алгоритма TEMPTABLE, MySQL заносит содержимое представления во временную таблицу, над которой затем выполняется оператор обращенный к представлению.

Неактивен

 

#3 22.12.2016 10:56:45

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Быстродействие и View

Подозреваю, что именно это, потому что план запроса к View дает полный список строк.
Как этого можно избежать? Не хочется использовать сложный запрос в других запросах.

Неактивен

 

#4 22.12.2016 11:04:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Быстродействие и View

1. если в определении представления указано TALGORITHM = TEMPTABLE, то просто изменить на UNDEFINED или MERGE

2. если запрос сложный, и MySQL выбирает TEMPTABLE, то никак.
к сожалению, view и производительность не очень сочетаются.

Неактивен

 

#5 22.12.2016 11:10:59

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Быстродействие и View

1. TALGORITHM = TEMPTABLE нет
2. sad
Спасибо!

Неактивен

 

Board footer

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