Перейти к содержимому


Оптимизация MySQL запросов


  • Вы не можете ответить в тему
Сообщений в теме: 65

#1 noy

    Пользователь

  • Заблокированные
  • PipPip
  • 24 сообщений
Репутация: 0
Начинающий

Отправлено 25 August 2011 - 03:38 PM

Описание:
Патч для оптимизации ShopCMS (3.0.0, 3.1.1 и выше) запросов к базе данных MySQL позволяет уменьшить нагрузку на базу данных. Суть предлагаемой оптимизации в уменьшении, иногда значительном, количества запросов, необходимых для генерации страницы магазина. Наибольший эффект данный патч оптимизации ShopCMS производит для внутренних страниц каталогов с большим количеством товаров и категорий, а также при использовании дополнительных характеристик товаров.

Установка:
1. Сделать резервную копию файла
core/includes/database/mysql.php

2. Загрузить файлы (заменить):
core/includes/database/mysql.php
core/includes/database/optMysql.class.php
core/includes/counter.php (необязательно, отключает счетчик посетителей)

3. Если используется стандартный немодифицированный движок - заменить следующие
файлы (перед этим сделать резервные копии).
core/functions/product_functions.php
core/functions/category_functions.php
core/includes/product_detailed.php
Если же эти файлы были модифицированы по сравнению с оригинальными, нужно
применить патч для них вручную.
Все изменения, касающиеся патча, выделены комментариями такого вида:
// BEGIN Patch Optimize
модифицированный или вставленный код
// END Patch Optimize

4. Если возникла проблема с кодировкой - сравнить в старом и новом файлах
core/includes/database/mysql.php тело функции db_connect, а именно
запросы set names и set character. Заменить эти запросы из старого файла в новый.

Оптимизация запроcов к базе данных ShopCMS реализована следующими путями:
  • Кэширование результатов повторяющихся выборок
  • Оптимизация работы с:
  • переменными конфигурации
  • дополнительными характеристиками товаров
  • рекомендованными товарами

  • Отключение некоторых ненужных функций скрипта (счетчик посетителей)

Патч оптимизации ShopCMS - тестирование

Патч оптимизации ShopCMS тестировался на страницах вложенных категорий с множеством товаров - именно там он производит максимальный эффект. Все результаты тестов - для движка версии 3.1.1, но для 3.0.0 оптимизация показывает иногда даже лучшие результаты.
Метод тестирования: один и тот же URL категории открывался в разных версиях скрипта, на одном сервере. Результаты измерений брались из отладочной панели ShopCMS.
Изображение


Изображение
В отладочной панели ShopCMS обратите внимание на параметры "Работа с БД" и "Запросов в БД"

ShopCMS "тормозит" (медленно работает)? Хостер жалуется на большую нагрузку на БД?
Включите в настройках своего магазина отладочную панель и откройте несколько страниц каталога. Если на многих страницах категорий со списками товаров ShopCMS запросов к БД очень много (100 и больше) и при этом время работы с БД значительное - данный патч скорее всего ощутимо повысит эффективность их генерации, то есть магазин должен работать с патчем быстрее. Обычно проблемы с нагрузкой на БД встречаются на недорогих хостингах. Уменьшение количества запросов особенно полезно, если сервер MySQL вынесен на отдельный хост (когда в настройках скрипта хост БД указывается не 'localhost', а какой-то другой).

Прикрепленный файл  opt.zip   24.08К   68 Количество загрузок:

#2 Jumor

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 34 сообщений
Репутация: 0
Начинающий

Отправлено 26 August 2011 - 08:53 AM

Данное тестирование проводилось с включенным стандартным кешированием?
  • 0

#3 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 26 August 2011 - 08:59 AM

Я раньше установил этот модуль, магазин работает шустрее, так как лучше организована работа со стандартным кешем, чего нет изначально. Данные правильнее вызываются из кеша, как и должно быть, еще оптимизированы некоторые узкие места в которых имелась значительная нагрузка.
  • 0

#4 Bardachock

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений
Репутация: 0
Начинающий

Отправлено 26 August 2011 - 10:46 AM

Спасибо большое, в одном из проблемных разделе было 1230 запросов, стало 44
Еще бы патч/модуль для админовской части, при изменениях.
Поправьте если я не прав, но моему скрипт меняет всех родителей изменяемого объекта не взирая на то надо это или нет. Уж больно долго он крутиться иногда за тайм-аут выходит. Если есть уже что-то такое, что оптимизирует данный процесс, наведите где поглядеть.
  • 0

#5 vsupport

    Продвинутый пользователь

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 26 August 2011 - 10:56 AM

в одном из проблемных разделе было 1230 запросов, стало 44
Еще бы патч/модуль для админовской части, при изменениях.
Поправьте если я не прав, но моему скрипт меняет всех родителей изменяемого объекта не взирая на то надо это или нет. Уж больно долго он крутиться иногда за тайм-аут выходит. Если есть уже что-то такое, что оптимизирует данный процесс, наведите где поглядеть.

Если руки ровные, то этот патч можно без особых проблем переделать под себя.
  • 0

#6 Istock3d

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 121 сообщений
Репутация: 1
Начинающий

Отправлено 26 August 2011 - 11:25 AM

скрипт меняет всех родителей изменяемого объекта


Можно чуть подробнее о чем идет речь и чем это чревато для магазина?
  • 0

#7 vakkula

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 6
Начинающий

Отправлено 26 August 2011 - 11:31 AM

Хороший модуль. Реально быстрее стало с мои то количеством товаров в 140К
Спасибо за модуль!
  • 0

#8 bum

    Пользователь

  • Пользователи
  • PipPip
  • 12 сообщений
Репутация: 2
Начинающий

Отправлено 01 September 2011 - 06:12 AM

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


Есть такое в скрипте, генерация категорий меню и то кучу запросов за собой тянет
  • 0

#9 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 01 September 2011 - 01:09 PM

Да я знаю, поэтому выкинул каталог из блоков и сделал отдельную страницу, а так получается при просмотре любой страницы грузиться полностью каталог, зачем. Поскольку триста категорий в блоке подгружать такой блок не вижу смысла - вот где нагрузка.
  • 0

#10 pavel77

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 116 сообщений
Репутация: 10
Начинающий

Отправлено 02 September 2011 - 01:29 AM

Спасибо! Отличный модуль. Кол-во запросов снизилось в 3 раза для главной и в 2 раза для товаров и категорий. в магазе 130 категорий и 1300 товаров.

Кстати всем рекомендую хостинг для этого скрипта REG.ru - поменял кучу хостеров (посещаемость сайта приличная)... то нагрузка, то еще что.
На этом хостинге сайт работает уже год - И ГЛАВНОЕ быстрее чем где либо из шаред хостингов.

Обработка данных: 0.027 сек || Компиляция шаблона: 0.010 сек || Работа с БД: 0.004 сек || Общее время работы: 0.041 сек || Запросов в БД: 24
  • 0

#11 noy

    Пользователь

  • Заблокированные
  • PipPip
  • 24 сообщений
Репутация: 0
Начинающий

Отправлено 02 September 2011 - 06:08 PM

Спасибо! Отличный модуль. Кол-во запросов снизилось в 3 раза для главной и в 2 раза для товаров и категорий. в магазе 130 категорий и 1300 товаров.

Кстати всем рекомендую хостинг для этого скрипта REG.ru - поменял кучу хостеров (посещаемость сайта приличная)... то нагрузка, то еще что.
На этом хостинге сайт работает уже год - И ГЛАВНОЕ быстрее чем где либо из шаред хостингов.

Обработка данных: 0.027 сек || Компиляция шаблона: 0.010 сек || Работа с БД: 0.004 сек || Общее время работы: 0.041 сек || Запросов в БД: 24


Скоро выставлю обновленный оптимизатор. В новом устранены все ошибки что есть в этой версии

#12 makki

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 04 September 2011 - 10:41 AM

Скоро выставлю обновленный оптимизатор. В новом устранены все ошибки что есть в этой версии


очень ждем
  • 0

#13 pavel77

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 116 сообщений
Репутация: 10
Начинающий

Отправлено 07 September 2011 - 04:26 PM

Скоро выставлю обновленный оптимизатор. В новом устранены все ошибки что есть в этой версии


Когда ждать обновление? )) В данном варианте действительно есть баги.
  • 0

#14 pavel77

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 116 сообщений
Репутация: 10
Начинающий

Отправлено 16 September 2011 - 12:42 AM

Так как обновления модуля нет, а модуль действительно нужный и показал себя хорошо даже в существующем варианте.
Предлагаю скинуться на этот модуль и приобрести.
  • 0

#15 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 19 September 2011 - 07:14 PM

а кака я версия модуля? Когда доработана? Мы в августе купили и что? Уже другая версия?
  • 0

#16 pavel77

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 116 сообщений
Репутация: 10
Начинающий

Отправлено 19 September 2011 - 08:05 PM

Сравните если не сложно с выложенным модулем тут. Разработчик уверяет что данный модуль устарел и в новый работает лучше.

В выложенном тут модуле замечены баги при работе с админкой и корзиной
  • 0

#17 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 19 September 2011 - 08:09 PM

Если модуль куплен, вы можете у его автора затребовать обновление, я так думаю. Выкладывать его в паблик или нет - уже другой вопрос :)

---------- Сообщение объединено ----------

pavel77, а что за баги ? заметил только при сохранении в админке - 2 раза нужно нажимать чтоб показало изменения, но это пофиг.
  • 0
502 Bad Gateway

#18 pavel77

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 116 сообщений
Репутация: 10
Начинающий

Отправлено 19 September 2011 - 08:15 PM

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

Если модуль куплен, вы можете у его автора затребовать обновление, я так думаю. Выкладывать его в паблик или нет - уже другой вопрос :)

---------- Сообщение объединено ----------

pavel77, а что за баги ? заметил только при сохранении в админке - 2 раза нужно нажимать чтоб показало изменения, но это пофиг.


  • 0

#19 ruter

    Продвинутый пользователь

  • VIP
  • 334 сообщений
Репутация: 151
Мастер

Отправлено 20 September 2011 - 01:32 AM

Сравните если не сложно с выложенным модулем тут. Разработчик уверяет что данный модуль устарел и в новый работает лучше.

В выложенном тут модуле замечены баги при работе с админкой и корзиной


Сравнил, что здесь и у меня = один к одному, значит старый впарили. Буду писать тому кто проплачивал, вскладчину ведь покупали.
  • 0

#20 pavel77

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 116 сообщений
Репутация: 10
Начинающий

Отправлено 20 September 2011 - 08:03 AM

Вот ссылка на коммент разработчика:
Форум ShopCMS • Просмотр темы - Тормозит база данных

***01 сен 2011, 07:02
Собственно, там без моего соглашения раздают мой же "хороший оптимизатор" старой версии. Кому нужен патч с исправленными ошибками, с найденными дополнительными возможностями для оптимизации и техническая поддержка - тот его купит, стоимость не слишком высока.
***

Сравнил, что здесь и у меня = один к одному, значит старый впарили. Буду писать тому кто проплачивал, вскладчину ведь покупали.


  • 0