Перейти к содержанию
RGB

Индексация БД

Рекомендуемые сообщения

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

К сожалению, я не обладаю таким опытом, поэтому могу лишь надеяться на помощь более опытных форумчан. Однако, от себя могу предположить, что индексировать, вероятно, стоит поле с названием продукции (поле name в таблице oc_product_description), и больше мне ничего на ум пока не приходит.

И конечно, всем было бы полезно увидеть синтаксис запроса с индексацией, чтобы лишний раз не искать по инету.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

индексировать надо по тем полям по которым идет выборка, а это как правило всякие ******_id.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А поиск разве по ним идёт? Допустим, пользователь ищет конкретную модель — тогда ведь будет задействовано именно поле name. Впрочем, система магазина наверняка чаще обращается к БД, чем пользователи, так что наверное вы правы.

В таком случае запросы индексации, видимо, будут иметь следующий вид:

ALTER TABLE oc_product ADD INDEX i_product_id (product_id); //по product_idALTER TABLE oc_product ADD INDEX i_stock_status_id (stock_status_id); //по stock_status_idALTER TABLE oc_product ADD INDEX i_manufacturer_id (manufacturer_id); //по manufacturer_id	ALTER TABLE oc_product ADD INDEX i_cost (cost); //по cost
По таким полям, как:

tax_class_id

weight_class_id

length_class_id

наверное не стоит индексировать?

Правильно ли я думаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в каких таблицах много записей, те и индексируйте. врядли у вас 5000 производителей =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в каких таблицах много записей, те и индексируйте. врядли у вас 5000 производителей =)

А синтаксис запроса правильный? Просто я не могу сейчас проверить правильность индексации.И я не указывал ограничение на кол-во индексируемых символов для текстового поля, это нормально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ни разу не писал запрос индексирования вручную, обычно тыкал на нужную иконку в phpmyadmin (ну или другой СУБД), а текстовые поля индексировать, наверно, все же не обязательно, редко их используют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ни разу не писал запрос индексирования вручную, обычно тыкал на нужную иконку в phpmyadmin (ну или другой СУБД), а текстовые поля индексировать, наверно, все же не обязательно, редко их используют.

То есть просто нажимали на кнопку Index напротив необходимого поля в меню Structure нужной таблицы? Этого разве достаточно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.