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


Правила форума

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


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


Сообщений в теме: 65

#1 noy

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

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

Отправлено 25 августа 2011 - 15:38

Описание:
Патч для оптимизации 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К   67 Количество загрузок:

#2 Jumor

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

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

Отправлено 26 августа 2011 - 08:53

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

#3 ruter

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

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

Отправлено 26 августа 2011 - 08:59

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

#4 Bardachock

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

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

Отправлено 26 августа 2011 - 10:46

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

#5 vsupport

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

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

Отправлено 26 августа 2011 - 10:56

Цитата

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

#6 Istock3d

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

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

Отправлено 26 августа 2011 - 11:25

Цитата

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

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

#7 vakkula

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

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

Отправлено 26 августа 2011 - 11:31

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

#8 bum

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

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

Отправлено 01 сентября 2011 - 06:12

Цитата

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

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

#9 ruter

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

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

Отправлено 01 сентября 2011 - 13:09

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

#10 pavel77

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

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

Отправлено 02 сентября 2011 - 01:29

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

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

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

#11 noy

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

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

Отправлено 02 сентября 2011 - 18:08

Цитата

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

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

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

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

#12 makki

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

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

Отправлено 04 сентября 2011 - 10:41

Цитата

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

очень ждем

#13 pavel77

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

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

Отправлено 07 сентября 2011 - 16:26

Цитата

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

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

#14 pavel77

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

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

Отправлено 16 сентября 2011 - 00:42

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

#15 ruter

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

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

Отправлено 19 сентября 2011 - 19:14

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

#16 pavel77

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

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

Отправлено 19 сентября 2011 - 20:05

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

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

#17 Dbus

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

  • VIP
  • 1 105 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 19 сентября 2011 - 20:09

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

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

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

#18 pavel77

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

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

Отправлено 19 сентября 2011 - 20:15

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

Цитата

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

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

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


#19 ruter

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

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

Отправлено 20 сентября 2011 - 01:32

Цитата

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

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

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

#20 pavel77

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

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

Отправлено 20 сентября 2011 - 08:03

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

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

Цитата

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