С нами с 09.08.06
Сообщения: 663
Рейтинг: 126
|
Добавлено: 04/11/06 в 00:34 |
Возникла такая проблема. Скрипт index.php генерится примерно раз 20 в секунду, при этом каждый раз производится по 3-5 обращений SELECT к mysql, а также 2-5 INSERT, UPDATE. Итого имеем до 100 всреднем обращений к БД за секунду. Казалось бы многие форумы работают в таком режиме, но у меня при определенной нагрузке > 20 хитов/сек начинаются протормозы в генерации index.php, как оказалось из за того, что работа с БД не поспевает за новыми хитами на сайте, образуется очередь, порой такая, что по 30 сек приходится пользователям ожидать выдачи странички. Все индексы расставил и все запросы свел к минимуму, ввел дополнительные таблички кэширования вместе с полями, все равно улучшения заметны, но рано или позно начинает количество запросов опережать производительность. Обойтись без такого количетсва запросов невозможно, так как данные обновляются динамически и все что можно было откешировать, откешировано, таблицы имеют по несколько милионов записей.
Может проблема в MySQL? Если кто с таким сталкивался, что предпринимали?
|
|
|
|
БешаныйСуслег
С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338
|
Добавлено: 04/11/06 в 02:22 |
1. Внимательно изучить my.cnf и те .cnf, что идут в комплекте которые для large.
2. Где возможно использовать отложенные вставки
3. Сделать MySQL slow log и для всех запросов сделать Explain и максимально оптимизировать
P.S. У меня на одном MySQL приблизительно 200 запросов в секунду и ничего -- жив курилка.
|
|
|
|
С нами с 28.02.03
Сообщения: 8546
Рейтинг: 1609
|
Добавлено: 04/11/06 в 10:15 |
самая класическая ошибка изакоторой токое бывает это то что после выполненя кода скрипт незакрывает конект к базе и этото конект висит
по ка потаймаут неовалица а когда токи канектов много наченаюца проблемы
+ прсмотри скока весит таблица с катрой работаеш прибольшом размери и частых обрашениях тоже бывают проблемы
|
|
Сдам место в подписи. Предложения в личку.
|
3
|
|
|
С нами с 18.01.06
Сообщения: 322
Рейтинг: 487
|
Добавлено: 04/11/06 в 12:28 |
Проблема скорее всего в запросах на выборку, тут и надо оптимизировать, проверь индексы, может не хватает или лишние.
Сделай FLUSH и OPTIMIZE
Недавно лечил этим базу
+1 за то, что надо соединение закрывать после отработки скрипта
|
|
|
|
С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 04/11/06 в 19:37 |
В доках сказано что конект сам отрубаеться ваще то......
Я вот не пойму нах так извращаться да еще и при том что там миллионы записей ;) сам подумай реально ли нужно так часто обновлять ?
Делай временую таблицу или уходи от динамики в крон и лепи 1000 заранее подготовленых вариантов, инсерт/апдейт в файл потом по крону и все будет работать.......
Еще вариант переноси на др. сервер мускуль ......
|
|
|
|
С нами с 09.08.06
Сообщения: 663
Рейтинг: 126
|
Добавлено: 04/11/06 в 20:14 |
Всем спасибо и рейтинг. Провтывав несколько часов в show processlist пришел к выводу, что индексированные строки даже небольшой длины очень тормознутые.
|
|
|
|
С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962
|
Добавлено: 04/11/06 в 20:49 |
П.Дюбуа по вопросам оптимизации говорил что большой индекс убивает все его приемущества ;(
Личный совет к стате если уж надо ускорить процессы разбей их на большое кол-во мелких таблиц ......
|
|
|
|
С нами с 09.08.06
Сообщения: 663
Рейтинг: 126
|
Добавлено: 04/11/06 в 21:11 |
Если я не ошибаюсь DATETIME, DATE и TIME хранится в строковом виде
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |