摘要: 一、Show Profile是什么? 是MySql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量。 默认情况下,参数处于关闭状态,并保存最近15次的运行结果。 二、分析步骤 1.开启功能,默认是关闭,使用前需要开启。 3、运行SQL select * from emp group by id%20 order by 5; 4、查看结... 阅读全文
posted @ 2018-06-17 16:20 猴子特种兵 阅读(180) 评论(0) 推荐(0)
摘要: 一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能 二、参数说明 slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) long_query_time 查询超过多少秒才记录 三、... 阅读全文
posted @ 2018-06-17 16:03 猴子特种兵 阅读(129) 评论(0) 推荐(0)
摘要: order By 关键字优化 1.尽量使用index方式排序,避免使用Filesort方式排序。 2.Mysql支持两种排序方式,Filesort和Index,Index效率高, 它指Mysql扫描索引本身完成排序。FileSort排序方式效率低。 order by满足两种情况,会使用index排序 1.order by 语句使用索引最左前列 2.使用where子句和order By子句条件... 阅读全文
posted @ 2018-06-17 15:49 猴子特种兵 阅读(3620) 评论(0) 推荐(1)
摘要: 1.如果索引了多列,要遵守最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列。 2.不在索引上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引丢失而转向全表扫描。 3.存储引擎不能使用索引中范围条件右边的列。(范围条件后的列索引丢失) 4.尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select * 5.Mysql使用不等于(!=或... 阅读全文
posted @ 2018-06-17 15:40 猴子特种兵 阅读(176) 评论(0) 推荐(0)
摘要: 聚集索引: 简单概念:一个表中根据主键创建的一棵B+树,索引的叶子节点存放了表中所有的记录,存储记录在物理位置上是连续的,一个叶子节点存放一条对应的记录(PS:是根据主键创建的B+树,叶子节点存数据记录) 。 举个例子(以汉语字典为例): 汉语字典的正文本身就是一个聚集索引,比如我们要查“安”字,由于汉语词典的拼音排序是从“a”开始到“z”结尾的,则“安”字自然而然就排在字典前部,若翻遍了所... 阅读全文
posted @ 2018-06-17 15:17 猴子特种兵 阅读(899) 评论(0) 推荐(0)
摘要: 存在某一节点高度过高 阅读全文
posted @ 2018-06-17 14:50 猴子特种兵 阅读(227) 评论(0) 推荐(0)
摘要: 1.索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。 可以理解为“排好序的快速查找数据结构” 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 2、优势 类似大学图书馆建书目索引,提高数据检索效率,降低数据库的... 阅读全文
posted @ 2018-06-17 14:19 猴子特种兵 阅读(242) 评论(0) 推荐(0)
摘要: explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了。 mysql> explain select * from servers; +----+-------------+---------+------+---------------+------+------... 阅读全文
posted @ 2018-06-17 13:50 猴子特种兵 阅读(291) 评论(0) 推荐(0)
摘要: MySQL的语句执行顺序 MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。 下面我们来具体分析一下查询处理的每一个阶段 1.... 阅读全文
posted @ 2018-06-17 13:12 猴子特种兵 阅读(195) 评论(0) 推荐(0)
摘要: 3. Connection Pool: 连接池 管理缓冲用户连接,线程处理等需要缓存的需求。 负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。而连接线程的 阅读全文
posted @ 2018-06-17 12:47 猴子特种兵 阅读(274) 评论(0) 推荐(0)