mysql总结10------索引☆

       

1.概念:索引是优化数据库查询速度的重要途径mysql

 

2.索引的类型:sql

 

<1>.普通索引:最基本的索引类型,没有惟一性之类的限制。数据库

 

单例索引create index valIndex on t_tableA(val(20));ide

 

多列索引create index products_index on t_products(prod_name(20),prod_price);优化

 

说明:(1.)多列索引,同时查,索引生效。spa

(2.)只查prod_name(20),索引生效索引

(3.)只查prod_price,索引不生效it


联合索引,以左边的为准,单独用左边的会生效,单独用右边的不会生效。table

其实总结一下:以左边第一个或者全部会生效,其余的状况都不生效。class

eg.(A,B,C)三个联合索引,A和ABC会生效,其余的状况下不生效。



<2>.惟一索引:和普通索引基本相同,可是全部的索引列只能出现一次,保持惟一性。

           create unique index valIndex2 on t_tableB(val(20));

           

<3>.主键索引主键索引是一种特殊的惟一索引在创建主键时自动建立

 

<4>.全文索引:语法同普通索引相同,就是能够在文本类型列上能够建立索引。

(全文索引能够在varchar或text类型上建立)           

 

3.索引的缺点

<1>.虽然索引大大提升了查询速度,可是会下降更新表的速度

好比对表的insert、update、delete操做。

由于更新表时,mysql不单单要保存数据,还要保存索引文件

 

<2>.创建索引会占用磁盘空间若是在一个大表上建立了多种索引组合,索引文件会膨胀的很快。

 

4.注意事项:

<1>.索引是创建在经常使用的列上,好比你常常根据某一列(用户名,密码)去查数据

<2>.索引至关于字典前面的目录。

<3>.加不加索引要权衡一下是查询多,仍是update,insert,delete多!!!

 

《4》并非全部的表都适合加索引的!!

 

①记录少是不要加索引!

②每次查询的数据占总的数量很大时,不要加索引。

③多列索引:对查询频率高的列放在前面。

④数据库量很大,而且每次查询的数据占总量比较少时,加索引谁体会到明显的效率!!

相关文章
相关标签/搜索