powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Неожиданно стали ОЧЕНЬ долго выполняться запросы
26 сообщений из 26, показаны все 2 страниц
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38582981
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемому сообществу.

Пару дней назад неожиданно стали очень долго выполняться запросы, использующие ORDER BY и GROUP BY.

Конфигурация сервера не менялась, запросы не менялись. Но сейчас вместо 2-4 секунд они выполняются десятки минут, что совершенно неприемлемо. Запрос висит в процесслисте со статусом "sorting result", и все.

Место на диске есть, памяти для сорт буферов выделено достаточно, переменная Sort_merge_passes = 3. Скорее всего, что-то сделал хостер, но мне это нужно доказать - они на все вопросы твердят "мы ничего не меняли"

Посоветуйте плиз, в какую сторону копать - а то у меня идеи уже кончились :(
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38582986
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите во временном каталоге ( например, /tmp), не образуются ли там файлы большого размера?

Хватает ли оперативной памяти?
Что показывает top ?
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38582994
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
top показывает, что сервер использует 100% CPU и 53.3% MEM
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38582996
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в /tmp/ вроде бы нет ничего большого....
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583000
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Little Johntop показывает, что сервер использует 100% CPU и 53.3% MEMКакими именно процессами? 100% от одного ядра или от всех ядер? сколько всего ядер?
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583001
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попутно повспоминайте, может это у вас что-то изменилось? Например, данных стало заметно больше?
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583002
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мало того, в /tmp/ не вижу ни одного файла, созданного пользователем mysql. сейчас, в данный момент, процесслист показывает "sorting result", а в /tmp/ ничего нет, созданного mysql. это, видимо, означает, что весь датасет уместился в оперативке. почему же тогда так долго выполняется?
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583005
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, если запросы не секретные, покажите здесь хотя бы один.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583007
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
100% - это на процессе mysqld. насчет ядер - извините, не знаю - как посмотреть? я просто выполнил команду top. по поводу данных - нет, никаких изменений - это запросы калькуляции по дням - объем данных в течении дня - тот же.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583009
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да нет, запросы не секретные, конечно. я приведу их ниже - надеюсь, это поможет. хотя, повторюсь, они прекрасно выполнялись пару дней назад.

Код: plsql
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.
SELECT
	ROUND(TIME_TO_SEC(TIMEDIFF((SELECT
			c.time + INTERVAL c.duration SECOND
		FROM customerdata.cdr_daba c
		WHERE c.type = 'N'
		AND c.time + INTERVAL c.duration SECOND BETWEEN (r.time + INTERVAL s.conversationduration - 100 SECOND) AND (r.time + INTERVAL s.conversationduration + 100 SECOND)
		AND c.date = '2014-03-08'
		AND c.anum = r.originatingAddr
		ORDER BY time
		LIMIT 1), r.time + INTERVAL s.conversationduration SECOND)) / 10) * 10 AS value
FROM	tfsurvey.sessions s
			INNER JOIN tfsurvey.entrypoints ep
				ON s.entrypointid = ep.id,
		tfsurvey.routeinfo r,
		tfsurvey.hangupcodes hc
WHERE s.hangupcode = hc.code
AND hc.pairable = 1
AND r.sessionid = s.id
AND r.event = 3
AND r.ingoing = 0
AND s.date = '2014-03-08'
AND s.serverId = 32
AND ep.serverId = 32
AND ep.pairToDefaultOUnit = 0
AND s.anum > 0
AND s.surveyid <> 795
AND s.surveyid <> 796
GROUP BY value
HAVING value IS NOT NULL
ORDER BY COUNT(*) DESC
LIMIT 1;
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583012
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
план выполнения:

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1PRIMARYsrefPRIMARYIndex_5cnum_serveridtime_serveridentrypointsessions_hangupcodes_fkeysessions_date_surveyid_keysessions_date_serverid_keysessions_date_serverid_key9constconst53Using where; Using temporary; Using filesort1PRIMARYhceq_refPRIMARYPRIMARY4tfsurvey.s.hangupcode1Using where1PRIMARYepeq_refPRIMARYFK_entrypoints_serverPRIMARY4tfsurvey.s.entrypointid1Using where1PRIMARYrrefPRIMARYIndex_2Index_28tfsurvey.s.idconst1Using where2DEPENDENT SUBQUERYcrangecdr_daba_anum_etc_keycdr_daba_date_anum_type_keycdr_daba_date_anum_type_key333674Using where; Using filesort
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583017
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gfhljy? nen ajhvfnbhjdfybt cnhfyyjt/ Gjghfdbk^
idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1PRIMARYsrefPRIMARYIndex_5 cnum_serverid time_serverid entrypoint sessions_hangupcodes_fkey sessions_date_surveyid_key sessions_date_serverid_keysessions_date_serverid_key9constconst53Using where; Using temporary; Using filesort1PRIMARYhceq_refPRIMARYPRIMARY4tfsurvey.s.hangupcode1Using where1PRIMARYepeq_refPRIMARY FK_entrypoints_serverPRIMARY4tfsurvey.s.entrypointid1Using where1PRIMARYrrefPRIMARY Index_2Index_28tfsurvey.s.idconst1Using where2DEPENDENT SUBQUERYcrangecdr_daba_anum_etc_key cdr_daba_date_anum_type_keycdr_daba_date_anum_type_key333674Using where; Using filesort
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583018
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
черт, прошу прощения - не смог отформатировать как следует план выполнения
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583106
Aliced
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какая версия? В моем древнем 5.161 изредка бывает, что оптимизатор начинает выбирать неправильный индекс. Я бы посмотрела на индексы таблички С из плана выполнения. В самом ленивом случае можно посмотреть план выполнения с другим индексом ( используя force index), и сравнить результаты.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583109
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия MySQL 5.0.26-log. Это стопудово хостер - абсолютно те же запросы на абсолютно тех же наборах данных выполнялись менее 5-ти секунд (граница sloq query log). Сейчас - от 20-ти минут. Вопрос в том, что же они наворотили... Пока не смог найти...
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583120
Aliced
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А customerdata.cdr_daba не могла резко вырасти? Вложенные запросы на наших версиях работают ооочень медленно.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583121
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Little JohnЭто стопудово хостерПока не факт.
Мне вот тоже не нравятся индексы у таблицы С.
Покажите DDL этой таблички и всех ее индексов.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583134
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
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.
CREATE TABLE `cdr_daba` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `type` varchar(4) NOT NULL default '',
  `number` int(10) unsigned NOT NULL default '0',
  `customer` int(10) unsigned NOT NULL default '0',
  `origin` varchar(16) NOT NULL default '',
  `termination` varchar(16) NOT NULL default '',
  `auxid` varchar(45) NOT NULL default '',
  `time` datetime NOT NULL default '0000-00-00 00:00:00',
  `duration` int(10) unsigned NOT NULL default '0' COMMENT 'in seconds',
  `digits` varchar(45) NOT NULL default '',
  `anum` bigint(20) unsigned NOT NULL default '0',
  `origindata1` varchar(16) NOT NULL default '0',
  `origindata2` varchar(16) NOT NULL default '0',
  `terminationdata1` varchar(16) NOT NULL default '0',
  `terminationdata2` varchar(16) NOT NULL default '0',
  `siteid` int(10) unsigned NOT NULL,
  `next` int(10) unsigned NOT NULL default '0',
  `sessionid` int(10) unsigned NOT NULL default '0',
  `date` date NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `cdr_daba_anum_etc_key` (`anum`,`origindata1`,`origindata2`,`time`),
  KEY `cdr_daba_terminationdata1_key` (`terminationdata1`),
  KEY `cdr_daba_date_anum_type_key` (`date`,`anum`,`type`)
) ENGINE=MyISAM AUTO_INCREMENT=4687503 DEFAULT CHARSET=utf8
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583137
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
данные таблицы по датам:

datecount(*)2014-02-0612014-02-102254342014-02-111946362014-02-122022152014-02-132057452014-02-141798902014-02-15204712014-02-16153522014-02-172283422014-02-182119362014-02-192020122014-02-202129362014-02-211869942014-02-22182642014-02-23153192014-02-242212892014-02-252197092014-02-262095382014-02-272201562014-02-282373852014-03-01270122014-03-02201982014-03-032598572014-03-042333372014-03-052115862014-03-062319252014-03-071974702014-03-08191872014-03-09167592014-03-102422132014-03-11334

как видите, объем данных не менялся. неделю назад запросы выполнялись быстрее 5-ти секунд
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583139
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хммм, только что пришло в голову - может быть, дело в джойне MyISAM и InnoDB?! поэтому медленно?????
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583156
Aliced
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему план выполнения показывает 33.674 строк для запроса, если там всего 19.187 строк с фильтром по дате?
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583170
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хороший вопрос. ответ - не знаю :) впрочем, это эстимейт, насколько знаю.

The rows column indicates the number of rows MySQL believes it must examine to execute the query.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583198
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftПопутно повспоминайте, может это у вас что-то изменилось? Например, данных стало заметно больше?
А нечего тут вспоминать.
Изменяется время. Накапливаются данные. А значит или изменяются планы или наступает ситуация, когда буферов не хватает.
Или происходят другие похожие лавинообразные процессы.

Анализировать надо как обычно.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583219
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фух.

Уважаемое сообщество, всем большое спасибо за попытки помочь. Как оказалось, дело действительно в разных энжайнах. Несколько дней назад таблица была удалена, и создана заново. Перед удалением она была InnoDB, после создания заново стала MyISAM - энжайн при создании напрямую не указывали. Так как другие таблицы в запросе - InnoDB, то джойны выполнялись офигенно медленно.

Сейчас я сконвертил таблицу в InnoDB, и запрос стал выполняться менее чем за секунду, слава богу. Вот такие вот дела.

Я знал, что джойн InnoDB - MyISAM медленный, но не знал что НАСТОЛЬКО медленный.

Еще раз всем спасибо.
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583221
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindmiksoftПопутно повспоминайте, может это у вас что-то изменилось? Например, данных стало заметно больше?А нечего тут вспоминать.Little JohnНесколько дней назад таблица была удалена, и создана зановоТаки, оказывается, есть что вспоминать :)
...
Рейтинг: 0 / 0
Неожиданно стали ОЧЕНЬ долго выполняться запросы
    #38583235
Little John
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftТаки, оказывается, есть что вспоминать :)

Это было выявлено после допроса 3-й степени :)
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Неожиданно стали ОЧЕНЬ долго выполняться запросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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