Mysql索引详解
Posted 兰陵笑笑苼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql索引详解相关的知识,希望对你有一定的参考价值。
mysql索引详解
接触web开发,多多少少会被问及到Mysql的索引,掌握好Mysql理论知识,可以更好的帮助我们理解数据库。
索引是什么?
通俗的讲,就是一本字典的目录,方便我们快捷的找到数据。但是这是一般的理解,但作为程序员必须要知道其原理是什么:索引是帮助Mysql高效获取数据的数据结构,记住是数据结构。常见的索引结构有: B树, B+树和Hash。在数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这样就可以在数据结构的基础上实现高级查找算法,这种数据结构就是索引。可以理解为排好序的快速查找数据结构
索引的优点
- 提高数据检索的效率,降低数据库的IO成本,这也是主要的原因
- 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗
- 加快查询速度
索引的缺点
- 索引也是一张表,保存了主键与索引字段,并指向实体表的记录,索引索引列也会占用磁盘空间。
- 虽然索引大大提高了查询速度,同时也会降低更新表的速度,如对表进行insert,update和delete,Mysql不仅要保存数据,还要保存一下索引文件每次更新数据,索引文件也会更新索引文件,占用系统资源
什么情况下需要索引
- 频繁作为查询条件的字段应该创建索引
- 查询中与其他表关联的字段,外键关系建立索引
- 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
- 查询中统计或者分组字段
哪些情况下不适合索引
- 表记录太小,这个时候索引起不到什么作用
- 经常增删改的表,前面我们说过,增删改同时会修改索引文件
- 数据重复的表,为它建立索引就没有太大的实际效果
如何使用
注意主键会自动建立唯一索引
创建索引的方法:
1、创建索引,例如 create index <索引的名字> on table_name (列的列表);
2、修改表,例如 alter table table_name add index[索引的名字] (列的列表);
3、创建表的时候指定索引,例如create table table_name ( […], INDEX [索引的名字] (列的列表) );
查看表中索引的方法:
show index from table_name; //查看索引
索引的类型及创建例子:
1.PRIMARY KEY (主键索引)
mysql> alter table table_name add primary key (
name)
2.UNIQUE 或 UNIQUE KEY (唯一索引)
mysql> alter table table_name add unique (
column)
3.FULLTEXT (全文索引)
mysql> alter table table_name add fulltext (
column)
4.INDEX (普通索引)
mysql> alter table table_name add index index_name (
column` )
5.多列索引
mysql> alter table
table_nameadd index index_name (
column1,
column2,
column3` )
以上是关于Mysql索引详解的主要内容,如果未能解决你的问题,请参考以下文章