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

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

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

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

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

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

Я так понимаю, запрос одинаковый, но аргументы, допустим, у where в нем разные ? ну так порядок соединения выбирается так же и на основе значения аргументов.
...
Рейтинг: 0 / 0
18.04.2014, 17:57:00
    #38619127
devemfy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
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
18.04.2014, 18:00:42
    #38619131
devemfy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
Проблема что структуру уже изменить проблематично, остаётся 2 варианта: В сторону оптимизации таблиц(индексы и тд) или свой mysql сервер и крутить my.cnf.
Но все же запрос иногда отрабатывает быстро. Я хочу узнать: Почему?
...
Рейтинг: 0 / 0
18.04.2014, 18:02:41
    #38619135
devemfy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
netwindЯ так понимаю, запрос одинаковый, но аргументы, допустим, у where в нем разные ?
Аргументы одни!
...
Рейтинг: 0 / 0
18.04.2014, 18:15:09
    #38619147
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
devemfyБитрикс ничего не советуета вы его спрашивали?
/bitrix/admin/perfmon_index_list.php?lang=ru
Актуально после сбора данных производительности.
...
Рейтинг: 0 / 0
18.04.2014, 18:16:06
    #38619150
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
devemfyНо все же запрос иногда отрабатывает быстро. Я хочу узнать: Почему?Вероятно, кэш запросов.
С опцией SELECT SQL_NO_CACHE тоже иногда бывает быстро?
...
Рейтинг: 0 / 0
18.04.2014, 18:18:06
    #38619151
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
devemfyкрутить my.cnf.Раз уж зашла речь про конфиг, то покажите его в спойлере.
И посмотрите рекомендации битрикса по конфигу /bitrix/admin/perfmon_db_server.php?lang=ru
...
Рейтинг: 0 / 0
18.04.2014, 18:53:56
    #38619172
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
miksoftScareCrowа ничего что в экслейн таблицы разные?Порядок таблиц другой, а вот разных что-то не разгляжу.
в одном случае maindoor_dev, в друго maindoor_main
...
Рейтинг: 0 / 0
18.04.2014, 19:00:14
    #38619181
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
ScareCrowmiksoftпропущено...
Порядок таблиц другой, а вот разных что-то не разгляжу.
в одном случае maindoor_dev, в друго maindoor_mainА, схемы разные, да. Слона-то я и не заметил :)
Т.е. таблицы автоматически тоже все разные.
...
Рейтинг: 0 / 0
21.04.2014, 16:09:59
    #38620619
devemfy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
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
21.04.2014, 16:15:19
    #38620630
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе explain
devemfyПоэтому я и хочу выяснить: Переезжать мне или нет?Ссылку на тариф дайте, плиз.

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

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

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


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