Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Неожиданно стали ОЧЕНЬ долго выполняться запросы / 25 сообщений из 26, страница 1 из 2
11.03.2014, 14:42:19
    #38582981
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
Добрый день уважаемому сообществу.

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

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

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

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

Хватает ли оперативной памяти?
Что показывает top ?
...
Рейтинг: 0 / 0
11.03.2014, 14:53:01
    #38582994
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
top показывает, что сервер использует 100% CPU и 53.3% MEM
...
Рейтинг: 0 / 0
11.03.2014, 14:54:17
    #38582996
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
в /tmp/ вроде бы нет ничего большого....
...
Рейтинг: 0 / 0
11.03.2014, 14:56:14
    #38583000
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
Little Johntop показывает, что сервер использует 100% CPU и 53.3% MEMКакими именно процессами? 100% от одного ядра или от всех ядер? сколько всего ядер?
...
Рейтинг: 0 / 0
11.03.2014, 14:57:11
    #38583001
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
Попутно повспоминайте, может это у вас что-то изменилось? Например, данных стало заметно больше?
...
Рейтинг: 0 / 0
11.03.2014, 14:57:48
    #38583002
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
мало того, в /tmp/ не вижу ни одного файла, созданного пользователем mysql. сейчас, в данный момент, процесслист показывает "sorting result", а в /tmp/ ничего нет, созданного mysql. это, видимо, означает, что весь датасет уместился в оперативке. почему же тогда так долго выполняется?
...
Рейтинг: 0 / 0
11.03.2014, 14:58:45
    #38583005
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
И, если запросы не секретные, покажите здесь хотя бы один.
...
Рейтинг: 0 / 0
11.03.2014, 14:59:45
    #38583007
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
100% - это на процессе mysqld. насчет ядер - извините, не знаю - как посмотреть? я просто выполнил команду top. по поводу данных - нет, никаких изменений - это запросы калькуляции по дням - объем данных в течении дня - тот же.
...
Рейтинг: 0 / 0
11.03.2014, 15:01:52
    #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
11.03.2014, 15:03:50
    #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
11.03.2014, 15:05:55
    #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
11.03.2014, 15:06:29
    #38583018
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
черт, прошу прощения - не смог отформатировать как следует план выполнения
...
Рейтинг: 0 / 0
11.03.2014, 16:21:01
    #38583106
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
А какая версия? В моем древнем 5.161 изредка бывает, что оптимизатор начинает выбирать неправильный индекс. Я бы посмотрела на индексы таблички С из плана выполнения. В самом ленивом случае можно посмотреть план выполнения с другим индексом ( используя force index), и сравнить результаты.
...
Рейтинг: 0 / 0
11.03.2014, 16:23:32
    #38583109
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
Версия MySQL 5.0.26-log. Это стопудово хостер - абсолютно те же запросы на абсолютно тех же наборах данных выполнялись менее 5-ти секунд (граница sloq query log). Сейчас - от 20-ти минут. Вопрос в том, что же они наворотили... Пока не смог найти...
...
Рейтинг: 0 / 0
11.03.2014, 16:30:32
    #38583120
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
А customerdata.cdr_daba не могла резко вырасти? Вложенные запросы на наших версиях работают ооочень медленно.
...
Рейтинг: 0 / 0
11.03.2014, 16:30:37
    #38583121
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
Little JohnЭто стопудово хостерПока не факт.
Мне вот тоже не нравятся индексы у таблицы С.
Покажите DDL этой таблички и всех ее индексов.
...
Рейтинг: 0 / 0
11.03.2014, 16:39:51
    #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
11.03.2014, 16:42:14
    #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
11.03.2014, 16:43:39
    #38583139
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
хммм, только что пришло в голову - может быть, дело в джойне MyISAM и InnoDB?! поэтому медленно?????
...
Рейтинг: 0 / 0
11.03.2014, 16:53:30
    #38583156
Aliced
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
А почему план выполнения показывает 33.674 строк для запроса, если там всего 19.187 строк с фильтром по дате?
...
Рейтинг: 0 / 0
11.03.2014, 17:02:13
    #38583170
Little John
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
хороший вопрос. ответ - не знаю :) впрочем, это эстимейт, насколько знаю.

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

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

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

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

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

Еще раз всем спасибо.
...
Рейтинг: 0 / 0
11.03.2014, 17:34:09
    #38583221
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неожиданно стали ОЧЕНЬ долго выполняться запросы
netwindmiksoftПопутно повспоминайте, может это у вас что-то изменилось? Например, данных стало заметно больше?А нечего тут вспоминать.Little JohnНесколько дней назад таблица была удалена, и создана зановоТаки, оказывается, есть что вспоминать :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Неожиданно стали ОЧЕНЬ долго выполняться запросы / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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