MySql的explain执行计划

explain是一个Mysql性能显示的工具,它显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。在开发当中我们一般用explain来查看索引的使用情况,explain你可以把它理解成为一个查看索引使用情况的工具

语法规则:explain [select 语句]

type=const 表示通过索引一次就找到了 
key=primary 表示使用了主键
type=all 表示为全表扫描
key=null 表示没用到索引

type=ref 这时认为是多个匹配行,在联合查询中,一般为REF

查看索引的方法

1.语法规则:show index from [表名称]

2.语法规则:show create table from [表名称]

在Mysql当中常见的索引使用有4种,分别为:

1.主键索引( Primary Key )

主键索引的原则和场景:

在开发当中我们往往需要对一些重复性的数据进行区分,那么这时我们就需要使用主键索引,主键索引既不能为null,也不能重复,更不能为空字符串。在id字段中出现最多,通常

在id字段中出现最多,通常还会配合自增长一起使用,主键索引也是所有索引当中查询速度最快的索引

添加主键:

语法规则:alter table 表名 add primary key(字段名称)

删除主键:

主键含有自动增长的特性,需要首先删除自增长的属性,否则就会报错

删除自动增长:alter table 表名 modify id int unsigned

然后:alter table 表名 drop primary key

添加自动增长:

语法规则:Alter table 表名 modify 字段名 字段类型 auto_increment

2.普通索引( Key )

普通索引的原则和场景:

在开发当中,如果我们仅仅是为了提升查询的效率但不需要用到任何的约束性行为,那么就可以使用普通索引

添加普通索引:

语法规则:create index 索引名称 on 表名称(字段名称)

删除普通索引:

语法规则: alter table 表名 drop index 索引的名称

3.唯一性索引(Unique)

唯一索引的原则和场景:

在开发当中,有时我们在网站使用用户名进行注册需要对用户进行唯一性约束,这时唯一性索引就可以起到约束的作用,同时唯一索引也能提高数据查找的速度,因此唯一性索引在开发中使用十分广泛

添加唯一索引:

语法规则:create unique index 索引的名称 on 表名(字段名称)

删除唯一索引:

语法规则: alter table 表名 drop index 索引的名称

唯一性索引的注意事项

1.在唯一索引当中,null是可以重复的

2.在唯一索引当中空字符串是不能重复的

唯一索引和主键的区别是什么?

答:主键索引不能是null也不能是空字符串且不能重复,而唯一索引可以为null,并且可以重复,但唯一索引如果是空字符串那么它是不能重复的,但它允许添加一次。

4.全文索引(FullText):这个索引其实被sphinx取代了其地位

最新文章

  1. java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间
  2. matlab的正则表达式讲解[转]
  3. JAVA NIO中selectedKeys返回的键集,对其中的SelectionKey执行操作之后,是否需要在selectedKeys()中对其执行remove 操作
  4. Scala模式匹配语言,java的替代者
  5. [Jobdu] 题目1527:首尾相连数组的最大子数组和
  6. Nginx配置一个自签名的SSL证书
  7. Cstring类
  8. WebView混合开发
  9. PAT1014
  10. <经验杂谈>介绍Js简单的递归排列组合
  11. HTTP头HOST
  12. Spring基础系列--AOP实践
  13. Flask 接入第三方云通讯平台时出现 {‘172001’:’网络错误’}
  14. k短路(A*)
  15. 缓存系列之二:CDN与其他层面缓存
  16. oracle 11gR2 ASM添加和删除磁盘
  17. 记两个国外CTF的弱pwn
  18. Nginx源码完全注释(8)ngx_errno.c
  19. POJ 1463 Strategic game(二分图最大匹配)
  20. MySQL合并多行

热门文章

  1. 数组a和&a区别
  2. http get(swift and oc)
  3. 第一次面试&第一次霸面
  4. --------------Hibernate学习(四) 多对一映射 和 一对多映射
  5. TortoiseSVN/TortoiseGIT文件夹或图标不显示,非Overlay Icon
  6. java类的继承的一些细节
  7. GET请求/百度贴吧 有bug
  8. nginx转发tomcat请求转成https后页面不能下载apk文件而是直接打开
  9. 记一次诡异的jetty问题
  10. 数值函数ROUND(四舍五入),TRUNC(不四舍五入),MOD