MySQL 索引的分类、何时使用、何时不使用、何时失效_第1页
MySQL 索引的分类、何时使用、何时不使用、何时失效_第2页
MySQL 索引的分类、何时使用、何时不使用、何时失效_第3页
MySQL 索引的分类、何时使用、何时不使用、何时失效_第4页
MySQL 索引的分类、何时使用、何时不使用、何时失效_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MySQL索引的分类、何时使用、何时不使用、何时失效?1、分类MySQL索引分为普通索引、唯一索引、主键索引、组合索引、全文索引。索引不会包含有null值的列,索引项可以为null(唯一索引、组合索引等),但是只要列中有null值就不会被包含在索引中。(1)普通索引:

createindexindex_nameontable(column);或者创建表时指定,createtable(...,indexindex_namecolumn);(2)唯一索引:

类似普通索引,索引列的值必须唯一(可以为空,这点和主键索引不同)createuniqueindexindex_nameontable(column);或者创建表时指定uniqueindex_namecolumn(3)主键索引:

特殊的唯一索引,不允许为空,只能有一个,一般是在建表时指定primarykey(column)(4)组合索引:

在多个字段上创建索引,遵循最左前缀原则。altertabletaddindexindex_name(a,b,c);(5)全文索引:

主要用来查找文本中的关键字,不是直接与索引中的值相比较,像是一个搜索引擎,配合matchagainst使用,现在只有char,varchar,text上可以创建全文索引。在数据量较大时,先将数据放在一张没有全文索引的表里,然后再利用createindex创建全文索引,比先生成全文索引再插入数据快很多。2、何时使用索引MySQL每次查询只使用一个索引。与其说是“数据库查询只能用到一个索引”,倒不如说,和全表扫描比起来,去分析两个索引B+树更加耗费时间。所以whereA=aandB=b这种查询使用(A,B)的组合索引最佳,B+树根据(A,B)来排序。主键,unique字段;和其他表做连接的字段需要加索引;在where里使用>,≥,=,<,≤,isnull和between等字段;使用不以通配符开始的like,whereAlike'China%';聚集函数MIN(),MAX()中的字段;orderby和groupby字段;3、何时不使用索引表记录太少;数据重复且分布平均的字段(只有很少数据值的列);经常插入、删除、修改的表要减少索引;text,image等类型不应该建立索引,这些列的数据量大(假如text前10个字符唯一,也可以对text前10个字符建立索引);MySQL能估计出全表扫描比使用索引更快时,不使用索引;4、索引何时失效组合索引未使用最左前缀,例如组合索引(A,B),whereB=b不会使用索引;like未使用最左前缀,whereAlike'%China';搜索一个索引而在另一个索引上做orderby,whereA=aorderbyB,只使用A上的索引,因为查询只使用一个索引;or会使索引失效。如果查询字段相同,也可以使用索引。例如whereA=a1orA=a2(生效),whereA=aorB=b(失效)如果列类型是字符串,要使用引号。例如whereA='China',否则索引失效(会进行类型转换);在索引列上的操作,函数(upper()等)、or、!=(<>)、notin等;5、explain语句type字段为All,未使用索引;为ref,使用索引在公众号后端顶级架构师后台回复“架构整洁”,获取一份惊喜礼包。ALL:

全表扫描index:

索引全扫描range:

索引范围扫描,常用语<,<=,>=,between等操作ref:

使用非唯一索引扫描或唯一索引前缀扫描,返回单条记录,常出现在关联查询中eq_ref:

类似ref,区别在于使用的是唯一索引,使用主键的关联查询const/system:

单条

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论