Тормозит Opencart часть 2 (индексы MySql)

Тормозит Opencart часть 2 (индексы MySql)

Возвращаемся к теме тормозов Opencart, и немножко  таим зуб на разработчиков, за то что они пожалели индексы.

Пустая база данных  при установке частично не содержит индексов для ключевых полей в таблицах.

Попробуем это исправить, получив существенный прирост скорости генерации страницы.

Кстати про то как измерять скорость работы, будет чуть позже отдельный пост.

Что же такое индексы и зачем они нужны ?

Вот описание с mysql.ru:

Индексы применяются для быстрого поиска строк с указанным значением одного столбца. Без индекса чтение таблицы осуществляется по всей таблице начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше накладные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то MySQL может быстро определить позицию для поиска в середине файла данных без просмотра всех данных. Для таблицы, содержащей 1000 строк, это будет как минимум в 100 раз быстрее по сравнению с последовательным перебором всех записей. Однако в случае, когда необходим доступ почти ко всем 1000 строкам, быстрее будет последовательное чтение, так как при этом не требуется операций поиска по диску.

Для того чтобы проставить нужные индексы заходим в PhpMyAdmin, выбираем нашу базу данных, и выполняем вот такой запрос:

Крайне желательно, перед любыми ручными манипуляциями с базой данных сделать архивный дамп.

Также в примере запроса, указаны таблицы с префиксом «oc_», который определяется по умолчанию, если у вас иной префикс или его нет, то просто скопируйте запрос в любой текстовый редактор и выполните автозамену.

После этого скорость генерации страниц вашего магазина увеличится.

Также рекомендуем прочитать первую статью из цикла тормозит Opencart.

Хуйнаныр(7)Очко(0)

Запостить высер

Стучать мне на мыло
avatar

Сортировать:   Свежие | Тухлые | Хуйнанырные
Сергей
робот-вертер
Сергей
3 лет 1 месяц назад

Проделал данный запрос в базу данных на собственном демо, все получилось , прирост скорости заметен !
Стал испытывать на боевом магазине и вылезла ошибка , подскажите в чем может быть причина ?

SQL-запрос:
ALTER TABLE product_attribute ADD INDEX attribute_id( attribute_id ) ;
Ответ MySQL:
#1061 — Duplicate key name ‘attribute_id’

Константин
робот-вертер
Константин
3 лет 12 дней назад

здравствуйте

попробовал запрос версия опенкарта 1.5.3.1

появилась ошибка

Ошибка
SQL-запрос:
ALTER TABLE oc_product_attribute ADD INDEX attribute_id( attribute_id ) ;
Ответ MySQL:
#1146 — Table ‘signal_signal.oc_product_attribute’ doesn’t exist

Black Overlord
Magistr 80 level
3 лет 12 дней назад

Какой у вас префикс базы данных, видимо его или нет, или он не «oc».

Константин
робот-вертер
Константин
3 лет 10 дней назад

да
вы знаете
нет префикса

Константин
робот-вертер
Константин
3 лет 10 дней назад

убрал oc_ из запросов
все прошло удачно
спасибо

Виталий
робот-вертер
Виталий
2 лет 5 месяцев назад

Вот тут ************** есть еще индексы для таблиц. Какие посоветуете вставить?

Black Overlord
Magistr 80 level
2 лет 5 месяцев назад

Чужие гитхабы, а особенно с нашими дополнениями утекшими в паблик, рекомендую не пиарить впредь.

Виталий
робот-вертер
Виталий
2 лет 5 месяцев назад

Какой пиар? Какие дополнения? Я про индексы спросил. Стоит ли для увеличения производительности добавить еще и эти?

Black Overlord
Magistr 80 level
2 лет 5 месяцев назад

Ну ссылки на чужие ресурсы в комментариях я не приемлю, тем более с утащенным у нас дополнением. По поводу индексов — нужно детально анализировать весь процесс. Профайлер + explain.

роман
робот-вертер
роман
2 лет 5 месяцев назад

В вашей сборке ocshop индексы проставляются? или надо вручную?

Black Overlord
Magistr 80 level
2 лет 5 месяцев назад

Вручную

David
робот-вертер
David
2 лет 5 месяцев назад

Эти запросы подоидут для Опенкарт 1.5.5.1.
А то я разные запросы встречал.

Black Overlord
Magistr 80 level
2 лет 5 месяцев назад

Да.
Все необходимые запросы (полная оптимизация) — есть у меня и у Майкла Джексона.
В приведенной статье — это 30%.

Полная версия стоит — $100.

CTAKAH
робот-вертер
CTAKAH
2 лет 1 месяц назад

Спасибо огромное! Теперь все отлично!

Руслан
робот-вертер
Руслан
1 год 6 месяцев назад

Black Overlord , дайте пожалуйста ваши контакты.

Black Overlord
Magistr 80 level
1 год 6 месяцев назад

Пишите в скайп ocshop.support

Nameless
робот-вертер
Nameless
1 год 5 месяцев назад

А эти манипуляции стоит проделывать с версиями окшоп 2,х ? а то резко пошла нагрузка на базу и хостер негодует

Олег
робот-вертер
Олег
9 месяцев 11 дней назад

Короче история, пачка программистов из 5 человек. Два дня работала над сайтом чтобы убрать тормоза. В итоге никто ничего сделать не мог. Я зашёл, увидел вашу статью, выполнил запрос и тормоза ушли. Ура товарищи!

руслан
робот-вертер
руслан
2 месяцев 17 дней назад

при добавлении в таблицу выскакивает:
ALTER TABLE oc_product_attribute ADD INDEX attribute_id( attribute_id ) ;

#1061 — Duplicate key name ‘attribute_id’

стоит — OPENCART.PRO 2.1.0.1.10

Yoda
Magistr 80 level
2 месяцев 17 дней назад

А вы в пепеводчик или гугл не пробовали вставить ошибку ?

руслан
робот-вертер
руслан
2 месяцев 17 дней назад

если я правильно понял, такой параметр в таблице уже есть?

Yoda
Magistr 80 level
2 месяцев 17 дней назад

Это не параметр — а индекс, или ключ.
Да вы правильно поняли.

руслан
робот-вертер
руслан
2 месяцев 17 дней назад

спасибо, в OPENCART.PRO это уже есть в таблицах!

wpDiscuz