MySQL非聚簇索引&&二級索引&&輔助索引

MySQL非聚簇索引&&二級索引&&輔助索引mysql

mysql中每一個表都有一個聚簇索引(clustered index ),除此以外的表上的每一個非聚簇索引都是二級索引,又叫輔助索引(secondary indexes)。sql

以InnoDB來講,每一個InnoDB表具備一個特殊的索引稱爲彙集索引。若是您的表上定義有主鍵,該主鍵索引是彙集索引。若是你不定義爲您的表的主鍵時,MySQL取第一個惟一索引(unique)並且只含非空列(NOT NULL)做爲主鍵,InnoDB使用它做爲彙集索引。若是沒有這樣的列,InnoDB就本身產生一個這樣的ID值,它有六個字節,並且是隱藏的,使其做爲聚簇索引。spa

聚簇索引:http://my.oschina.net/xinxingegeya/blog/474895.net

以下除主鍵外都是二級索引,或叫作輔助索引。code

> show create table article

******************** 1. row *********************
       Table: article
Create Table: CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `shortName` varchar(255) NOT NULL,
  `authorId` int(11) NOT NULL,
  `createTime` datetime NOT NULL,
  `state` int(11) NOT NULL,
  `totalView` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_short_name_title` (`title`,`shortName`),
  KEY `idx_author_id` (`authorId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
1 rows in set

=======END=======blog

相關文章
相關標籤/搜索