MySQL优化
文章平均质量分 95
UFO___
也不要小看悟能
展开
-
MySQL系列-优化之覆盖索引
1.什么是覆盖索引我们知道MySQL的B+Tree索引是用我们字段的数据来建立索引的,比如说我们的主键id字段,就是用所有的id来组织这颗索引树,如果我们再对name字段建立索引的话,这个二级索引就是用name字段的数据来组织这颗索引树。那么问题就来了,我们知道对于二级索引而言他的叶子节点存储了对应数据行的id(MySQL系列-B+Tree索引详解),也就是说最后我们的查询还是要通过主键id来...原创 2018-07-23 10:22:42 · 4557 阅读 · 4 评论 -
MySQL系列-优化之再谈索引及explain简介
1.再谈索引前面我出了一篇关于索引的博客MySQL系列-B+Tree索引详解,索引太重要了可以多谈谈,简单来说索引是排好序的快速查找的数据结构。一般来说一张表建立的索引不要超过5个,数据规模没有达到百万级别,建不建索引也没太大区别。2.索引的优势索引具备两个优势一 、可以快速查找二、他已经按建立索引的字段排好序了。3.索引的劣势一、索引也是存储在磁盘中的,需要占的空间比...原创 2018-07-04 23:39:06 · 376 阅读 · 0 评论 -
MySQL系列-优化之like关键字
like关键字我们也是经常使用,用来模糊查询用户名,那么like如何进行优化呢?这篇博客就简单讨论一下like的优化,但是真实的生产环境要比这复杂多了。1.%号不放最左边先创建表和索引。然后进行查询【explain select * from tb where name like 'e%';】可以看到我们的查询使用上了idx_name这个索引,因为我们的 'e%' 规定了只...原创 2018-07-23 11:55:17 · 15130 阅读 · 4 评论 -
MySQL系列-优化之count()
1.count()函数的作用count()函数有两个作用,一是统计表数据的行数,二是统计某列非空值得数量。我们用count(*)来统计行数,当然这个*可以是任意的常量,比如 1 'x' 666 之类的。count(row)用来统计某列非空值得数量,这个row是列名。2.count(1)会比count(*)快吗?答案是不会,起码在我的mysql5.5上是这样的。【当MyS...原创 2018-07-24 09:40:52 · 1195 阅读 · 0 评论 -
MySQL系列-优化之explain执行计划详解
1.id介绍这个id不是主键的意思,他是用来标识select查询的序列号,包含一组数字,表示查询中执行select子句或者操作表的顺序。会出现以下情况:id相同:按从上到下顺序执行id不同:id值越大,优先级越高,越先被执行id相同不同的同时存在:优先执行id值大的,如果id值相同,则按从上到下的顺序执行id为null表示是用来合并结果集的,在sql使用union关键字合并...原创 2018-07-07 17:37:42 · 6475 阅读 · 5 评论 -
MySQL系列-优化之精准解读in和exists
1.解读in和exists这两个关键字的区别主要是在于子查询上面,in是独立子查询,exists是相关子查询,例如:用in查询有员工的部门 :select dept_name from dept where id in (select dept_id from emp);用exists查询有员工的部门:select dept_name from dept where exi...原创 2018-07-26 17:42:02 · 1602 阅读 · 0 评论 -
MySQL系列-优化之join多表连接
1.先看一个单表案例有如下下数据表,只有主键id执行sql【explain select id,n1 from tb where n2='f' and n4>'c' order by n3 desc limit 1;】通过explain分析:不光是ALL全表扫描,而且还产生了一次内部排序using filesort,效率及其底下。那么如何建立索引呢?首先n2这个字...原创 2018-07-30 10:22:55 · 7010 阅读 · 0 评论 -
MySQL系列-优化之分页查询
1.分页查询之前先按索引排序我们经常会上一些小说网站看小说,他们总是会把最近更新了的小说放在最前面,也就是第一页,而很久没更新的就放在后面了。那么这样网站是如何实现的呢?我的猜想有一张小说表,表里面一个last_update表示最后更新字段,并且对这个字段建立了索引,按last_update从大到小排序之后再按需求的页面大小进行分页。那为什么分页查询总是要排序呢?由上面的例子可以看出,...原创 2018-07-30 15:26:33 · 1035 阅读 · 0 评论 -
MySQL系列-优化之查询索引优化
这篇博客我们来谈谈如何正确使用索引以及正确建立索引,当然在开发当中情况比这个复杂多了,还要根据业务实际情况来,这篇博客就只能算是入门了,要想继续进阶的话可以和公司的DBA混个两年,前提是他愿意要带你玩。话不多说,进入正题。如果不了解explain执行计划可以看我之前的文章MySQL系列-优化之explain执行计划详解说明:我使用的是mysq5.5,windows10操作系统。可能实验测试...原创 2018-07-22 22:27:23 · 470 阅读 · 0 评论