Уменьшить нагрузку на mysql

 
Посетитель
no avatar
Сообщений: 20
В избежании нагрузки на mySQL базу, необходимо выполнить оптимизацию запросов к базе.
Разовая работа, предлагайте сроки и стоимость.
С Уважением Дмитрий!
Редактировалось: 1 раз (Последний: 21 марта 2012 в 01:06)
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатий
Сообщений: 2470
blandind:
В избежании нагрузки на mySQL базу, необходимо выполнить оптимизацию запросов к базе.
Разовая работа, предлагайте сроки и стоимость.
С Уважением Дмитрий!

Почитали бы пару топиков ранее добавленных
http://instantcms.ru/forum/thread10135-3.html#80561
Раньше РАЙ был везде - РАЙсовет, РАЙком, РАЙсобес...., а сейчас везде АДминистрации!
Не надо давать людям советы. Каждый должен лохануться самостоятельно!
Любишь в продакшн, люби и баги починить!
Реклама
cms
Посетитель
no avatar
Сообщений: 20
eoleg, топикстартер в своём посте предлагает сокращение запросов а не оптимизацию, это разные вещи.
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатий
Сообщений: 2470
но нагрузка же на базу снизится, smile
или вы туда писать будете больше чем читать?
Раньше РАЙ был везде - РАЙсовет, РАЙком, РАЙсобес...., а сейчас везде АДминистрации!
Не надо давать людям советы. Каждый должен лохануться самостоятельно!
Любишь в продакшн, люби и баги починить!
Посетитель
no avatar
Сообщений: 20
Мне необходимо сделать ровно то, что мне необходимо, я вижу по мониторингу, то что нагрузка со стороны mySQL,
кеширование тоже необходимо но прежде важна оптимизация.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
blandind, уменьшение запросов к базе - это и есть их оптимизация. Меньше запросов - меньше нагрузка. Если же вы не хотите уменьшать количество запросов (сколько их у вас - 80-140 на страницу?), то как ни оптимизируй - при большой посещаемости база будет рушиться. Да и не все запросы можно оптимизировать, большинство и так уже предельно ускорены.

Проблема больше не в плохих запросах, а в их огромном количестве.
Редактировалось: 1 раз (Последний: 21 марта 2012 в 01:37)
оптимизирую помаленьку
Посетитель
no avatar
Сообщений: 20
Я просто как человек знающий, понимаю разницу между уменьшением запросов и их оптимизации, в том числе добавление необходимых индексов и т.п. Просто у Вас достаточно грубо написано, уменьшение, вы хотите сказать, что в InstantCMS - если пользователь - гость,
то посылаются ненужные запросы? Если да, то приведите хотябы пару, чтобы я понимал.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
blandind, могу предложить другой вариант. Вы как человек знающий может быть быстрее сами поймете - включите на сайте режим отладки. Но перед этим в index.php поставьте условие, чтобы логи запросов выводились только администратору. И посмотрите что получится.

Насчет индексов не вариант - не стоит думать, что разработчики криво их настроили.

вы хотите сказать, что в InstantCMS - если пользователь - гость, то посылаются ненужные запросы
Я бы сказал по-другому: если пользователь-гость, то нет нужды мучить базу данных сотней запросов, хватит и 5.

То, что вы хотите - это хак. Переписывание большого количества запросов только затруднит переход на следующую версию Инстанта, да и на самом деле там очень мало запросов, которые можно как-то ускорить. И это не решит проблему с нагрузкой на базу.
оптимизирую помаленьку
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
Нагрузку на БД можно снизить применением индексов. Но в версии 1.9 индексы уже вроде бы везде есть. В этом плане всё уже проделано и навряд ли получится существенно уменьшить нагрузку. Всё же стоит просмотреть сторонние расширения и таблицы, создаваемые ими. Есть ли индексы.
Пересмотр и переписывание запросов - это тонкая оптимизация. Считайте равно тому, что переписывать по новой компоненты, модули... Возможно где-то придется менять весь алгоритм работы расширения. В последующем как будете обновляться?
Кеширование. Встроенное в смарти кеширование снижает нагрузку, но не в БД. Можно попробовать проверку в контроллере. Подключать шаблонизатор заранее, проверять есть ли кэш и если есть, то не выполнять алгоритм в контроллере. Вариант интересный. Если продумать, то может дать результат.
Кеширование в мускул. Тут надо всё тщательно протестить. И на шаред хостингах не прокатит, насколько я знаю.

Так мысли вслух... Навскидку. Ничего этого пока не делал. Но в будущем стоит подумать. Может кто-то уже попробует smile
Хватит париться, живи как нравится!
Посетитель
no avatar
Сообщений: 20
SJen:
Я бы сказал по-другому: если пользователь-гость, то нет нужды мучить базу данных сотней запросов, хватит и 5.
ну хоть разбейся я не знаю, что на такое можно ответить.. без конкретики, для меня это вырезание движка, cms это умная структура, где само по себе слово структура говорит о многом, запросы к базе формируются не от балды, а от надобности, запускается контроллер категорий меню, появляется запрос к базе с послед. выборкой и выводом, если посчитать там на главной странице 8 важнейших запроса к базе + скрытые запросы на проверку авторизированности пользователя, запрос на продление сессии.. Каким образом вы до 5 хотите уменьшить? И что, у меня меню выводиться не будет?
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатий
Сообщений: 2470
Они похоже сами не знают чего они хочут!
Раньше РАЙ был везде - РАЙсовет, РАЙком, РАЙсобес...., а сейчас везде АДминистрации!
Не надо давать людям советы. Каждый должен лохануться самостоятельно!
Любишь в продакшн, люби и баги починить!
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
ну хоть разбейся я не знаю, что на такое можно ответить.. без конкретики
blandind, какой конкретики вы от меня хотели в два часа ночи?) Да и вы же сами написали. что разбираетесь в запросах - а даже беглый взгляд на лог запросов расскажет вам достаточно обо всех недостатках и минусах системы, а так же подскажет направление для оптимизации...

Попробую объяснить, но конкретные запросы не пишу. Представьте, что 30 человек(гостей) заходят на главную страницу в интервале 10 минут, что они должны увидеть? - логично, что одно и то же. Страница скорей всего не изменилась. Даже если появился новый комментарий или какое-то действие в Ленте активности, нет ничего страшного если гости увидят это с некоторым опозданием.

Так вот, все эти 30 человек нещадно дергают mysql, получается грубо порядка 3 тысяч запросов(100 на человека). Моя мысль заключается в том, что можно первому сформировать и открыть страницу, совершив 100 запросов, а остальным 9 посетителям показать то же самое, загрузив этот контент из файла. Поберечь тем самым наш сервер от необязательной нагрузки.

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

У себя я еще сделал оптимизацию для юзеров - при каждом открытии страницы идут запросы на количество компонентов, модулей, плагинов, фильтров.. Запросы, которые получают позиции модулей и проверяют права юзера для просмотра модуля. Учитывая, что такая информация (количество модулей, компонентов, плагинов) не так часто меняются на сайте - можно не мучить базу данных при каждом открытии страницы. А включить кэширование конкретно для результатов этих запросов.

Я сам готовлю движок для высоконагруженного проекта, очень-очень высоконагруженного glasses

ЗЫ и отвечу на это
И что, у меня меню выводиться не будет?
Если вы не меняете пункты меню ежеминутно, то есть смысл не пересчитывать его при каждом открытии, количество пунктов меню - эта статическая информация - раз в 10 минут обновляем и отдаем юзерам в готовом виде.
Редактировалось: 4 раз (Последний: 21 марта 2012 в 12:12)
оптимизирую помаленьку
Посетитель
no avatar
Сообщений: 20
Вот то о чём ты писал в начале поста верно, чтобы все базу не дёргали - нужно кешировать рез-ты, но грамотно, чтобы после изменения данных кеш обновлялся, а значит должны ведь и изменения в коде изменяющих модулей производить?

Короче говоря, как связаться с тобой, чтобы приступить к доработке?
Нужно учесть что в движке много изменений, поэтому варианты подмены конкретных файлов не покатит, нужно все файлы в которые ты
будешь вносить изменения пробивать вручную.
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форумаПатриот InstantCMS ;-)
Сообщений: 3129
blandind, ради интереса на будущее - можно узнать - параметры "оборудования", на котором сейчас находиться проект и среднее количество он-лайн за неделю пользователей?
Зарабатываю здесь - Хостинг здесь - Жить в обществе и быть свободным от общества нельзя!...
Посетитель
no avatar
Сообщений: 20
Madmax, для проекта на сервере выделен VDS с параметрами 1500 Mhz и память 3072/1024 Мб, сайт пока новый, до этого был на shared хостинге, как правило хостеры вынуждают уйти от них или повысить на дорогостоящий проект, здесь же есть возможность при надобности отконфигурировать сервер индивидуально под проект.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.