[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как снизить нагрузку на БД MySQL на хостинге
Страницы: 1, 2
OleKh
Цитата (Turboworld1 @ 23.09.2013 - 11:56)
Или просто вписали ORDER BY? 
ORDER BY and LIMIT. Дополнительный индекс не добавлял, но надо бы добавить, хотя и не просто это сделать т.к. выбираются url и поисковые запросы. Первичный индекс по id - int. Url и keywords - varchar. Будет ли работать!? Вообще тема интересная, мне тоже в ближайшее время возможно понадобится оптимизировать запросы. Единственное, что собираюсь использовать - это добавить в обёртку для mysql_query() функцию для сбора информации по каждому запросу и дальше анализировать. Может быть профессионально это делается по другому, может есть sql debug, не знаю. Есть Workbench, там тоже можно смотреть статистку, может и по каждому запросу отдельно, но как!? тоже вопрос.

Цитата (Turboworld1 @ 23.09.2013 - 11:56)
а не влияет ли наличие в запросе условия сравнения? 

Думаю, что влияет, но может быть как в плюс так и в минус. Например, если кеширование запросов включено, тогда по timestamp () не кешируется, а это минус. А если ограничить выборку по дате, наверное плюс.
sergeiss
Прочитал всю тему и понял, что автору темы нужно искать спеца по оптимизации БД, который бы плотно поработал у него. С теми же индексами, в частности. Потому что, судя по вопросам ТС, он в этом ориентируется, мягко говоря, маловато.
Себя не предлагаю, сразу говорю smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (OleKh @ 23.09.2013 - 17:37)
Единственное, что собираюсь использовать - это добавить в обёртку для mysql_query()  функцию для сбора информации по каждому запросу и дальше анализировать. Может быть  профессионально это делается по другому, может есть sql debug, не знаю

вот это должно быть полезно ;)

UPD блин форум ссылку коверкает
http://stepansuvorov.com/blog/2012/08/профилирование-mysql-запросов/
OleKh
Цитата (killer8080 @ 24.09.2013 - 11:43)
вот это должно быть полезно wink.gif

Благодарствую за ссылку. А я только что установил то, что искал. Спешу поделиться. Супер софт. Респект разработчикам. http://www.profilesql.com/
Turboworld1
Цитата (sergeiss @ 24.09.2013 - 02:06)
Прочитал всю тему и понял, что автору темы нужно искать спеца по оптимизации БД, который бы плотно поработал у него. С теми же индексами, в частности. Потому что, судя по вопросам ТС, он в этом ориентируется, мягко говоря, маловато.
Себя не предлагаю, сразу говорю smile.gif

Да, по части БД ориентируюсь маловато. Да и в PHP не особенно силен. smile.gif
Turboworld1
А моя проблема, кажется, разрешилась. Нагрузка вошла в зелёную зону. laugh.gif happy.gif

Я проделал следующее:
1) Добавил в запросы параметр sql_cache
2) Заменил в запросах сравнения с функцией time() на сравнение с переменной (которая считается как mktime(23,59,59,date("m"),date("d"),date("Y"))), что существенно уменьшило количество разнообразных (с точки зрения сервера) запросов.

Возможно, что вторая фишка сыграла главную роль, но все равно огромное спасибо пользователю S.Chushkin за совет про параметр sql_cache.


Вот результат (выделен четверг):
12 сент. - до оптимизации
19 сент. - уменьшен размер БД (примерно в 1,5 раза)
26 сент. - переделаны запросы (без time() в сравнении) + sql_cache

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.