在osCommerce-3上工作时,我获得了类别和表格的表格结构。 categories_description as
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”
这个索引有什么用。它是什么意思?
答案 0 :(得分:1)
为括号中指定的表(categories_id,language_id,categories_name)创建这三个索引。 KEY
关键字是INDEX
关键字的同义词。它背后没有特别的魔力。
我猜这三个索引用于加速这些表上的数据检索/排序操作。
索引“idx_categories_desc_categories_id”是冗余的,“categories_id”已经被主键上的复合索引的左侧部分覆盖。
答案 1 :(得分:1)
你提到的三个代币
"idx_categories_desc_categories_id",
"idx_categories_desc_language_id",
"idx_categories_desc_categories_name"
只是名字 - 他们没什么特别的。他们可以被称为“foo”,“bar”和“baz”,这本来就没问题。
他们遵守使用idx_索引的osCommerce命名约定,然后是表的名称,然后是关键字段。但这只是开发者的惯例;它不是数据库所必需的。