Все о WEB программировании. Работа с базой данных opencart
IMDBOptimizer - Оптимизация базы данных
Название файла | Имя файла | Дата | Действие |
IMDBOptimizer_1.2.0.zip | opencart_file_12152.zip | 2018-01-24 23:01:16 | Платный файл |
IMDBOptimizer_1.3.0.zip | opencart_file_13618.zip | 2018-04-09 00:04:51 | Платный файл |
* Возможность скачивания появится после покупки
IMDBOptimizer - Оптимизация базы данных
Найти версию для OpenCart 1.5 можно тут:
http://shop.opencart-russia.ru/imdboptimizer15
Найти версию для OpenCart 2.3 можно тут:
http://shop.opencart-russia.ru/imdboptimizer23
Найти версию для OpenCart 3 можно тут:
https://shop.opencart-russia.ru/imdboptimizer3
Оптимизация базы данных интернет-магазина — это весьма непростой вопрос, порой требующий отдельных исследований.
И самое неприятное в этом процессе заключается в том, что сделать хоть какую-то оптимизацию может только тот, кто знает sql-запросы и разбирается в базах данных (БД).
Вот как раз для того, чтобы клиентам не приходилось заниматься тем, что им не обязательно знать, и создан IMDBOptimizer.
Статьи про модуль или просто полезные материалы:
1. Что такое индексы базы данных (для начинающих)?
2. Индексы и немного хитрой математики
3. Тестируем IMDBOptimizer для 2000 и 5500 товаров (индексы)
4. Тестируем IMDBOptimizer для 5500 товаров — Кэш SQL-запросов
Демо модуля
Демо админки (demo/demo)
Кэширование SQL-запросов
OpenCart, как и любая CMS, осуществляет немалое количество sql-запросов к БД, часть из которых являются однотипными (то есть для разных пользователей будет один и тот же результат).
И если товаров много, то sql-запросы легко могут стать основной причиной тормозов интернет-магазина (если у вас 5000+ товаров, то об этом вы, вероятно, хорошо знаете).
Однако, этого можно избежать за счет кэширования sql-запросов модулем IMDBOptimizer.
Возможности:
1. Гибридная система кэширования SQL-запросов (БД + файлы), позволяющая увеличить скорость генерации HTML-страницы (тестировалось на стандартном OpenCart с 5500 товаров — прирост производительности от 30% до 70-80%) и частично сбалансировать нагрузку между диском и БД. 2. Поддерживается фильтр «по словам» для исключения SQL-запросов из процесса кэширования (регистронезависимо). 3. Поддерживается фильтр «по URL» для исключения отдельных страниц из процесса кэширования SQL-запросов (регистронезависимо). 4. Так как кэшируются только SQL-запросы, то такой модуль можно успешно применять совместно с другими модулями кэширования (например, v2pagecache). Однако, совместимость лучше проверять на тестовом сервере. 5. Установили модуль? Ничего не нужно настраивать для кэширования. SQL-запросы автоматически начинают кэшироваться (с учетом фильтров), без необходимости что-то еще настраивать. 6. Еще одной отличительной особенностью кэширования именно SQL-запросов является то, что если один и тот же запрос используется при генерации разных веб-страниц или же просто выполняется повторно, то используется всего один кэш. Простой пример, открыли один и тот же товар из разных категорий — опции будут закэшированы всего 1 раз. 7. Можно применять как с созданием индексов, так и без. 8. При установке, модуль сразу создает типовую настройку, нужно лишь включить кэш. 9. Легко включается и легко отключается.
Ограничения и нюансы:
1. Так как это модуль кэширования уровня БД, то необходимо учитывать, что такие возможности, как отображение реального остатка товара или текущей цены в карточке, не поддерживаются (данные же кэшированы). 2. Кэшируются только SQL-запросы, начинающиеся с select. 3. Заменяется ядровой файл registry.php 4. Кэширование применяется только к клиентской части, в админской части все запросы выполняются как обычно. 5. Учитывайте, что кэширование это дополнительная нагрузка. Например, при первом открытии страницы товара, она может дольше загружаться (создается кэш).
Кэширование SQL-запросов — включение и очистка
Как включить кэширование: 1. Перейдите во вкладку «Кэш SQL-запросов». 2. Укажите, что кэширование «Включено» и сохраните настройки. 3. Кэш включен Для отключения нужно сделать все то же самое, только в шаге 2 установить «Отключено»
Как очистить кэш: 1. Перейдите во вкладку «Кэш SQL-запросов» 2. Нажмите кнопку «Удалить кэш» 3. Дождитесь соответствующего сообщения
Кэширование SQL-запросов — фильтры
Фильтр запросов «по словам»:
В данном фильтре построчно указываются фразы, которых не должно быть в запросе (приводятся к нижнему регистру). По умолчанию, указан список таблиц/префиксов для стандартной конфигурации.
При фильтрации, символ «#» заменятся на префикс базы данных, что позволяет создавать собственные конфигурации, которые легко переносить в другие интернет-магазины.
Важно! Пробелы так же учитываются - сделано для того, чтобы можно было исключать отдельные таблицы. Например, строка «#order» без пробела после order исключает все таблицы, связанные с заказом. А с пробелом после исключает только oc_order (рекомендуется так же дублировать правило и указывать апостроф после order, так как SQL-запросы формируются по-разному).
Пустые строки игнорируются. Так же игнорируются пробелы вначале и в конце SQL-запроса.
Фильтр запросов «по URL»:
В данном фильтре построчно указываются комбинации «[тип поиска]: [часть URL адреса]» (или же просто «[часть URL адреса]») для отключения кэширования при генерации конкретных страниц (таких как корзина или же оформление заказа). Все комбинации приводятся к нижнему регистру (регистронезависимо).
1. [часть URL адреса] – это какая-то часть URL адреса, например, «#/cart/» или «=checkout/». 2. [тип поиска] – имеет три значения: «l» (сравнивать часть адреса сначала URL; учитываются параметры запроса), «i» (искать часть адреса внутри URL; учитываются параметры запроса), «r» (искать часть адреса справа; параметры запроса не учитываются).
При фильтрации, символ «#» заменятся на домен сайта, что позволяет создавать собственные конфигурации, которые легко переносить в другие интернет-магазины.
По умолчанию, указан список фильтров для стандартных настроек, а так же корзины с модулем Simple.
Так же учитывайте, что префиксы «http://» и «https://» обрезаются, и что если фрагмент «[тип поиска]:» не указан, то поиск происходит слева (чтобы можно было просто URL вставлять).
Примеры:
r: #/cart Подходит «site.ru/cart», «site.ru/cart?asd=1». Но, не подходит «site,ru/cartini»
i: =checkout/ Подходит «site.ru/index.php?route=checkout/checkout&1=2». Но, не подходит «site.ru/index.php?route=check/some».
Кэширование SQL-запросов — дополнительные настройки
Максимальный размер вставки в БД. Данный параметр указывает свыше какого размера данных, информацию необходимо кэшировать в файл. Максимальное значение 65000. Рекомендуется использовать в диапазоне 20000 — 30000.
Время жизни кэша (сек). Здесь указывается время в секундах, в течение которое будет актуален созданный кэш.
Для тех, кому нужна только базовая оптимизация
Если вы не планируете сами вносить дополнительные индексы (или же оставите это тем, кто в этом разбирается), то, как уже говорил, модуль содержит настройки по умолчанию для базовой оптимизации БД.
Важно! Учтите, что операция весьма длительная и что требуется минимальная нагрузка в базе данных (то есть, желательно, чтобы пользователей сайта вообще не было или их было немного). В крайнем случае, вы можете создавать индексы по одной таблице отдельно, а не все скопом.
1. Сделайте бэкап всей базы данных! Это важно! 2. Откройте модуль 3. Выберите все таблицы (можно щелкнуть по ссылке «Выделить всё») 4. Чуть ниже, щелкните по кнопке «Генерировать!» 5. Откиньтесь на спинку кресла и наблюдайте как модуль создает индексы
Несколько щелчков мыши и у вас проведена базовая оптимизация базы данных!
Профилактика — создание индексов
Для профилактики, необходимо запускать генерацию после установки любых других модулей, которые создают свои таблицы (не всегда в них имеются все необходимые индексы).
Индексы создаются самые простые без ограничений, так что в таблицах модулей не будет нарушена какая-либо логика (только если модуль не будет в последствии добавлять индексы без проверок, но обычно это редкость).
Профилактика — оптимизация таблиц
Базы данных это сложные механизмы, где часть вещей остается на ответственность пользователей. Одной из них является снижение производительности, в связи с частым изменением и модификацией набора записей таблиц.
Проще говоря, товаров, их атрибутов и прочего. Что особенно актуально для магазинов с частым импортом прайсов или для магазинов, использующих парсеры.
Поэтому для повышения производительности БД рекомендуется периодически выполнять оптимизацию таблиц. В среднем, для OpenCart это, примерно, раз в неделю.
Чтобы провести оптимизацию, достаточно лишь открыть вкладку «Сервис», выбрать таблицы и нажать кнопку «Оптимизировать!».
Учтите, что данная операция может занимать время и блокировать доступ к данным во время своего выполнения. Поэтому лучше всего выполнять ее, когда пользователей либо нет на сайте, либо их минимальное количество.
Починка таблиц
Как же неприятно открыть страницу товара и увидеть вместо карточки сообщение вида «PHP … Table is currupted … try to repair it...».
Редко, но такое бывает, что таблицы в БД MySql повреждаются. К счастью, чаще всего для их починки достаточно лишь запустить специальный запрос. Однако, чтобы это сделать необходимо зайти в хостинг, открыть панель phpMyAdmin, найти в интернете как составлять запрос и запустить его (а до этого всего, еще понять что делать с этой ошибкой). Для обычных пользователей или тех, кто только начинает, это весьма непростая задача.
Модуль же позволяет существенно упростить этот процесс. Нужно лишь указать поврежденную таблицу и нажать кнопку «Починить!» во вкладке «Сервис».
Учтите, что ошибки при подсчете не всегда означают ошибки восстановления. Так, например, таблица oc_cart попросту не поддерживает данный вид команды.
Блок с именами
Для настройки автоматического поиска и создания одиночных индексов, рядом с блоком таблиц есть три поля, где можно указывать конкретные имена полей, их начало или окончание (через запятую).
Стоит понимать, что они действуют по правилу ИЛИ. То есть если поле таблицы указано среди конкретных полей ИЛИ начинается с одного из указанных префиксов ИЛИ заканчивается на одном из у
shop.opencart-russia.ru
установка OpenCart « Все о WEB программировании
15.02.2017 Ромчик0
Доброго времени суток. Мы продолжаем изучать основы OpenCart, создавая интернет-магазин. Так в прошлой статье «Создание интернет-магазина на OpenCart: Введение» мы познакомились с понятиями интернет-коммерция, интернет-магазин. И остановились на рассмотрении одной CMS для создания интернет-магазина OpenCart и ее русифицированной сборке ocStore. А в этой статье мы рассмотрим установку OpenCart. Приступим.
Первое, что нам необходимо сделать – это скачать OpenCart.
Скачать OpenCart
Для этого заходим на официальный сай.
и скачиваем последнюю версию OpenCart.
После того, как мы скачали OpenCart. Можно перейти к установке.
Установка OpenCart
Перед установкой нам необходимо создать базу данных. Свою я назвал «opencart». Затем разархивировать скачанный архив с opencart. И все, что находится в папке «upload» скопировать к нам на сервер в корень.
Переименовать два файла. Первый файл в корне нашего сайта config-dist.php в config.php, а второй в admin/config-dist.php в config.php.
Теперь на папки (это касается у кого UNIX-системы):
- system/storage/cache/
- system/storage/logs/
- system/storage/upload/
- system/storage/modification/
- image/
- image/cache/
- image/catalog/
- php
- admin/config.php
Выставить права доступа 755. Если не работает, то 777.
Мы готовы к установке. Переходим в наш магазин по адресу. (в моем случае opencart.loc)
Первое окно – это лицензия. Знакомимся и жмем «continue».
Дальше OpenCart проверяет настройки нашей системы на соответствие рекомендуемым параметрам. Первое проверка PHP.
Как видим все соответствует.
Дальше проверка установленных расширений для PHP.
Дальше проверка прав доступа к файлам.
Ошибка!!! Это потому, что я забыл переименовать файлы: config-dist.php и admin/config-dist.php. Давайте исправим это и обновим страницу.
Исправили. Есть доступ на запись этих файлов. Следующее проверка прав доступа на папки:
Тоже все хорошо. Если у Вас где не соответствует требованиям, то необходимо исправить. После жмем «continue».
Следующий шаг – это конфигурация OpenCart.
Первое это настройка подключения к базе данных. В моем случае Username – root (это настройки OpenServer) и пароля нет. Database – opencart. И prefix я поменял на sh_
И второе – это настройка доступа к админ-панели OpenCart.
Я установил следующие параметры:
Никогда, так не делайте на продакшен версии.
Жмем «Continue»
Все установка завершена.
Осталось удалить папку «install» в корне нашего сайта, о чем предупреждает нас OpenCart и проверить работоспособность нашего сайта. Для этого переходим по адресу нашего интернет-магазина. (в моем случае opencart.loc)
Отлично работает. Давайте проверим работоспособность админки, которая находится по адресу <название сайта>/admin
И попробуем пройти авторизацию. Вводим логин и пароль, которые мы задали при установке. (В моем случае: admin и admin)
Все работает.
И в дополнении видео:
Заключение
В этой статье мы с вами скачали OpenCart и установили. При этом произвели первоначальную настройку OpenCart: подключение к базе данных и настройка доступа к админке Opencart. В следующей статье мы установим русскую локализацию.
Чтобы не пропустить выхода новых статей подписываемя: VK, twitter, facebook. И канал на youtubeПонравилась статья? Поделись с друзьями.
web-programming.com.ua
SQL ЗАПРОС. КАК ЭКСПОРТИРОВАТЬ ПРАЙС ТОВАРА ИЗ OPENCART
Для того что бы экспортировать список вашего товара из opencart с помощью SQL запроса, Вам потребуется SQL клиент. SQL клиентов на самом деле большое множество. Каждый хостинг предоставляет возможность получить доступ к базе данных через специальный php скрипт с открытым кодом, под названием PhpMyAdmin.
Лично я предпочитаю использовать для винды «Navicat for MySQL». В нем можно экспортировать и импортировать товар «из» и «в» Excel.
Я буду приводить пример экспорта товара с помощью Navicat for MySQL, так как там есть возможность экспортировать в Excel. Cкачать его можно тут. Бесплатный тоже можно найти в поисковике.
Если вы пользуетесь хостингом, первое что Вам необходимо сделать в настройках у хостера, это дать внешний доступ к базе данных, иначе подключиться к базе данных не получится. У каждого хостера это делается по разному, если Вы сами не разберетесь как это сделать, этот вопрос можно задать в свою службу поддержки.
Установили Navicat, в верхнем левом углу нажимаем большую кнопку Navicat и в появившемся окне прописываем настройки базы данных. Хост, логин и пароль.
Жмем кнопку «Test connection«. Если в диалоговом окне появилось сообщение «connection successful«, значит всё класс. соединение установлено.
Но если будет написано что-то типа access denied for user… Это значит что удаленный доступ к базе данных закрыт для этого пользователя.
Теперь открываем базу данных и выбираем пункт Tables как показано на картинке. Для написания запроса на обязательно надо будет знать префикс таблиц. Это как бы приставочка в начале названия каждой таблички. В случае нашего примера префикс oc_
Если ваш префикс отличается или его нет, тогда надо будет подправить SQL запрос. в запросе префикс я выделю красным цветом.
Префикс знаем, теперь приступаем к написанию SQL запроса.
Нажимаем кнопку Query потом кнопку New Query и в появившемся окне, как показано на картинке пишем вот этот запрос. (префикс выделен красным). Если у Вас нет прификса, значит уберите его из запроса.
********************
SELECTp.product_id,p.sku,p.model,pd.name,p.price,p.quantityFROM oc_product as p, oc_product_description as pdWHEREp.product_id = pd.product_id
********************
Перевожу что тут написано
p.product_id — id продукта в базеp.sku — Артикулp.model — Модельpd.name — Название товараp.price — Ценаp.quantity — Количество
Вставили запрос, теперь жмем в верху кнопку Run. В табличной части появился перечень товаров. Осталось теперь этот список загрузить в эксель.
Для этого необходимо нажать кнопку «Export Wizard» и в появившемся окне выбрать в каком формате мы будем экспортировать данные.
Тут казалось бы все просто, выбрал формат экселевский и экспортировал. Но не тут то было. практика показала, что если сразу экспортировать данные в эксель, то после того как вы откроете экселевский файл, там вместо русских букв будет абра-кадабра. Такой вариант прокатывает, если бы база опенкарта была в виндовой кодировке. Но так как база в кодировке UTF-8, то мы сделаем экспорт в формате XML, который преобразуем в дальнейшем в эксель.
К стати, в линуксовой версии всё отлично работает. можно сразу в экселевский формат экспортировать.
***
Делаем все как показано на картинках. Выбрали формат XML, Source оставляем пустым, указываем куда будем сохранять наш файл и его имя. например «123″. жмем «Сохранить» потом «Next» «Next» и «Start». готово! файл создан!!!
Осталось немного. Открываем эксель через меню пуск или с рабочего стола если у вас на нем есть ярлык экселевский. Жмем в экселе кнопку открытия документа и выбираем наш файл XML с именем 123.
Дальше эксель начнет брыкаться и задавать вопросы. ответьте на них так как показано на картинках ниже.
Это всё что надо было сделать. теперь нажмите в экселе меню «Сохранить как» и пересохраните его в экселевском формате.
myplugin.ru
Установка OpenCart
В этой статье подробно описывается процесс установки CMS
интернет магазина OpenCart на примере русского релиза
ocStore, что в принципе аналогично. Загрузить архив CMS
ocStore можно с официального сайта этой системы
- myopencart.com.
ocStore - это онлайн магазин, который основан на базе Opencart
и имеет открытый исходный код . Очень простое и надёжное
решение для желающих создать собственный онлайн бизнес при
минимальных затратах.
Для начала скачаем и распакуем установочный пакет на локальный компьютер.
При разработке сайтов я использую различные локальные веб-сервера,
в зависимости от того, на какой CMS работает конкретный сайт.
Установка OpenCart с использованием одного из простейших в применении
и надежных – USBWebserver v86. Он не требует установки на компьютер,
а настройки у него минимальны и обычно не требуют изменения от
установленных по умолчанию.
Все распакованные файлы при помощи FTP клиента залейте на хостинг.
В случае использования локального веб-сервера USBWebserver скопируйте
их в папку root, находящуюся в каталоге программы.
Теперь мы снимем блокировку с конфигурационных файлов системы ocStore.
Для этого просто переименуйте файлы «config-dist.php» в «config.php»
находящиеся в корневом каталоге и в папке «admin».
Не сделав этого, вы не сможете продолжить установку движка вашего интернет магазина.
Отмечаем «Я согласен с лицензией» и нажимаем «Продолжить»
В результате видим окно с отчетом о настройках веб-сервера и соответствии
требованиям системы.
Если все в порядке, то в графе «Состояние» все пункты отмечены зеленым,
как на изображении ниже, и вы можете продолжать установку.
В случае появления такого отчета о состоянии:
Вы должны снять блокировку с соответствующих файлов, как описано в начале статьи.
Затем смело нажимайте на кнопку «Продолжить»
В этом окне необходимо внимательно и аккуратно заполнить все пункты.
Введите настройки базы данных, а также логин и пароль администратора.
Запомните их и обязательно запишите, они понадобятся неоднократно.
Данные об учетной записи следует хранить в безопасном месте.
Для того чтобы заполнить первый пункт, вначале нужно создать базу данных.
Интерфейс USBWebserver лаконичен и прост.
Заходим в PHPMyAdmin.
Авторизируемся.
Если вы устанавливаете ocStore (OpenCart) на хостинг, то делаете все также.
Выбираем пункт «Базы данных»
Создайте новую базу данных. Введите имя своей базы данных.
Для созданной базы данных добавьте пользователя, выбрав рядом с названием БД
пункт «Проверить привилегии» и в открывшемся окне «Добавить пользователя».
Здесь мы прописываем такие данные как «Имя пользователя», «Хост» (обычно это localhost),
«Пароль» вводим свой или его модно сгенерировать, отмечаем «Глобальные привилегии» для
администратора базы данных жмем «Отметить все». Переписываем себе логин и пароль.
Для сохранения настроек жмем «ОК».
Вернемся к окну установки ocStore (OpenCart). Заполним данные «Пользователь», «Пароль»
и «Имя БД» соответствующие тем которые мы создали в PHPMyAdmin.
Заполните второй пункт, введите логин и пароль администратора, а также E-Mail.
На этом мы практически закончили!
Всего 4 шага и установка OpenCart завершена.
Для обеспечения безопасности вашего магазина зайдите в корневую папку установки
и удалите папку install.
В административную панель магазина вы сможете войти по адресу http://имя_домена/admin/
Думаю статья получилась весьма содержательная.
Мы установили CMS ocStore (OpenCart), познакомились с отличным локальным веб-сервером
USBWebserver и подробно рассмотрели создание базы данных в PHPMyAdmin.
В следующих статьях я подробно расскажу,
как работать с административной панелью и управлять магазином.
maxweb.by