![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySql性能优化
放肆热爱
求知若渴,失之若愚。
展开
-
Join语句优化方式
前言工作中,大部分业务场景,都是多张表关联才会满足,很少有单张表的操作,这篇文章将会介绍多表关联种join的一些优化方法为了方便理解,首先创建测试表并写入测试数据,语句如下:CREATE DATABASE muke; /* 创建测试使用的database,名为muke */use muke; /* 使用muke这个database */drop table if exists t1; /* 如果表t1存在则删除表t1 */CREATE TABLE `t1` ( /* 创建表t1 */`id`原创 2020-06-07 14:08:44 · 908 阅读 · 0 评论 -
优化分页查询
前言很多时候,我们写分页查询的时候,只是单纯的想把结果查询出来就好了,但是有没有想过,自己写的分页查询效率会怎么,数据少的是没太大影响,但是多了就会有影响了,所以这篇简单介绍下分页查询的一些基本优化比如下面的sqlselect a,b,c from t1 limit 10000,10;表示从表 t1 中取出从 10001 行开始的 10 行记录。看似只查询了 10 条记录,实际这条 SQL 是先读取 10010 条记录,然后抛弃前 10000 条记录,然后读到后面 10 条想要的数据。因此要查询一原创 2020-06-01 13:46:41 · 1914 阅读 · 1 评论 -
如果优化order by和group by查询
前言在工作中,我们应该经常会遇到需要对查询的结果进行排序或者分组的情况。你是否会在意这两类 SQL 的执行效率呢?这篇文稿就一起讨论下如何优化 order by 和 group by 语句。order by 原理在优化 order by 语句之前,需要先了解 MySQL 中排序的相关知识点和原理,为了方便讲解过程举例说明,首先创建一张测试表,建表及数据写入语句如下:use muke; /* 使用muke这个database */drop table if exis原创 2020-06-01 09:21:45 · 730 阅读 · 0 评论 -
如何优化数据导入?
前言有些时候我们可能会遇到批量数据导入的场景,所以有些时候是很耗时的,这篇文章就介绍一些加快导入的方法一次插入多行的值插入行所需的时间由以下因素决定(参考MySQL 5.7参考手册:8.2.4.1优化INSERT语句)连接:30%向服务器发送查询:20%解析查询:20%插入行:10% * 行的大小插入索引:10% * 索引数结束:10%可发现大部分时间耗费在客户端与服务端通信的时间,因此可以使用 insert 包含多个值来减少客户端和服务器之间的通信。我们通过实验来验证下一次插入多行原创 2020-05-29 11:28:27 · 659 阅读 · 0 评论 -
条件字段有索引,为什么查询也这么慢?
前言大家都知道索引可以提高查询速度,但是有些时候会发现,有了索引反而查询变得比之前还慢了,甚至索引没起作用,那到底是因为什么,这篇文章就带着大家了解其中的原因下面会讲解几种有索引但是查询不走索引导致查询慢的场景。函数操作@查询数据时,可能很多时候会借助一些函数实现查询。有时可能我们关注的重心在是否能查出结果,往往忽略了查询的效率。现在就一起研究对条件索引字段做函数操作,是否能用到索引?...原创 2020-05-29 09:21:24 · 1240 阅读 · 0 评论 -
如何分析SQL执行效率(下)
前言这篇接着上篇继续介绍show profile 和 trace 分析sql的方法一 show profile 分析慢查询有时需要确定 SQL 到底慢在哪个环节,此时 explain 可能不好确定。在 MySQL 数据库中,通过 profile,能够更清楚地了解 SQL 执行过程的资源使用情况,能让我们知道到底慢在哪个环节。可以通过配置参数 profiling = 1 来启用 SQL 分析。该参数可以在全局和 session级别来设置。对于全局级别则作用于整个MySQL 实例,而 session原创 2020-05-28 15:03:25 · 830 阅读 · 0 评论 -
如何分析SQL执行效率(上)
前言SQL优化对于一枚程序员来说是至关重要的,并且大部分面试中,都会问道有关sql优化的一 些问题,这里将带着大家学会如何分析sql执行效率,首先要想优化一条sql语句,前提是我们要能够定位到查询慢的sql语句,并对其进行分析,找到慢查询的圆心,然后进行优化。定位慢 SQL大家在工作中测试的时候偶尔会碰到查询结果,超过一定时间才返回,这时我们就应该考虑是不是慢查询导致的,接下来让我们看看如果定位慢sql语句一 通过慢查询日志如果需要定位到慢查询,一般的方法是通过慢查询日志来查询的,MySQL原创 2020-05-28 15:01:44 · 1735 阅读 · 0 评论 -
索引提高查询速度原理
索引使用场景1.在一个或者一些字段需要频繁用作查询条件,并且表数据较多的时候,创建索引会明显提高查询速度,因为可由全表扫描改成索引扫描。2.对于需要频繁新增和修改记录的表,最好不要创建索引.索引原理不管数据表有无索引,数据缓冲区中查找所需要的数据,如果数据缓冲区中没有需要的数据时,服务器进程才去读磁盘。1、无索引,直接去读表数据存放的磁盘块,读到数据缓冲区中再查找需要的数据。2、有索引,先读入索引表,通过索引表直接找到所需数据的物理地址,并把数据读入数据缓冲区中。...原创 2020-05-28 14:49:08 · 1017 阅读 · 0 评论