Что означает «idx_categories_desc_categories_name» в osCommerce - PullRequest
0 голосов
/ 03 апреля 2012

во время работы над osCommerce-3 я получил структуру таблицы для category & category_description как

CREATE TABLE IF NOT EXISTS `osc_categories` (
  `categories_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `categories_image` varchar(255) DEFAULT NULL,
  `parent_id` int(10) unsigned DEFAULT NULL,
  `sort_order` int(11) DEFAULT NULL,
  `date_added` datetime DEFAULT NULL,
  `last_modified` datetime DEFAULT NULL,
  PRIMARY KEY (`categories_id`),
  KEY `idx_categories_parent_id` (`parent_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; 

CREATE TABLE IF NOT EXISTS `osc_categories_description` (
  `categories_id` int(10) unsigned NOT NULL,
  `language_id` int(10) unsigned NOT NULL,
  `categories_name` varchar(255) NOT NULL,
  PRIMARY KEY (`categories_id`,`language_id`),
  KEY `idx_categories_desc_categories_id` (`categories_id`),
  KEY `idx_categories_desc_language_id` (`language_id`),
  KEY `idx_categories_desc_categories_name` (`categories_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

здесь я не получаю значение индексации

"idx_categories_desc_categories_id",

"idx_categories_desc_language_id",

"idx_categories_desc_categories_name"

Для чего используется эта индексация. Что это значит?

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Три токена, которые вы упомянули

"idx_categories_desc_categories_id",

"idx_categories_desc_language_id",

"idx_categories_desc_categories_name"

это просто имена - в них нет ничего особенного. Их можно было бы назвать «foo», «bar» и «baz», и это было бы просто замечательно.

Они придерживаются соглашения по присвоению имен osCommerce, в котором для индексов используется idx_, затем имя таблицы, а затем ключевое поле. Но это всего лишь соглашение разработчика; это не требуется для базы данных.

1 голос
/ 03 апреля 2012

Эти три индекса создаются для таблиц, указанных в скобках (category_id, language_id, Categories_name). Ключевое слово KEY является синонимом ключевого слова INDEX. За этим нет особой магии.

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

Индекс "idx_categories_desc_categories_id", кстати, является избыточным, "category_id" уже покрывается левой частью составного индекса первичного ключа.

...