powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Долгая сортировка в запросе.
25 сообщений из 26, страница 1 из 2
Долгая сортировка в запросе.
    #39342770
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Есть вот такой запрос из битрикса:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
SELECT BE.DETAIL_TEXT as DETAIL_TEXT, BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.ID as ID,BE.IBLOCK_ID as IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,BE.NAME as NAME,IF(EXTRACT(HOUR_SECOND
FROM
BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as ACTIVE_FROM,DATE_FORMAT(BE.TIMESTAMP_X, '%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,B.LIST_PAGE_URL as LIST_PAGE_URL,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE,BE.PREVIEW_TEXT as PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.PREVIEW_PICTURE as PREVIEW_PICTURE, 
FPS0.*,

L.DIR as LANG_DIR,BE.CODE as CODE,
BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID
FROM
b_iblock B
INNER JOIN b_lang L ON B.LID=L.LID
INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID
INNER JOIN b_iblock_element_prop_s15 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID
WHERE
1=1 AND ( ((((BE.IBLOCK_ID = '15')))) AND (EXISTS ( SELECT IBLOCK_ID
FROM
b_iblock_site
WHERE
IBLOCK_ID = B.ID AND (((SITE_ID='1a'))) )) AND ((((BE.ACTIVE='Y')))) AND (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND ( ( (( EXISTS ( SELECT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
BSE.IBLOCK_ELEMENT_ID = BE.ID AND ((BS.CODE IN ('form_71649'))) ))) ) OR ( ( (( EXISTS ( SELECT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
BSE.IBLOCK_ELEMENT_ID = BE.ID AND ((BS.CODE IN ('common_news'))) ))) ) ) ) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)))
ORDER BY BE.ACTIVE_FROM desc


Он возвращает 275 записей и выполняется несколько секунд: от 2 до 10 в зависимости от текущей нагрузки на сервер.
Если убрать в конце "ORDER BY BE.ACTIVE_FROM desc" то время выполнения падает до нескольких десятых секунд.
Поле "ACTIVE_FROM" имеет тип DateTime, индекса нет.
Вопросы: Это нормально, то 275 записей сортируются так долго? Он же должен только итоговый набор сортировать?
Могут ли влиять какие-то параметры сервера MySQL на время сортировки? Исправит ли ситуацию добавление индекса?
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342782
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
udp
забыл добавить, что если сделать сортировку по полю iblock_id, значение которого для всех записей одинаково и равняется 15,
то запрос тоже проходит быстро. Т.е. ощущение, что протормаживает само изменение порядка записей.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342788
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGLощущение, что протормаживает само изменение порядка записей.При сортировке записи в памяти не перемещаются, изменения затрагивают только массив ссылок.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342817
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, знаю... Оттого оно и странно.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342883
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaYurikGLощущение, что протормаживает само изменение порядка записей.При сортировке записи в памяти не перемещаются, изменения затрагивают только массив ссылок.С большой долей вероятности сортировка сваливается на диск, а туда перемещается всё.

Поле BE.DETAIL_TEXT имеет тип longtext.
Насколько я помню, это автоматически приводит к filesort-у. Хотя найти этот момент в доке не получилось.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342884
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и план может быть в принципе разный с сортировкой и без.



YurikGL,

покажите планы обоих вариантов запроса.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342904
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftПоле BE.DETAIL_TEXT имеет тип longtext.
Насколько я помню, это автоматически приводит к filesort-у. Хотя найти этот момент в доке не получилось.
а как иначе? индекс может быть только префиксным, а сортировка по всему полю. однозначно filesort
вопрос в том, где он происходит: в памяти или на диске?
это можно узнать через show status (sort_merge_passes)
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39342948
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sort_merge_passes = 16тысяч
Срочно увеличивать innodb_sort_buffer_size ?
У меня 2 мбайта.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343054
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGL,
сделай запрос без сортировки вложенным, и результат сортируй
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343132
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак
1) Выполнение тормозящего запроса с сортировкой не увеличивает Sort_merge_passes
2) Sort_buffer_size 8 мбайт
3) План запроса с order by (выполняется долго)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
1	PRIMARY	B	const	PRIMARY	PRIMARY	4	const	1	Using temporary; Using filesort
1	PRIMARY	L	const	PRIMARY	PRIMARY	6	const	1	
1	PRIMARY	FPS0	ALL	PRIMARY				47751	Using where
1	PRIMARY	BE	eq_ref	PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code	PRIMARY	4	government.FPS0.IBLOCK_ELEMENT_ID	1	Using where
4	DEPENDENT SUBQUERY	BSE	ref	ux_iblock_section_element,UX_IBLOCK_SECTION_ELEMENT2	UX_IBLOCK_SECTION_ELEMENT2	4	government.BE.ID	1	
4	DEPENDENT SUBQUERY	BS	eq_ref	PRIMARY	PRIMARY	4	government.BSE.IBLOCK_SECTION_ID	1	Using where
3	DEPENDENT SUBQUERY	BSE	ref	ux_iblock_section_element,UX_IBLOCK_SECTION_ELEMENT2	UX_IBLOCK_SECTION_ELEMENT2	4	government.BE.ID	1	
3	DEPENDENT SUBQUERY	BS	eq_ref	PRIMARY	PRIMARY	4	government.BSE.IBLOCK_SECTION_ID	1	Using where
2	DEPENDENT SUBQUERY	b_iblock_site	const	PRIMARY	PRIMARY	10	const,const	1	Using index



4) План запроса без order by(выполняется быстро)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
1	PRIMARY	B	const	PRIMARY	PRIMARY	4	const	1	
1	PRIMARY	L	const	PRIMARY	PRIMARY	6	const	1	
1	PRIMARY	FPS0	ALL	PRIMARY				47751	Using where
1	PRIMARY	BE	eq_ref	PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code	PRIMARY	4	government.FPS0.IBLOCK_ELEMENT_ID	1	Using where
4	DEPENDENT SUBQUERY	BSE	ref	ux_iblock_section_element,UX_IBLOCK_SECTION_ELEMENT2	UX_IBLOCK_SECTION_ELEMENT2	4	government.BE.ID	1	
4	DEPENDENT SUBQUERY	BS	eq_ref	PRIMARY	PRIMARY	4	government.BSE.IBLOCK_SECTION_ID	1	Using where
3	DEPENDENT SUBQUERY	BSE	ref	ux_iblock_section_element,UX_IBLOCK_SECTION_ELEMENT2	UX_IBLOCK_SECTION_ELEMENT2	4	government.BE.ID	1	
3	DEPENDENT SUBQUERY	BS	eq_ref	PRIMARY	PRIMARY	4	government.BSE.IBLOCK_SECTION_ID	1	Using where
2	DEPENDENT SUBQUERY	b_iblock_site	const	PRIMARY	PRIMARY	10	const,const	1	Using index



4) авторсделай запрос без сортировки вложенным, и результат сортируй запрос CMS формирует.

з.ы. правильно я понимаю, что по BE.ACTIVE_FRO имеет смысл индекс построить? Его сейчас нет.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343136
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGLз.ы. правильно я понимаю, что по BE.ACTIVE_FRO имеет смысл индекс построить? Его сейчас нет.
сделал ORDER BY BE.ID desc (по проиндексированному полю) - результат такой же как по непроиндексированному. Медленно.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343235
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.
Вопросы: Это нормально, то 275 записей сортируются так долго?

дело не в этом, а в том, что у запросов разные планы выполнения.

Он же должен только итоговый набор сортировать?

нет.
может быть по-разному.


Могут ли влиять какие-то параметры сервера MySQL на время сортировки?

дело не в сортировке.

Исправит ли ситуацию добавление индекса?


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


сделай планы для обоих вариантов запросов,
покажи.

параметры надо зафиксировать.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343250
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGL,
таки немного разобрал запрос,
подходе в нем нет SARGов вообще, берется класс, по ид классе,
и все его интересы протряхиваются предмет
успешности трех под запросов, введенных через exists.

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

лучше всего обратиться в поддержку того модуля битрикс, откуда запрос, пусть сами трахаются, если понаписали...
это полезно, им - чтобы знать о проблемах и чтобы в следующий раз думать, тебе - чтобы не иметь проблем.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343252
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGL,
да, еще, если это используется редко, раз в неделю, скажем, то оставь как есть.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343292
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОн же должен только итоговый набор сортировать?
нет.
может быть по-разному.

А можно с этого места поподробнее?

з.ы. индексы добавил - не помогло. Смущает "Using temporary; Using filesort" на сортировку.
Если сортировать по BE.ACTIVE_FROM оно вылазит. Если по BE.ID (первичный ключ) то тоже вылазит. А вот если делать order by iblock_id (у него во всей выборке одинаковые значения) то "Using temporary; Using filesort" не наблюдается и запрос проходит мгновенно.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343469
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем после ковыряний почти нашел причину.
Итак плану запроса:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
explain SELECT 
BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.ID as ID,
BE.IBLOCK_ID as IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,
BE.NAME as NAME,IF(EXTRACT(HOUR_SECOND
FROM
BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as 
ACTIVE_FROM,DATE_FORMAT(BE.TIMESTAMP_X, '%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,
B.LIST_PAGE_URL as LIST_PAGE_URL,BE.DETAIL_TEXT as DETAIL_TEXT,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE,BE.PREVIEW_TEXT as PREVIEW_TEXT,
BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.PREVIEW_PICTURE as PREVIEW_PICTURE,
 /*отметка */ FPS0.*, 
 L.DIR as LANG_DIR,BE.CODE as CODE,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,
 B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID
FROM
b_iblock B
INNER JOIN b_lang L ON B.LID=L.LID
INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID
/* отметка */INNER JOIN b_iblock_element_prop_s15 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID     
WHERE
1=1 AND ( ((((BE.IBLOCK_ID = '15')))) AND (EXISTS ( SELECT IBLOCK_ID
FROM
b_iblock_site
WHERE
IBLOCK_ID = B.ID AND (((SITE_ID='1a'))) )) AND ((((BE.ACTIVE='Y')))) AND 
(((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND 
( ( (( EXISTS ( SELECT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
BSE.IBLOCK_ELEMENT_ID = BE.ID AND ((BS.CODE IN ('form_71649'))) ))) ) OR ( ( (( EXISTS ( SELECT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
BSE.IBLOCK_ELEMENT_ID = BE.ID AND ((BS.CODE IN ('common_news'))) ))) ) ) ) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)))
ORDER BY
BE.ACTIVE_FROM desc


очень не нравится INNER JOIN b_iblock_element_prop_s15 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID
Выдает что тип All и в сортировке при этом Using temporary; Using filesort

Если в этом же запросе убрать две отмеченные строчки (фактически, эту связку), то все сразу становится очень хорошо и быстро.
Проверил этот план запроса на почти пустой битрисовой базе. Исходный план нормальный т.е. один и тот же запрос на примерно одинаковых базах выдает разные планы.
FPS0.IBLOCK_ELEMENT_ID и BE.ID - первичные ключи. Что не нравится в этой связке не совсем понятно.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343544
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упростил до предела.

Код: sql
1.
2.
3.
4.
explain 
select b_iblock_element.*, b_iblock_element_prop_s15.*
from b_iblock_element
INNER JOIN b_iblock_element_prop_s15 ON b_iblock_element_prop_s15.IBLOCK_ELEMENT_ID = b_iblock_element.ID




b_iblock_element_prop_s15.IBLOCK_ELEMENT_ID - первичный ключ
b_iblock_element.ID - первичный ключ

План говорит, что type='ALL'

All – Для нахождения соответствующих строк используются сканирование всей таблицы. Это наихудший тип соединения и обычно указывает на отсутствие подходящих индексов в таблице.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343563
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizanmiksoftПоле BE.DETAIL_TEXT имеет тип longtext.
Насколько я помню, это автоматически приводит к filesort-у. Хотя найти этот момент в доке не получилось.
а как иначе? индекс может быть только префиксным, а сортировка по всему полю. однозначно filesort
вопрос в том, где он происходит: в памяти или на диске?
это можно узнать через show status (sort_merge_passes)Так сортировка не по этому полю.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343576
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и совсем не понимаю

Запрос
Код: sql
1.
2.
3.
4.
explain 
select b_iblock_element_prop_s15.IBLOCK_ELEMENT_ID
from b_iblock_element
INNER JOIN b_iblock_element_prop_s15 ON b_iblock_element_prop_s15.IBLOCK_ELEMENT_ID = b_iblock_element.ID


использует индекс

Запрос
Код: sql
1.
2.
3.
4.
explain 
select b_iblock_element_prop_s15.*
from b_iblock_element
INNER JOIN b_iblock_element_prop_s15 ON b_iblock_element_prop_s15.IBLOCK_ELEMENT_ID = b_iblock_element.ID


не использует индекс.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343585
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGL,

в первом случае нужно прочитать все строки, но только 1 столбец, который индексирован
т.е. можно не трогать сами данные, а читать только индекс
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343601
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizanYurikGL,

в первом случае нужно прочитать все строки, но только 1 столбец, который индексирован
т.е. можно не трогать сами данные, а читать только индекс
Код: sql
1.
2.
3.
4.
explain
select b_iblock_element.*
from b_iblock_element
INNER JOIN b_iblock_element_prop_s15 ON b_iblock_element_prop_s15.IBLOCK_ELEMENT_ID = b_iblock_element.ID


Однако вышеуказанный план замечательно использует индекс.

Есть подозрение, что в b_iblock_element_prop_s15 что-то не так с индексом первичного ключа. Или из-за каких то особенностей данных не хочет использовать индекс.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343620
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftТак сортировка не по этому полю.сорри, проглядел
тогда - это не приводит автоматически к filesort-у
но если выбран filesort, то он будет двухпроходным
MySQL. Оптимизация производительности, 2-е изданиеЭтот алгоритм задействован и тогда, когда хотя бы один из запрошенных столбцов – пусть даже он не встречается в ORDER BY – имеет тип BLOB или TEXT.
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343908
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YurikGLНу и совсем не понимаю



я не думаю, что тебе нужно вообще пытаться тут что-то понять , запрос сложный, структура сложная, вероятность что ты тут что-то поймешь стремится к нулю. ок, даже допустим ты что-то понял, запрос генерируется, и максимум, что ты можешь сделать, это создать индекс, но условия сортировки разные, наверное, и подо всё индекса не создашь, Так что вообще бессмысленно.


тем более, еще раз повторяю, проблема не в сортировке вообще, а в том, что с горя mySQL пытается в разных случаях использовать разные планы, которые тем не менее все плохие.

что запрос иногда работает быстро - ну, иногда угадывает.


да еще, analyse table для всех таблиц сделай на всякий, вдруг не делали...
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343915
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
SELECT BE.DETAIL_TEXT as DETAIL_TEXT, BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.ID as ID,BE.IBLOCK_ID as IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,BE.NAME as NAME,IF(EXTRACT(HOUR_SECOND
FROM
BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as ACTIVE_FROM,DATE_FORMAT(BE.TIMESTAMP_X, '%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,B.LIST_PAGE_URL as LIST_PAGE_URL,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE,BE.PREVIEW_TEXT as PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.PREVIEW_PICTURE as PREVIEW_PICTURE, 
FPS0.*,

L.DIR as LANG_DIR,BE.CODE as CODE,
BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID
FROM
b_iblock B
INNER JOIN b_lang L ON B.LID=L.LID
INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID
INNER JOIN b_iblock_element_prop_s15 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID
WHERE
1=1 AND ( ((((BE.IBLOCK_ID = '15')))) AND (EXISTS ( SELECT IBLOCK_ID
FROM
b_iblock_site
WHERE
IBLOCK_ID = B.ID AND (((SITE_ID='1a'))) )) AND ((((BE.ACTIVE='Y')))) AND (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND ( ( (( EXISTS ( SELECT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
BSE.IBLOCK_ELEMENT_ID = BE.ID AND ((BS.CODE IN ('form_71649'))) ))) ) OR ( ( (( EXISTS ( SELECT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
BSE.IBLOCK_ELEMENT_ID = BE.ID AND ((BS.CODE IN ('common_news'))) ))) ) ) ) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)))
ORDER BY BE.ACTIVE_FROM desc
...
Рейтинг: 0 / 0
Долгая сортировка в запросе.
    #39343918
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivда еще, analyse table для всех таблиц сделай на всякий, вдруг не делали...А еще лучше OPTIMIZE TABLE.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Долгая сортировка в запросе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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