7.24 MySQL索引分类
主键索引:针对于表中主键创造的索引。默认自动创造,只能有一个。关键字:PRIMARY
唯一索引:避免同一个表中某数据列的值重复。可以有多个。关键字:UNIQUE
常规索引:快速定位特定数据。可以有多个。
全文索引:全文索引查找的是文本中的关键字,而不是比较索引中的值。可以有多个。关键字:FULLTEXT。
在innoDB存储引擎中,根据索引的储存形式,又可以分为以下两种:
聚集索引:将数据存储和索引放到了一块,索引结构的叶子节点保存了行数据。必须有,而且只有一个。
二级索引:将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键,可以存在多个。
聚集索引选取规则:
如果存在主键,主键索引就是聚集索引
如果不存在主键,将使用第一个唯一索引作为聚集索引
如果表没有主键,或没有合适的唯一索引,则lnnoDB会自动生成一个rowid作为隐藏的聚集索引、
索引效率:
例:selectfrom user where id=10;
selectfrom user where name='Arm'
//id为主键,name字段创建的有索引。
问:以下SQL语句,哪个执行效率高?为什么?
答:id更高,id为主键,即为聚集索引可直接查找对应数据。Arm为二级索引,需要先搜索到主键,再通过主键聚集索引查找对应数据。
索引语法
创建索引
CREATE [UNIQYE|FULLTEXT] INDEX index_name ON table_name(index_col_name,...);
查看索引
SHOW INDEX FROM table_name;
删除索引
DROP INDEX index_name ON table_name;
查询索引
shoe index from tb_user(\G)//两种格式
创建唯一索引
CREATE UNIQYE INDEX index_name ON table_name(index_col_name,...);
浙公网安备 33010602011771号