|
|
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте! Надеюсь кто-нибудь подскажет правильное решение. Сразу извиняюсь, сам я в мускуле очень неважно разбираюсь. Но хостер тоже ничего не может сказать. Есть сайт на Битриксе на общем хостинге с каталогом ~12k товаров. База 5.2.14-MariaDB, таблицы MyISAM. Производительность в целом удовлетворительная, а базы хорошая (поэтому не хочется переводить в InnoDB). Опуская все лишнее, для специальной обработки из базы стандартным функционалом Битрикс (CIBlockElement::GetList) выбирается список элементов. Весь запрос приложил файлом (с абстрактными значениями ключей), но самый интересный блок, а именно подзапрос, видимо, этот: Код: sql 1. 2. 3. 4. Проблема в том, что когда этих IBLOCK_SECTION_ID в условии становится ровно 755 или больше, то мускуль загибается почти совсем, когда 754 или меньше выполняется практически мгновенно (для такого большого и редкого запроса). От того, какие именно IDшники убрать/добавить разница не меняется. Разница катастрофическая - скачек времени выполнения с 0.4 секунды до 2 минут. Запрос висит в состоянии Sending data , блокирует таблицы. При этом это чистый зависон, сам я не могу смотреть загрузку процессоров БД на хостинге, но ТП мне сказала, что никакой значимой нагрузки при выполнении долгого запроса не возникает. Может быть кто-нибудь с таким сталкивался? Хостер предложил увеличить join_buffer_size - не помогло. Сам пробовал наращивать разные переменные, эффекта ноль. Но судя по всему, просто что-то где-то в среде выполнения запроса резко заканчивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 15:31 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
А размер входного пакета какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 15:33 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Akina, max allowed packet был 1МБ, поменял на дефолтное 4МБ. К сожалению, без эффекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 16:07 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
лог ошибок посмотри. план запроса посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 16:09 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
ScareCrow, ошибок вроде нет (даже не знаю, где у хостера их смотреть). План запроса это EXPLAIN? Тогда разница есть, хотя я ее понять не могу. Может быть Вы поможете? "Хороший" запрос: авторid select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY B const PRIMARY PRIMARY 4 const 1 1 PRIMARY L const PRIMARY PRIMARY 6 const 1 Using index 1 PRIMARY FP0 ref ix_iblock_property_1,ix_iblock_property_2 ix_iblock_property_2 153 const 1 1 PRIMARY FP1 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP2 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP3 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP4 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 10582 Using join buffer 1 PRIMARY BE eq_ref PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code PRIMARY 4 BES.IBLOCK_ELEMENT_ID 1 Using where 1 PRIMARY CAT_P6 ref IXS_CAT_PRICE_PID,IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 BES.IBLOCK_ELEMENT_ID,const 1 Using index 1 PRIMARY CAT_P8 ref IXS_CAT_PRICE_PID,IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index 1 PRIMARY CAT_P9 ref IXS_CAT_PRICE_PID,IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 BES.IBLOCK_ELEMENT_ID,const 1 Using index 1 PRIMARY CAT_PR eq_ref PRIMARY PRIMARY 4 BES.IBLOCK_ELEMENT_ID 1 1 PRIMARY CAT_IB eq_ref PRIMARY PRIMARY 4 uXXXXX.BE.IBLOCK_ID 1 1 PRIMARY FPV0 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 BES.IBLOCK_ELEMENT_ID,uXXXXX.FP0.ID 1 Using index 1 PRIMARY FPV1 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP1.ID 1 1 PRIMARY FPV2 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP2.ID 1 1 PRIMARY FPV3 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP3.ID 1 Using index 1 PRIMARY FPV4 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP4.ID 1 Using index 2 DERIVED BS range PRIMARY PRIMARY 4 NULL 752 Using where; Using index; Using temporary 2 DERIVED BSE ref ux_iblock_section_element ux_iblock_section_element 4 uXXXXX.BS.ID 16 Using index "Плохой" запрос: авторid select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY B const PRIMARY PRIMARY 4 const 1 1 PRIMARY L const PRIMARY PRIMARY 6 const 1 Using index 1 PRIMARY FP0 ref ix_iblock_property_1,ix_iblock_property_2 ix_iblock_property_2 153 const 1 1 PRIMARY FP1 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP2 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP3 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP4 const PRIMARY,ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY BE ref PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code ix_iblock_element_code 4 const 10489 Using where 1 PRIMARY CAT_P6 ref IXS_CAT_PRICE_PID,IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index 1 PRIMARY CAT_P8 ref IXS_CAT_PRICE_PID,IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index 1 PRIMARY CAT_P9 ref IXS_CAT_PRICE_PID,IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index 1 PRIMARY CAT_PR eq_ref PRIMARY PRIMARY 4 uXXXXX.BE.ID 1 1 PRIMARY CAT_IB eq_ref PRIMARY PRIMARY 4 uXXXXX.BE.IBLOCK_ID 1 1 PRIMARY FPV0 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP0.ID 1 Using index 1 PRIMARY FPV1 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP1.ID 1 1 PRIMARY FPV2 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP2.ID 1 1 PRIMARY FPV3 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP3.ID 1 Using index 1 PRIMARY FPV4 ref ix_iblock_element_property_1,ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID,uXXXXX.FP4.ID 1 Using index 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 10672 Using where; Using join buffer 2 DERIVED BS range PRIMARY PRIMARY 4 NULL 756 Using where; Using index; Using temporary 2 DERIVED BSE ref ux_iblock_section_element ux_iblock_section_element 4 uXXXXX.BS.ID 16 Using index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 16:33 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Походу тебе надо поизучать http://dev.mysql.com/doc/refman/5.7/en/internal-temporary-tables.html - посмотри, что у тебя в tmp_table_size и max_heap_table_size, помониторь во время выполнения "плохого" и "хорошего" запросов значения Created_tmp_tables и Created_tmp_disk_tables. Хотя уже само по себе In some cases, the server creates internal temporary tables while processing statements. Users have no direct control over when this occurs.ни разу не вдохновляет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 16:44 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Akinaпосмотри, что у тебя в tmp_table_size и max_heap_table_size Уже нарастил (с 16 до 24 МБ), не помогло. Akinaпомониторь во время выполнения "плохого" и "хорошего" запросов значения Created_tmp_tables и Created_tmp_disk_tables. А где их можно лицезреть, да так, чтобы успеть за хорошим запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 16:59 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Colasгде их можно лицезреть в консоли, вестимо Colasтак, чтобы успеть за хорошим запросом? добавь в список полей вывода sleep() секунд на несколько, и успевай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 17:01 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Прогрессивная симптоматика! Теперь все виснет на 661 ID в запросе! :) Может это связано с тем, что я правил tmp_table_size на 24 МБ, но вернул на место 16 МБ. Временных таблиц на диске действительно многовато, но точно сказать, сколько генерируется не могу, так как величина постоянно увеличивается. Но при долгом запросе держится на одном значении. Created_tmp_disk_tables 1,730 Created_tmp_files 5 Created_tmp_tables 4,640 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 17:43 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Я бы попробовал ещё увеличить tmp_table_size и max_heap_table_size - особенно если "есть куда расти". Скажем, до 64М, для начала... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 17:53 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Чудесатые чудеса. Решил перезапустить mysql (у хостера это делается пересохранением настроек в админке), чтобы откатить настройки базы к дефолтным (на хостинге). И заработало, больше (пока и на текущей базе) я не могу создать задержку выполнения запросов, что очень странно потому, что ребята из ТП делали это не раз, разбираясь с моей заявкой. Решил переустановить настройки, вспомнил про optimizer_search_depth, которую давно установил на 0. Зачем написано здесь и здесь . Благодаря перезапуску мускуля ТП значение вернулось к дефолтному 62 (сейчас уже не могу точно сказать, не восстанавливали ли его на 0 админы ТП, когда перезапускали). Оказалось, что непонятным образом виноват этот параметр (обычно с ним наоборот проблемы). Если ставлю на 0, то начинаются зависоны, со стандартным значением пока работает нормально. Будем смотреть, возможно для исправления обеих проблем (если старая вернется а новая решилась) потребуется установить какое-то среднее значение. На данный момент, спасибо всем за участие в решении проблемы! Узнал много нового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2016, 19:44 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
автор PRIMARY <derived2> ALL NULL NULL NULL NULL 10582 Using join buffer вот из за этого дохнет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 10:18 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
ScareCrowвот из за этого дохнетА откуда взяться индексам у подзапроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 10:34 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
AkinaScareCrowвот из за этого дохнетА откуда взяться индексам у подзапроса? не тот запрос сорри. помирает автор1 PRIMARY BE ref PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code ix_iblock_element_code 4 const 10489 Using where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 12:42 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
ScareCrow, то есть, насколько я понял из мануала , SECTION_ID вдруг перестает быть PRIMARY KEY or UNIQUE NOT NULL ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:39 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
ColasScareCrow, то есть, насколько я понял из мануала , SECTION_ID вдруг перестает быть PRIMARY KEY or UNIQUE NOT NULL ? чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 17:43 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Без комментариев, просто причесать пост: ColasScareCrow, ошибок вроде нет (даже не знаю, где у хостера их смотреть). План запроса это EXPLAIN? Тогда разница есть, хотя я ее понять не могу. Может быть Вы поможете? "Хороший" запрос: id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY B const PRIMARY PRIMARY 4 const 1 1 PRIMARY L const PRIMARY PRIMARY 6 const 1 Using index1 PRIMARY FP0 ref ix_iblock_property_1, ix_iblock_property_2 ix_iblock_property_2 153 const 1 1 PRIMARY FP1 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP2 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP3 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP4 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY <derived2> ALL NULLNULLNULLNULL10582 Using join buffer1 PRIMARY BE eq_ref PRIMARY, ix_iblock_element_1, ix_iblock_element_4, ix_iblock_element_3, ix_iblock_element_code PRIMARY 4 BES.IBLOCK_ELEMENT_ID 1 Using where1 PRIMARY CAT_P6 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 BES.IBLOCK_ELEMENT_ID, const 1 Using index1 PRIMARY CAT_P8 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID, const 1 Using index1 PRIMARY CAT_P9 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 BES.IBLOCK_ELEMENT_ID, const 1 Using index1 PRIMARY CAT_PR eq_ref PRIMARY PRIMARY 4 BES.IBLOCK_ELEMENT_ID 1 1 PRIMARY CAT_IB eq_ref PRIMARY PRIMARY 4 uXXXXX.BE.IBLOCK_ID 1 1 PRIMARY FPV0 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 BES.IBLOCK_ELEMENT_ID, uXXXXX.FP0.ID 1 Using index1 PRIMARY FPV1 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP1.ID 1 1 PRIMARY FPV2 ref ix_iblock_element_property_1,i x_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP2.ID 1 1 PRIMARY FPV3 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP3.ID 1 Using index1 PRIMARY FPV4 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP4.ID 1 Using index2 DERIVED BS range PRIMARY PRIMARY 4 NULL752 Using where; Using index; Using temporary2 DERIVED BSE ref ux_iblock_section_element ux_iblock_section_element 4 uXXXXX.BS.ID 16 Using index "Плохой" запрос: id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY B const PRIMARY PRIMARY 4 const 1 1 PRIMARY L const PRIMARY PRIMARY 6 const 1 Using index1 PRIMARY FP0 ref ix_iblock_property_1, ix_iblock_property_2 ix_iblock_property_2 153 const 1 1 PRIMARY FP1 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP2 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP3 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY FP4 const PRIMARY, ix_iblock_property_1 PRIMARY 4 const 1 1 PRIMARY BE ref PRIMARY, ix_iblock_element_1, ix_iblock_element_4, ix_iblock_element_3, ix_iblock_element_code ix_iblock_element_code 4 const 10489 Using where1 PRIMARY CAT_P6 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index1 PRIMARY CAT_P8 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index1 PRIMARY CAT_P9 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 uXXXXX.BE.ID,const 1 Using index1 PRIMARY CAT_PR eq_ref PRIMARY PRIMARY 4 uXXXXX.BE.ID 1 1 PRIMARY CAT_IB eq_ref PRIMARY PRIMARY 4 uXXXXX.BE.IBLOCK_ID 1 1 PRIMARY FPV0 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP0.ID 1 Using index1 PRIMARY FPV1 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP1.ID 1 1 PRIMARY FPV2 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP2.ID 1 1 PRIMARY FPV3 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP3.ID 1 Using index1 PRIMARY FPV4 ref ix_iblock_element_property_1, ix_iblock_element_property_2 ix_iblock_element_property_1 8 uXXXXX.BE.ID, uXXXXX.FP4.ID 1 Using index1 PRIMARY <derived2> ALL NULLNULLNULLNULL10672 Using where; Using join buffer2 DERIVED BS range PRIMARY PRIMARY 4 NULL756 Using where; Using index; Using temporary2 DERIVED BSE ref ux_iblock_section_element ux_iblock_section_element 4 uXXXXX.BS.ID 16 Using index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 18:47 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
у тебя сервак ворочает 10489 строк. на этом и дохнет. найди в каком месте запроса он это делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 10:39 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
А может имеет смысл создать временную таблицу с перечисляемыми значениями, а потом просто подключать ее в запросе? И не париться с механизмами mySql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2016, 17:39 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 00:43 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
есть некая разница в двух запросах -- посмотрите какие референсы используются в строчках CAT_P6, CAT_P8, CAT_P9, CAT_PR и может еше гденибудь В самом СКЛ-е есть INNER JOIN ( SELECT DISTINCT BSE.IBLOCK_ELEMENT_ID FROM b_iblock_section_element BSE INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID WHERE ((BS.ID IN (123, 24, 1025, 326, ..., 1432))))BES ON BES.IBLOCK_ELEMENT_ID = BE.ID Так вот, кое где используется РЕФ на BES.IBLOCK_ELEMENT_ID кое-где на BE.ID. Заметим что в тексте СКЛ-а в явном виде CAT_P6.PRODUCT_ID = BE.ID но в "хорошем" запросе подстава PRIMARY CAT_P6 ref IXS_CAT_PRICE_PID, IXS_CAT_PRICE_GID IXS_CAT_PRICE_PID 8 BES.IBLOCK_ELEMENT_ID ...является ли это причиной замедления я не в курсе. Можно проверить , напромер если поменять все CAT_xx связки на и посмотерть скорость. CAT_хх.PRODUCT_ID = BES.IBLOCK_ELEMENT_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 06:02 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
...вообще СКЛ имеет дофия жоинтов...оптимизатор заколебётся перебирать все варианты... возможно у него нехватка времени (оптимизатор имеет времменые рамки и не имеет право делать долгий перебор вариантов). Т.е. иногда он успел угадать подставу, иногда не успел -- и соответвено вывалился на диск создавая временую таблицу. ...если это предположение верно, то можно попробовать поставить BES подселект первым на самый верх и оставить или поменять порядок в "ON"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 06:13 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
авторпопробовать поставить BES подселект первым на самый верх и оставить или поменять порядок в "ON".. это битрикс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 10:55 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторпопробовать поставить BES подселект первым на самый верх и оставить или поменять порядок в "ON".. это битрикс. ...битрикс не знаю, но слишал что там все генерится само... ну...тогда надо искать настройки оптимизатора... как-то дать ему больше времени....или на более современый МуСКЛ переходить -- говорят там оптимизатор лучше ... и другие улучшения... например я сам видел как новый МыСКЛ строит на лету (!) индексы по под-запросу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 16:19 |
|
||
|
Мускуль резко помирает на чуть увеличенном колличественно запросе, на меньшем живет
|
|||
|---|---|---|---|
|
#18+
Господа, большое спасибо за участие! Особенно спасибо javajdbc за в целом понятное для меня объяснение. На данный момент проблема отсутствует (и я надеюсь, это надолго). Битрикс действительно не славится качеством генерируемых запросов, впрочем, я вряд ли бы сгенерировал лучше. Но теперь буду знать, куда копать, если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 16:52 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=99&tid=1831691]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 320ms |

| 0 / 0 |
