|
|
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. Здравствуйте. Данный запрос выбирает из таблицы новости только категории =1(node.type=1) По факту из таблицы node выбривается только айдишник новости а уже потом как трансформер этот айдишник прицепляет к себе из таблиц title, category, body, video соответствующий контент и в итоге получаем на выходе готовую новость с заголовком, категорией, видео, и текстом Тут не указано сколько новостей выбрать из таблицы, но т.к. их пока около 50 это дополнительное условие LIMIT я опустил Получваю ошибку в пхпмай админ The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay Узнаю из max_join_size что моя выборка каким-то чудесным образом при расчете затронула больше 4млрд строк. Перейдя по ссылке можно увидеть критическую цифру после которой вылетает данная ошибка. Таблица имеющая всего 50 новостей и 4млрд WTF? Где при составлении запроса я допустил ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 19:36:07 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Покажите план запроса. Есть подозрение, что у вас нет ни одного индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 19:56:20 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
miksoftПокажите план запроса. Есть подозрение, что у вас нет ни одного индекса. таки нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 21:36:03 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Milsoft, Вы сказали про индексы и я полез в яндекс. Недолго читая увидел: "...приведите в порядок свой WHERE". Привел его "в порядок" добавив к WHERE еще Код: sql 1. Запрос выполнился. Теперь план запроса выглядит так Правильно??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 21:43:35 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Добавлять условия не надо, пусть в JOIN-ах и остаются. Для начала, создайте индексы у всех таблиц field_data_* по полю nid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 21:56:31 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Нет неправильно. Выбирается теперь только одна новость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 21:58:51 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
авторНет неправильно. Выбирается теперь только одна новость Это я написал про попытку добавить условие к WHERE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:01:24 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Индексы добавил как Вы и сказали Выборка работает Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:23:13 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
bodpad, Теперь значительно лучше. Если есть желание еще ускорить, то можно попробовать создать индекс (type,nid) на таблице node. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:39:41 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Мне индексы добавить к обоим полям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:53:02 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
И еще один важный вопрос который очень-очень мне интересен. Как при моей не оптимизированной выборке mysql формируя ответ затронул больше 4млрд строк? Даже перемножив все строки я не понимаю откуда такая цифра. Как она получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:56:23 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
bodpadМне индексы добавить к обоим полям?Нет, один индекс из двух полей и именно в том порядке, который я указал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:57:45 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
bodpadИ еще один важный вопрос который очень-очень мне интересен. Как при моей не оптимизированной выборке mysql формируя ответ затронул больше 4млрд строк? Даже перемножив все строки я не понимаю откуда такая цифра. Как она получается?Это была приблизительная оценка на основе данных статистики. Видимо, статистика по таблицам сильно не соответствовала реальным данным. Обновить статистику по таблице можно командой ANALYZE TABLE mytable. В результате должно быть "ОК", это так и надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 22:59:55 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
Сделал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 23:16:16 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
bodpadСделалА новый план показать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 23:21:12 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
А что там в колонке Extra обрезалось? Теперь поживите пока так, если будут проблемы с производительностью - приходите еще. Есть еще мысли по ускорению, но на полусотне записей они практического смысла не имеют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 23:34:31 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
В колонке Extra ничего не обрезалось. Заскринил все. Подумал в верстке проблема и часть текста не отобразилась, посмотрел через firebug, там только Using where :) Вы сказали: "Есть еще мысли по ускорению". Не прошу описывать методы, Вы и так для меня очень много сделали. Просто скажите, что почитать и в каком направлении копать, а я потихоньку на будущее начну разбирать тему. Забыл сказать самое главное. Дай вам Бог здоровья! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 23:48:51 |
|
||
|
4млрд или оптимизация JOIN
|
|||
|---|---|---|---|
|
#18+
bodpadскажите, что почитать и в каком направлении копатьЕсли объема и английского языка не боитесь, то в документации есть целая глава Optimization . (Хотя объем там не такой уж и большой, а английский совсем простой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2013, 09:54:06 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1835652]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 332ms |

| 0 / 0 |
