在从事osCommerce-3的工作时,我得到了类别的表结构& categories_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“
这个indexing.What的用途是什么?它意味着什么?
发布于 2012-04-03 19:45:28
你提到的三个代币
"idx_categories_desc_categories_id",
"idx_categories_desc_language_id",
"idx_categories_desc_categories_name"只是名字-它们没有什么特别之处。它们可以被称为"foo“、"bar”和"baz“,那就太好了。
它们遵循osCommerce命名约定,即使用idx_作为索引,然后是表的名称,然后是键字段。但这只是开发人员的约定;数据库并不需要这样的约定。
发布于 2012-04-03 17:26:30
这三个索引是为括号中指定的表(categories_id、language_id、categories_name)创建的。KEY关键字是INDEX关键字的同义词。它的背后并不是什么特别的魔法。
我猜这三个索引用于加速这些表上的数据检索/排序操作。
顺便说一句,索引"idx_categories_desc_categories_id“是冗余的,"categories_id”已经包含在主键上的复合索引的左边部分。
https://stackoverflow.com/questions/9998110
复制相似问题