Странная ошибка The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHE

12
N
На сайте с 06.05.2007
Offline
419
#11

Miracle, представь, что бы выдал этот запрос не будь в нем LIMIT, DISTINCT и GROUP BY.

Наверняка у тебя там неправильно пересечение кучи строк N с еще большей кучей M, что в JOIN в результате даст N*M строк.

Для защиты от ошибок и чтобы не перегрузить сервер и сделан этот лимит.

Кнопка вызова админа ()
M
На сайте с 20.08.2004
Offline
376
#12
netwind:
Miracle, представь, что бы выдал этот запрос не будь в нем LIMIT, DISTINCT и GROUP BY.

а зачем? что бы увидеть масштабы?

netwind:
Наверняка у тебя там неправильно пересечение кучи строк N с еще большей кучей M, что в JOIN в результате даст N*M строк.

как это проверить, буду признателен за подсказку

Miracle добавил 03.02.2011 в 01:52

вот к примеру, то что у меня выполняется дольше остального

я не увидел здесь особых нюансов.

отец сыночка, лапочки дочки и еще одного сыночка
N
На сайте с 06.05.2007
Offline
419
#13

Miracle, ты определись выполняется или получаешь ошибку. Я только ошибку имел ввиду.

покажи еще show variables like '%max_join%';

M
На сайте с 20.08.2004
Offline
376
#14

max_join_size 1 000 000

sql_max_join_size 1 000 000

Miracle добавил 03.02.2011 в 09:16

netwind:
Miracle, ты определись выполняется или получаешь ошибку. Я только ошибку имел ввиду.

ошибка возникла один раз. я не знаю как увидеть где была ошибка.

правда при выходе в бд при обращении к таблице комментов она была постоянно пока не заблокировал доступ к серверу.

N
На сайте с 06.05.2007
Offline
419
#15
Miracle:
я не знаю как увидеть где была ошибка.

Сделай так, чтобы знал. Или ты думаешь что на форуме угадают? Выводи при возникновении ошибки сам запрос.

Значение конечно маленькое, но может так и было задумано при настройке сервера.

По-умолчанию там 18446744073709551615.

rtyug
На сайте с 13.05.2009
Offline
263
#16

на нагруженном проекте подобное было, я добавил в начало, там где подключение, просто:

 $db->do('SET SQL_BIG_SELECTS=1');

подробности уже не помню... может ошибаюсь...

в конфиге MySQL, в my.cnf можно это выключить, в новой верси, вродебы

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
DyaDya
На сайте с 11.04.2007
Offline
147
#17
Miracle:
а зачем? что бы увидеть масштабы?


как это проверить, буду признателен за подсказку

Miracle добавил 03.02.2011 в 01:52
вот к примеру, то что у меня выполняется дольше остального





я не увидел здесь особых нюансов.

Очень странно. Явных косяков не видно. По сколько записей в каждой таблице у вас? Вы уверены, что именно этот запрос создаёт проблемы с MAX_JOIN_SIZE? Уж тем более неясно, почему ошибка то есть, то её нет. Косяк где-то в другом месте. Думаю, вам стоит стукнуться к хостеру.

Часто проблемы с MAX_JOIN_SIZE бывают, когда объединяется более 2-х таблиц и неправильно указаны условия в WHERE и в итоге реально объединение может быть очень и очень MAX_JOIN_SIZE. А при объединении 2-х таблиц, да ещё с ограниченным числом записей в каждой, проблем быть вроде как не должно.

Хотя... второй запрос что-то меня пугает. В нём уже 3 таблички. Так по сколько записей у вас в таблицах? Просто WHERE не прокатит? Обязательно через LEFT JOIN?

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
N
На сайте с 06.05.2007
Offline
419
#18
rtyug:
на нагруженном проекте подобное было, я добавил в начало, там где подключение, SET SQL_BIG_SELECTS=1

и нагрузил его еще больше. ай, малацца.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий