Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > performance web приложения


Автор: bobik02 4.9.2014, 11:47
Надо улучшить response time веб приложения.

php 5.3
mysql 5.5
yii 1.1 framework

С xhprof выяснилось уязвимое место приложения это БД. Проблема в том что БД захлебывается при нагрузке(всякие импорты тяжелые крутятся, высоконагруженый сайт).

Допустим есть некая страница продуктов, при ее загрузки нужно вытянуть кучу данных по продукту в куче нормализированых таблиц с индексами и прочим. 
На php написан для этого класс аля Collection который что бы вытянуть все эти данные создает временую таблицу(в некоторых случаях их может быть несколько).
Например простые вещи аля CREATE TEMPORARY TABLE, DROP TEMPORARY TABLE, TRUNCATE могут занимать 100-200-300 ms. А еще куча всяких запросов, апдейтов, инсертов в эти временые таблицы.

Как с этим бороться ? В какую строну копать ? Что можно улучшить ?
В качестве кеша используется redis.

Автор: s0lman 4.9.2014, 12:19
Как вариант - зеркало базы на другом сервере - должно быстрее отрабатывать

Автор: bobik02 4.9.2014, 12:32
Какие еще могут быть варианты ? smile

Автор: ksnk 4.9.2014, 14:26
Цитата(bobik02 @  4.9.2014,  11:47 Найти цитируемый пост)
На php написан для этого класс аля Collection который что бы вытянуть все эти данные создает временую таблицу(в некоторых случаях их может быть несколько).
Например простые вещи аля CREATE TEMPORARY TABLE, DROP TEMPORARY TABLE, TRUNCATE могут занимать 100-200-300 ms.
...

Это для каждой демонстрации страницы? Или разовая акция для кэширования измененных данных?

Автор: Fortop 7.9.2014, 19:17
Информации ноль. Какие могут быть советы?
  1. Сколько запросов при генерации страницы? 
  2. Что и куда пишут скрипты импорта? 
  3. Насколько актуальная требуется информация? Возможно 10-15 минут давности она вполне подходит. 
  4. Что и как кешируется?

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/performance-web-prilozheniya-id54082743ae20152d2f8b4567#findElement_E7045_540c851eae2015801d097e22_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)