powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по работе explain
19 сообщений из 19, страница 1 из 1
Вопрос по работе explain
    #38618758
devemfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак не могу нагуглить простую инфу: Чем определяется порядок строк в выводе explain? У меня на одной и той же базе в разное время разная скорость исполнения одного и того же запроса. (45 сек против 1). Посмотрел explain - вывод отличается.

Один (45 сек)
Второй (1 сек)
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38618768
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfy,

Разная скорость, наверное, потому, что данные кэшируются. Возможно, кэшируются подзапросы.
попробуйте делать запрос/подзапросы так
SELECT SQL_NO_CACHE ....
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38618776
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfy,

Встроенная в Битрикс диагностика не советует никакие индексы досоздать?

И покажите сам запрос.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38618848
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ничего что в экслейн таблицы разные?
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38618856
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowа ничего что в экслейн таблицы разные?Порядок таблиц другой, а вот разных что-то не разгляжу.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619097
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfyНикак не могу нагуглить простую инфу: Чем определяется порядок строк в выводе explain? У меня на одной и той же базе в разное время разная скорость исполнения одного и того же запроса. (45 сек против 1). Посмотрел explain - вывод отличается.

Один (45 сек)
Второй (1 сек)
Да всем чем угодно.
Успех реляционных субд был вызван том числе и тем что они избавляли программиста от определения порядка наилучшего порядка соединения. То есть, там всего столько понаписано, что в одном сообщении не изложить.

Я так понимаю, запрос одинаковый, но аргументы, допустим, у where в нем разные ? ну так порядок соединения выбирается так же и на основе значения аргументов.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619127
devemfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL_NO_CACHE не даёт никакого эффекта. Битрикс ничего не советует, максимум - optimaze table или настройки сервера(tmp_table_size, max_heap_table_size и т. д.). Интересно, что эксплейны разные...

Сам запрос(Кат к сожалению не нашёл):

Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
SELECT 
	BE.ID as ID,
	B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,
	BE.PREVIEW_PICTURE as PREVIEW_PICTURE,

	##################################################

	FPS0.PROPERTY_206 as 			PROPERTY_PREVIEW_TEXT_RU_VALUE,
	FPS0.DESCRIPTION_206 as 		PROPERTY_PREVIEW_TEXT_RU_DESCRIPTION,
	concat(BE.ID , ':' , 206) as 	PROPERTY_PREVIEW_TEXT_RU_VALUE_ID,

	##################################################

	FPEN0.VALUE as PROPERTY_ADVERTISED_VALUE,
	FPEN0.ID as PROPERTY_ADVERTISED_ENUM_ID,
	concat(BE.ID , ':' , 37) as PROPERTY_ADVERTISED_VALUE_ID,
	
	##################################################

	FPS0.PROPERTY_194 as PROPERTY_PRICE_VALUE,
	FPS0.DESCRIPTION_194 as PROPERTY_PRICE_DESCRIPTION,
	concat(BE.ID , ':' , 194) as PROPERTY_PRICE_VALUE_ID,
	
	##################################################

	FPS0.PROPERTY_422 as PROPERTY_PRICE_RENT_VALUE,
	FPS0.DESCRIPTION_422 as PROPERTY_PRICE_RENT_DESCRIPTION,
	concat(BE.ID , ':' , 422) as PROPERTY_PRICE_RENT_VALUE_ID,
	
	##################################################

	FPS0.PROPERTY_217 as PROPERTY_COMPANY_VALUE,
	FPS0.DESCRIPTION_217 as PROPERTY_COMPANY_DESCRIPTION,
	concat(BE.ID , ':' , 217) as PROPERTY_COMPANY_VALUE_ID,
	
	##################################################

	FPEN1.VALUE as PROPERTY_PRICE_ON_REQUEST_VALUE,
	FPEN1.ID as PROPERTY_PRICE_ON_REQUEST_ENUM_ID,
	concat(BE.ID , ':' , 36) as PROPERTY_PRICE_ON_REQUEST_VALUE_ID,
	
	##################################################
	
	FPEN2.VALUE as PROPERTY_CURRENCY_VALUE,
	FPEN2.ID as PROPERTY_CURRENCY_ENUM_ID,
	concat(BE.ID , ':' , 34) as PROPERTY_CURRENCY_VALUE_ID,
	

FPEN3.VALUE as PROPERTY_CURRENCY_RENT_VALUE,
	FPEN3.ID as PROPERTY_CURRENCY_RENT_ENUM_ID,
	concat(BE.ID , ':' , 423) as PROPERTY_CURRENCY_RENT_VALUE_ID,
	

FPS0.PROPERTY_201 as PROPERTY_NAME_RU_VALUE,
	FPS0.DESCRIPTION_201 as PROPERTY_NAME_RU_DESCRIPTION,
	concat(BE.ID , ':' , 201) as PROPERTY_NAME_RU_VALUE_ID,
	

JFPS0.PROPERTY_131 as PROPERTY_COUNTRY_PROPERTY_NAME_RU_VALUE,
	JFPS0.DESCRIPTION_131 as PROPERTY_COUNTRY_PROPERTY_NAME_RU_DESCRIPTION,
	concat(BE0.ID , ':' , 131) as PROPERTY_NAME_RU_COUNTRY_VALUE_ID,
	

JFPS1.PROPERTY_135 as PROPERTY_REGION_PROPERTY_NAME_RU_VALUE,
	JFPS1.DESCRIPTION_135 as PROPERTY_REGION_PROPERTY_NAME_RU_DESCRIPTION,
	concat(BE1.ID , ':' , 135) as PROPERTY_NAME_RU_REGION_VALUE_ID,
	

JFPS2.PROPERTY_129 as PROPERTY_CITY_PROPERTY_NAME_RU_VALUE,
	JFPS2.DESCRIPTION_129 as PROPERTY_CITY_PROPERTY_NAME_RU_DESCRIPTION,
	concat(BE2.ID , ':' , 129) as PROPERTY_NAME_RU_CITY_VALUE_ID,
	

	L.DIR as LANG_DIR,BE.SORT as SORT,
	DATE_FORMAT(BE.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as DATE_CREATE,
	BE.CODE as CODE,
	BE.XML_ID as EXTERNAL_ID,
	BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,
	B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,
	BE.IBLOCK_ID as IBLOCK_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_s20 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID
LEFT JOIN b_iblock_property_enum FPEN0 ON FPEN0.PROPERTY_ID = 37 AND FPS0.PROPERTY_37 = FPEN0.ID
LEFT JOIN b_iblock_property_enum FPEN1 ON FPEN1.PROPERTY_ID = 36 AND FPS0.PROPERTY_36 = FPEN1.ID
LEFT JOIN b_iblock_property_enum FPEN2 ON FPEN2.PROPERTY_ID = 34 AND FPS0.PROPERTY_34 = FPEN2.ID
LEFT JOIN b_iblock_property_enum FPEN3 ON FPEN3.PROPERTY_ID = 423 AND FPS0.PROPERTY_423 = FPEN3.ID
LEFT JOIN b_iblock_element BE0 ON BE0.ID = FPS0.PROPERTY_214 AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))
LEFT JOIN b_iblock_element BE1 ON BE1.ID = FPS0.PROPERTY_215 AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))
LEFT JOIN b_iblock_element BE2 ON BE2.ID = FPS0.PROPERTY_216 AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))
LEFT JOIN b_iblock_element_prop_s4 JFPS0 ON JFPS0.IBLOCK_ELEMENT_ID = BE0.ID
LEFT JOIN b_iblock_element_prop_s5 JFPS1 ON JFPS1.IBLOCK_ELEMENT_ID = BE1.ID
LEFT JOIN b_iblock_element_prop_s6 JFPS2 ON JFPS2.IBLOCK_ELEMENT_ID = BE2.ID
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.CODE IN ('sale'))) 
) BES ON BES.IBLOCK_ELEMENT_ID = BE.ID

WHERE
1=1 AND ( 
		((((BE.IBLOCK_ID = '20')))) 
		AND ((((BE.ACTIVE='Y')))) 
		AND ( 
				( 
					((((FPS0.PROPERTY_194 >= '0')))) 
					AND ((((FPEN2.VALUE LIKE '€')))) 
				) 
			OR ( 
				((((FPS0.PROPERTY_194 >= '0')))) 
				AND ((((FPEN2.VALUE LIKE '$')))) 
				) 
			OR ( 
				((((FPS0.PROPERTY_194 >= '0'))))
				AND ((((FPEN2.VALUE LIKE '₷'))))
				)
			OR ( 
				(((FPS0.PROPERTY_194 IS NULL))) 
				) 
			) 
		) 
		AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)))
ORDER BY
BE.SORT desc ,BE.DATE_CREATE desc
LIMIT 0, 24;
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619131
devemfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема что структуру уже изменить проблематично, остаётся 2 варианта: В сторону оптимизации таблиц(индексы и тд) или свой mysql сервер и крутить my.cnf.
Но все же запрос иногда отрабатывает быстро. Я хочу узнать: Почему?
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619135
devemfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwindЯ так понимаю, запрос одинаковый, но аргументы, допустим, у where в нем разные ?
Аргументы одни!
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619147
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfyБитрикс ничего не советуета вы его спрашивали?
/bitrix/admin/perfmon_index_list.php?lang=ru
Актуально после сбора данных производительности.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619150
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfyНо все же запрос иногда отрабатывает быстро. Я хочу узнать: Почему?Вероятно, кэш запросов.
С опцией SELECT SQL_NO_CACHE тоже иногда бывает быстро?
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619151
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfyкрутить my.cnf.Раз уж зашла речь про конфиг, то покажите его в спойлере.
И посмотрите рекомендации битрикса по конфигу /bitrix/admin/perfmon_db_server.php?lang=ru
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619172
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftScareCrowа ничего что в экслейн таблицы разные?Порядок таблиц другой, а вот разных что-то не разгляжу.
в одном случае maindoor_dev, в друго maindoor_main
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38619181
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowmiksoftпропущено...
Порядок таблиц другой, а вот разных что-то не разгляжу.
в одном случае maindoor_dev, в друго maindoor_mainА, схемы разные, да. Слона-то я и не заметил :)
Т.е. таблицы автоматически тоже все разные.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38620619
devemfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftа вы его спрашивали?
/bitrix/admin/perfmon_index_list.php?lang=ru
Нет. Спрашивал /bitrix/admin/perfmon_db_server.php?lang=ru. Сейчас спрошу.

miksoftС опцией SELECT SQL_NO_CACHE тоже иногда бывает быстро?
devemfySQL_NO_CACHE не даёт никакого эффекта
То есть если я подставляю к запросу который быстро выполняется SQL_NO_CACHE, то выполняется он так же быстро...

miksoftРаз уж зашла речь про конфиг, то покажите его в спойлере.
У меня нет доступа к конфигу - база на хостинге. Естественно рекомендации по my.cnf я выполнить не могу как бы мне этого не хотелось.
Поэтому я и хочу выяснить: Переезжать мне или нет?

ScareCrowв одном случае maindoor_dev, в друго maindoor_main
Да, это результат экспериментов. maindoor_dev - это копия maindoor_main с разницей в 1 день. То есть содержимое незначительно различается, но структура одна и та же. В данный момент запрос на maindoor_main выполняется быстро, а на maindoor_dev - медленно. Пройдет пара часов и будет наоборот. Затем на обоих будет медленно. То есть это зависит от внутренних механизмов работы БД.

Кстати show profile for query 1 говорит что время уходит на запись временной таблицы на диск. Как только эта операция не выполняется, то выполнение запроса становится быстрым.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38620630
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
devemfyПоэтому я и хочу выяснить: Переезжать мне или нет?Ссылку на тариф дайте, плиз.

Оптимизацию таблиц давно последний раз делали?
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38620662
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть это зависит от внутренних механизмов работы БД.
от бардака оно зависит.
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38620794
devemfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftСсылку на тариф дайте, плиз
http://timeweb.com/ru/services/hosting/]Eterno[B]

Оптимизацию делал вчера.

ScareCrowот бардака оно зависит.
В смысле?
...
Рейтинг: 0 / 0
Вопрос по работе explain
    #38620816
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа, это результат экспериментов. maindoor_dev - это копия maindoor_main с разницей в 1 день . То есть содержимое незначительно различается, но структура одна и та же. В данный момент запрос на maindoor_main выполняется быстро, а на maindoor_dev - медленно. Пройдет пара часов и будет наоборот .
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по работе explain
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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