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

Создание индексов БД

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

Добрый день, может БД делать сразу с индексами? Я вот планирую для БД сделать запрос типа:

ALTER TABLE `oc_oc_category` ADD INDEX ( `parent_id` ) ;
ALTER TABLE `oc_category` ADD INDEX ( `top` ) ;
ALTER TABLE `oc_category` ADD INDEX ( `sort_order` ) ;
ALTER TABLE `oc_category` ADD INDEX ( `status` ) ;
ALTER TABLE `oc_category_description` ADD INDEX ( `language_id` ) ;
ALTER TABLE `oc_category_to_store` ADD INDEX ( `store_id` ) ;
ALTER TABLE `option` ADD INDEX ( `sort_order` ) ;
ALTER TABLE `oc_option_description` ADD INDEX ( `name` ) ;
ALTER TABLE `oc_option_value` ADD INDEX ( `option_id` ) ;
ALTER TABLE `oc_option_value_description` ADD INDEX ( `option_id` ) ;
ALTER TABLE `order` ADD INDEX ( `customer_id` ) ;
ALTER TABLE `oc_product` ADD UNIQUE INDEX ( `oc_product_id` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `model` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `sku` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `upc` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `manufacturer_id` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `sort_order` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `status` ) ;
ALTER TABLE `oc_product` ADD INDEX ( `date_available` ) ;
ALTER TABLE `oc_product_option` ADD INDEX ( `option_id` ) ;
ALTER TABLE `oc_product_option_value` ADD INDEX ( `oc_product_option_id` ) ;
ALTER TABLE `oc_product_option_value` ADD INDEX ( `oc_product_id` ) ;
ALTER TABLE `oc_product_option_value` ADD INDEX ( `option_id` ) ;
ALTER TABLE `oc_product_option_value` ADD INDEX ( `option_value_id` ) ;
ALTER TABLE `oc_product_tag` ADD INDEX ( `oc_product_id` ) ;
ALTER TABLE `oc_product_tag` ADD INDEX ( `tag` ) ;
ALTER TABLE `oc_url_alias` ADD INDEX ( `query` ) ;
ALTER TABLE `oc_url_alias` ADD INDEX ( `keyword` ) ;
ALTER TABLE `user` ADD INDEX ( `username` ) ;
ALTER TABLE `user` ADD INDEX ( `password` ) ;
ALTER TABLE `user` ADD INDEX ( `email` ) ;

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


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

Я бы не отказался от FOREIGN KEY с ON DELETE событием.

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


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

Я бы не отказался от FOREIGN KEY с ON DELETE событием.

Так никто бы не отказался, но тогда нужно менять тип таблиц и удалять код, выполняющий работу за FOREIGN KEY,
  • +1 1

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


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

...удалять тот код, выполняющий работу за FOREIGN KEY

ломать не строить :-D

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


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

Я не нашел ни одного FOREIGN KEY в базе. 1.5.1.3

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


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

Я не нашел ни одного FOREIGN KEY в базе. 1.5.1.3

а может оно и к лучшему )

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


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

а может оно и к лучшему )

Не правда, приведенный выше список отразится положительно на производительности БД?

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


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

Не правда, приведенный выше список отразится положительно на производительности БД?

Индексирование - это хорошо. Но оптимизировать тоже надо не все подряд. У вас 10000 юзеров на сайте?

Зачем это?

LTER TABLE `user` ADD INDEX ( `username` ) ;

ALTER TABLE `user` ADD INDEX ( `password` ) ;

ALTER TABLE `user` ADD INDEX ( `email` ) ;

А это зачем?

ALTER TABLE `oc_product` ADD UNIQUE INDEX ( `oc_product_id` ) ;

oc_product_id вроде и так PRIMARY KEY

Зато может быть стоит добавить уникальный индекс для seo_url.

cmd предлагал сделать триггеры или иные механизмы на уровне БД, которые позволят делать каскадное удаление. Чтобы вместе с удаление записи из таблицы товаров, еще куча всего удалялось. Но не уверен, что это ускорит работу.

P.S. Мечтаю провести профилирование реального интернет-магазина, чтобы выяснить, какие же в OpenCart узкие места.

  • +1 1

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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