mysql之索引方面的知识点总结

系统 1676 0

索引的类型:

普通索引:这是最基本的索引类型,没唯一性之类的限制。

唯一性索引:和普通索引基本相同,但所有的索引列只能出现一次,保持唯一性。

主键:主键是一种唯一索引,但必须指定为 "PRIMARY KEY"

全文索引:全文索引的索引类型为 FULLTEXT 。全文索引可以在 VARCHAR 或者 TEXT 类型的列上创建。

索引的操作

使用 ALTER TABLE 语句创建索引。

alter table table_name add index index_name (column_list) ;

alter table table_name add unique (column_list) ;

alter table table_name add primary key (column_list) ;

使用 CREATE INDEX 语句对表增加索引。

create index index_name on table_name (column_list) ;

create unique index index_name on table_name (column_list) ;

删除索引

drop index index_name on table_name ;

alter table table_name drop index index_name ;

alter table table_name drop primary key ;

查看索引

show index from table_name;

如何使用索引

1 、在经常进行连接的字段,建立索引

2 、在排序或分组的列上建立索引

3 、在条件表达式中建立所因( where ),情况有两种

  不同值较多的列上使用索引,

  不同值较少的列上不适用索引

4 、待排序的列有多个,可以在这些列上建立复合索引

5 、可以建立短索引,例如:

   alter table table_name add index index_name(column_list(length))

   alter table test add index ab(`a`(3));

6 join 中出现的列需要建立索引

注意事项 :

1 、索引不会包含有 null 值的列

2 MySQL 查询只使用一个索引,因此如果 where 子句中已经使用了索引的话,那么 order by 中的列是不会使用索引的。因此数据  

库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多列的排序,如果需要最好给这些列创建复合索引。

3 、不要在列上进行运算

4 、以通配符 % _ 开头作查询时, mysql 不会使用索引。例如:

会使用索引 :SELECT * FROM mytable WHERE username like 'admin%'

不会使用索引 :SELECT * FROM mytable WHERE username like '%admin'

组合索引

组合索引的最左优先原则,组合索引的第一个字段必须出现在查询组句中,这个索引才会被用到。

如果有一个组合索引 (col_a,col_b,col_c)

下面的情况都会用到这个索引:

col_a = "some value";

col_a = "some value" and col_b = "some value";

col_a = "some value" and col_b = "some value" and col_c = "some value";

col_b = "some value" and col_a = "some value" and col_c = "some value";

对于最后一条语句, mysql 会自动优化成第三条的样子 ~~

下面的情况就不会用到索引:

col_b = "aaaaaa";

col_b = "aaaa" and col_c = "cccccc";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mysql之索引方面的知识点总结


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论