Проблемы с MySQL

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Проблемы с MySQL

Непрочитанное сообщение barut » 2010-08-25 11:00:36

В общем беда какая-то и не знаю откуда у нее ноги растут.
В общем, суть в следующем:
При запросе страницы апачем, идет обращение к MySQL. Переодически (понять не могу в какой момент) сервер не может отдать содержимое ответа. Делаю:

Код: Выделить всё

SHOW PROCESSLIST
И в столбце Status идет сообщение Sending Data для всех потоков. Все! На этом треды висят. Пока вручную не покиляешь их, они так и будут висеть.
Если я правильно понимаю, то MySQL начинает ждать, пока Апач совместно с PHP заберут у него данные.

Да еще такой момент. Когда убиваешь процесс апача, то поток так и продолжает висеть. А вот если убить поток в MySQL, тогда процесс апача вешается наглухо, и через топ у него постоянно висит статус RUN

Подскажите, кто знает как диагностировать траблу. Или может это вообще беда на MySQL, а связки Apache+PHP

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Re: Проблемы с MySQL

Непрочитанное сообщение barut » 2010-08-25 11:08:05

Да. Чуть не забыл. Стоит Mysql 5.1.48, Apache/2.2.10(mpm-itk) и PHP-5.2.13.
PHP скрипты подключаются к MySQL через unix-сокет

masterito
рядовой
Сообщения: 42
Зарегистрирован: 2010-08-19 16:24:17
Откуда: Санкт-Петербург

Re: Проблемы с MySQL

Непрочитанное сообщение masterito » 2010-08-25 11:52:13

show full processlist;
А потом для проблемного запроса делаете explain - судя по всему запрос кривой у Вас, слишком много информации из базы выбирает.

barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Re: Проблемы с MySQL

Непрочитанное сообщение barut » 2010-08-25 13:58:53

Я же пишу, что проблема носит переодический характер.
Т.е. тот же самый запрос шустро отрабатывает.
Другое дело, что в определенный момент, когда идут одновременные запросы к сайту, то MySQL просто ложится, а у тредов статус, что они все дружно посылают данные.

masterito
рядовой
Сообщения: 42
Зарегистрирован: 2010-08-19 16:24:17
Откуда: Санкт-Петербург

Re: Проблемы с MySQL

Непрочитанное сообщение masterito » 2010-08-25 14:07:23

Сомневаюсь, что если запрос выбирает 50 строк он будет долго данные посылать, а вот если идет выборка 10 тысяч строк, да таких выборок 10-20,
нагрузку это может создать немаленькую. Приведите вывод explain этого запроса.

barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Re: Проблемы с MySQL

Непрочитанное сообщение barut » 2010-08-25 16:22:34

Код: Выделить всё

id 	select_type 	table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra 
1	SIMPLE	n	ref	PRIMARY,user_f_2	user_f_2	2	const	17432	Using where; Using filesort
1	SIMPLE	v	eq_ref	vr_el_id	vr_el_id	771	const,inform_c.n.n_id	1	 
1	SIMPLE	l	ref	link_el_id,link_cat_id	link_el_id	4	inform_c.n.n_id	1	Using where
Это вывод EXPLAIN

Правда не совсем понимаю чего с ним делать. Базы и запросы клиентские. Говорят раньше все было ништяк. А теперь такая вот загогулина.
Может где-то надо в MySQL что-нибудь подкрутить?

masterito
рядовой
Сообщения: 42
Зарегистрирован: 2010-08-19 16:24:17
Откуда: Санкт-Петербург

Re: Проблемы с MySQL

Непрочитанное сообщение masterito » 2010-08-25 17:06:04

Может и надо - но запрос кривой.
Берем в руки калькулятор(поскольку выборка идет из 3-х таблиц, то количество столбцов нужно перемножать):
17432*771*4
53 760 288

53 милиона строк - неслабая такая выборка... Особенно если их несколько будет одновременно.
Раньше возможно нагрузка была не такая высокая, а сейчас она возросла и количество запросов увеличилось.
Можете конечно дать MySQL больше ресурсов, но с такими выборками вам их никогда не хватит - нужно запрос оптимизировать.

barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Re: Проблемы с MySQL

Непрочитанное сообщение barut » 2010-08-25 17:53:03

Плачевно :cry:
Будем думать, будем курить.
Т.е. получается сколько ресурсов не выделяй их все равно не хватит :( А что можно подкрутить чтобы хотя бы затупов не было?

masterito
рядовой
Сообщения: 42
Зарегистрирован: 2010-08-19 16:24:17
Откуда: Санкт-Петербург

Re: Проблемы с MySQL

Непрочитанное сообщение masterito » 2010-08-25 17:57:58

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

nixnix
рядовой
Сообщения: 45
Зарегистрирован: 2010-09-26 9:16:21

Re: Проблемы с MySQL

Непрочитанное сообщение nixnix » 2010-09-29 13:48:23

вопрос от начинающего, подскажите.

ввожу команду mysql -u posifix -p
появляется пустая строка с вот таким началом mysql>
далее ввожу show tables
в ответ получаю >
и всё пусто.
Базы с таблицами существуют, через phpmyadmin захожу, всё на месте.
Но почему пусто, не пойму.

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

Re: Проблемы с MySQL

Непрочитанное сообщение FiL » 2010-09-29 21:46:20

ставьте ; в конце запроса.

nixnix
рядовой
Сообщения: 45
Зарегистрирован: 2010-09-26 9:16:21

Re: Проблемы с MySQL

Непрочитанное сообщение nixnix » 2010-09-30 10:36:00

верно, спасибо помогло :drinks: