索引分类
单列索引:一个索引只包含一个列。
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。