乐趣区

关于mysql:MySQL-索引类型索引结构索引的操作

索引分类

单列索引:一个索引只蕴含一个列。

ALTER TABLE table_name ADD INDEX index_name (col);

复合索引:一个索引蕴含多个列。

ALTER TABLE table_name ADD INDEX index_name (col1, col2);

索引类型

主键索引:

ALTER TABLE table_name ADD PRIMARY KEY (col);

惟一索引:

索引列的值必须是惟一的,但容许 NULL 值。

ALTER TABLE table_name ADD UNIQUE index_name (col);

一般索引:

ALTER TABLE table_name ADD INDEX index_name (column_list);

全文索引:

ALTER TABLE table_name ADD FULLTEXT index_name (column_list);

索引构造

BTree 索引

Hash 索引

哈希索引(hash index)基于哈希表实现,只有准确匹配索引所有列的查问才无效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保留指向每个数据行所在的物理地址的指针。

索引的操作

创立索引:

ALTER TABLE table_name ADD INDEX index_name (column_list);

删除索引:

DROP INDEX index_name ON table_name;

查看索引:

SHOW INDEX FROM table_name\G
退出移动版