MySql索引

来源:互联网 发布:手机股票行情大盘软件 编辑:程序博客网 时间:2024/06/04 21:02

首先谈谈数据库对象之索引(mysql)

mysql索引分成4种:

1.主键索引

主键索引主要通过primary key来创建,主键索引可以作为其他表的外键,而且不能为null,一张表只有一个主键索引,主键索引具有唯一性。

2.唯一索引

唯一索引在数据库里面一个存在多个,还可以为null,但是不为空的记录只能有一条且不能重复,不能被其他表所引用。

3.普通索引

普通索引通过key或index关键字来创建,唯一的作用就

4.全文索引

全文索引在mysql里面使用的几率基本上算是废了,因为全文索引对内容的索引都不知道到底索引了些神马,全文索引在索引的时候是采用不常用的关键词进行索引(你知道哪些不常用吗?),所以不知道到底应该查询什么,造成这个原因的主要问题是,如果内容过多,比如1000个字符,如果每种可能都算一下在作为索引,那将是多么庞大的开销,索引全文索引在数据库里面基本不使用。是为了增加查询效率。

下面说说这些索引的创建方式:


主键索引:

create table test

(

id int primary key auto_increment

);

alter table table_name add constraint index_name primary key (column_name);

唯一索引:

create table test

(

column_name int(3) unique

);

alter table table_name add constraint index_name unique (column_name...);

create unique index index_name on table_name (column_name...);

普通索引:

create index index_name on table_name (column_name...)

全文索引:

create table test

(

content varchar(255),

fulltext(content)

);

查看语句使用了哪些索引可以使用 explain关键词

索引的好处:

1.增加查询效率,如果不使用索引进行查询,执行下面这条语句的时候将会执行表的记录条数的次数

select * from test where id = 1;  

即使看到上面的条件是1,没有索引的时候也不会停止查询。因为数据库里面并不能确定只有一条记录复合条件。如果有100000条数据就要走100000次。

大家应该知道索引的算法是使用的B-TREE,首先将中间的数据去出来,然后在通过二叉树的算法进行排列。如果童谣是100000条数据那么索引查询值需要10多次就能完成查询

索引的弊端:

1.占硬盘空间

2.对于数据的增删改操作比较耗时


索引使用的注意事项:

1.如果创建了多列索引,只有左边的才能使用到索引,右边的使用不了

2.查询字符串的时候如果是数字必须带上单引号,不然使用不了索引

3.模糊查询的时候前面不要使用通配符,不然使用不了索引

4.当查询条件里面出现了or关键字的时候必须所有字段都有索引,不然使用不了索引




原创粉丝点击