Jump to content
Sign in to follow this  
Petr

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

Recommended Posts

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

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` ) ;

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Индексирование - это хорошо. Но оптимизировать тоже надо не все подряд. У вас 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.