![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MYSQL语句优化
文章平均质量分 88
lppl010_
这个作者很懒,什么都没留下…
展开
-
MySQL中的semi-join
https://www.linuxidc.com/Linux/2015-05/117523.htm1. 背景介绍什么是semi-join?所谓的semi-join是指semi-join子查询。 当一张表在另一张表找到匹配的记录之后,半连接(semi-jion)返回第一张表中的记录。与条件连接相反,即使在右节点中找到几条匹配的记录,左节点 的表也只会返回一条记录。另外,右节点的表一条记录也不会返回。...转载 2018-05-13 12:49:07 · 175 阅读 · 0 评论 -
semi join 生效条件
http://blog.163.com/li_hx/blog/static/18399141320150253652874/一概述MySQL子查询优化的技术或优化策略,包括三种,分别为:1 semi-join:半连接优化技术,本质上是把子查询上拉到父查询中,与父查询的表做join/semi-join的操作。关键词是“上拉”。2 Materialization:物化子查询,子查询的结果通常缓存在内存...转载 2018-05-13 19:01:01 · 3169 阅读 · 0 评论 -
explain 返回结果中 ,语句的执行顺序
https://www.cnblogs.com/elvinle/archive/2017/01/03/6237147.html正确的方式是, 从id大的语句开始看, id相同的语句, 从上到下依次执行.记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的.那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理.当Mysql Server的...转载 2018-05-13 19:07:38 · 2232 阅读 · 0 评论 -
MySQL中的semi-join
http://tech.it168.com/a2013/0506/1479/000001479749.shtml1. 背景介绍什么是semi-join?所谓的semi-join是指semi-join子查询。 当一张表在另一张表找到匹配的记录之后,半连接(semi-jion)返回第一张表中的记录。与条件连接相反,即使在右节点中找到几条匹配的记录,左节点 的表也只会返回一条记录。另外,右节点的表一条记...转载 2018-05-13 19:08:25 · 12376 阅读 · 1 评论 -
分页查询优化 之 延迟关联
http://blog.itpub.net/22664653/viewspace-1176153/【背景】 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下。使用工具查看数据库正在执行的sql ,排在前面的大部分是:SELECT id, cu_id, name, info, biz_type, gmt_create, gmt_modified,start_time, e...转载 2018-05-13 23:18:47 · 755 阅读 · 0 评论 -
MySQL大数据分页的优化思路和索引延迟关联
https://www.cnblogs.com/shangzekai/p/4715408.htmlMySQL大数据分页的优化思路和索引延迟关联 之前上次在部门的分享会上,听了关于MySQL大数据的分页,即怎样使用limit offset,N来进行大数据的分页,现在做一个记录:首先我们知道,limit offset,N的时候,MySQL的查询效率特别的低,注意是在limit大数据量的时候,测试的表的...转载 2018-05-13 23:25:56 · 418 阅读 · 0 评论 -
GROUP BY Optimization
https://dev.mysql.com/doc/refman/5.7/en/group-by-optimization.html8.2.1.14 GROUP BY OptimizationThe most general way to satisfy a GROUP BY clause is to scan the whole table and create a new temporary ...转载 2018-05-14 09:15:04 · 176 阅读 · 0 评论 -
MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描)
http://www.jb51.net/article/85362.htm满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有)。在某些情况中,MySQL能够做得更好,即通过索引访问而不用创建临时表。 为GROUP BY使用索引的最重要的前提条件是所有GROUP BY列引用同一索引的属性,并...转载 2018-05-14 09:19:17 · 1004 阅读 · 0 评论 -
MySQL大数据量分页查询方法及其优化
https://www.cnblogs.com/geningchao/p/6649907.htmlMySQL大数据量分页查询方法及其优化---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适应场景: 适用于数据量较少的情况(元组百/千级)---原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果...转载 2018-05-14 09:22:02 · 228 阅读 · 0 评论 -
MySQL查询where条件的顺序对查询效率的影响
https://www.cnblogs.com/acode/p/7489258.html看到有资料说,where条件的顺序会影响查询的效率,根据的逻辑是:where条件的运行是从右到左的,将选择性强的条件放到最右边,可以先过滤掉大部分的数据(而选择性不强的条件过滤后的结果集仍然很大),在根据其它条件过滤时,需要比较的数据量就少,提高查询的效率。当我看到这个逻辑时,自我认为不是太合理,数据库引擎在执...转载 2018-06-26 23:20:32 · 4850 阅读 · 1 评论 -
mysql5.7开启慢查询日志
https://blog.csdn.net/keketrtr/article/details/78673565 MySql提供慢SQL日志的功能,能够记录下响应时间超过一定阈值的SQL查询,以便于我们定位糟糕的查询语句。首先,查询当前mysql数据库是否开启了慢查询日志功能:show VARIABLES like '%slow%';slow_query_log的值是ON,代...转载 2018-09-12 01:30:31 · 370 阅读 · 0 评论 -
Mysql Range Optimization
https://dev.mysql.com/doc/refman/8.0/en/range-optimization.htmlRange OptimizationThe range access method uses a single index to retrieve a subset of table rows that are contained within one or sev...转载 2019-01-31 15:28:37 · 281 阅读 · 0 评论 -
漫谈MySQL索引与字段儿长度的关系
https://blog.csdn.net/houyefeng/article/details/81628781在数据库开发中,索引是优化查询性能的重要手段,本文是对使用MySQL 5.6.28进行索引优化时遇到的问题一个总结,目的是为了加深对索引长度和字段长度的理解,理清这两个长度的关系,本文件均使用InnoDB存储引擎、utf8字符集、索引方法为btree。在使用MySQL时常用的数据...转载 2019-01-31 21:26:36 · 558 阅读 · 0 评论 -
MySQL,一千个不用 Null 的理由
https://www.itcodemonkey.com/article/1405.html MySQL,一千个不用 Null 的理由2017-11-30 09:32:48 分类:数据库开发来自:xrzs的博客港真,Null 貌似在哪里都是个头疼的问题,比如 Java 里让人头疼的 NullPointerException,为了避免猝不及防的空指针异常,千百年来程序猿们不得不在...转载 2019-02-01 00:00:58 · 195 阅读 · 0 评论 -
MySQL中计算索引长度
https://www.2cto.com/database/201610/555295.html 首先,我们来看一道题目,针对表t,包含了三个字段a、b、c,假设其默认值都非空,现创建组合索引index(a,b,c) 分析select * from t where a=1 and c=1 和select * from t where a=1 and b=1区别?首先创建表分别执...转载 2019-01-27 23:27:03 · 3423 阅读 · 0 评论 -
GROUP BY Optimization
https://dev.mysql.com/doc/refman/5.7/en/group-by-optimization.htmlThe most general way to satisfy a GROUP BY clause is to scan the whole table and create a new temporary table where all rows from each...转载 2018-05-13 11:52:36 · 134 阅读 · 0 评论 -
聊聊MySQL的group by分组 #W02
https://blog.csdn.net/u012671917/article/details/79837009最近接触了报表业务,里面有各种分组、求和操作。整理大脑中对分组的知识碎片,并查阅相关资料,在这里对group 做一个知识的梳理。什么是分组?假设有一张表articles, 有 id(主键)、author_id(作者)、type_id(类型)、created_at等字段。[sql] vi...转载 2018-05-13 00:53:27 · 210 阅读 · 0 评论 -
[慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定
http://www.cnblogs.com/zhengyun_ustc/p/slowquery1.html写在前面的话: 不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程; 不要求每个人一定知道线上(现在或未来)哪张表数据量大,哪张表数据量小; 但把mysql客户端(如SQLyog,如HeidiSQL)放在桌面上,时不时拿...转载 2018-05-12 12:27:47 · 206 阅读 · 0 评论 -
MySQL in查询优化
https://blog.csdn.net/gua___gua/article/details/47401621MySQL in查询优化<一>原创 2015年08月10日 17:57:565137开发说他写了个SQL特别慢,让看看。[html] view plain copyselect * from t_channel where id_ in(select distinct cdb...转载 2018-04-20 10:00:59 · 640 阅读 · 0 评论 -
MySQL exists的用法介绍
https://www.cnblogs.com/glory-jzx/archive/2012/07/19/2599215.html有一个查询如下:1SELECT c.CustomerId, CompanyName 2FROM Customers c 3WHERE EXISTS( 4 SELECT OrderID FROM Orders o 5 WHERE o.CustomerI...转载 2018-04-20 10:01:40 · 628 阅读 · 0 评论 -
Whats the difference between “Using index” and “Using where; Using index” in the EXPLAIN
https://stackoverflow.com/questions/25672552/whats-the-difference-between-using-index-and-using-where-using-index-in-the14down votefavorite4In the extra field of the explain in mysql you can get:Using...转载 2018-04-21 00:09:14 · 264 阅读 · 0 评论 -
MySQL 执行计划(Using where,Using index 和 Using index condition)
https://segmentfault.com/q/1010000004197413关于执行计划的 Extra 字段,对这几个取值有一些疑惑,我说一下我的大致理解。Using where:表示优化器需要通过索引回表查询数据;Using index:表示直接访问索引就足够获取到所需要的数据,不需要通过索引回表;Using index condition:在5.6版本后加入的新特性(Index Co...转载 2018-04-21 00:10:04 · 780 阅读 · 0 评论 -
MySQL优化案例---半连接(semi join)优化方式 导致的查询性能低下
http://blog.163.com/li_hx/blog/static/183991413201582425723812?utm_source=tuicoolMySQL V5.6.x/5.7.x SQL查询性能问题一 简单创建一表,并使用存储过程插入一部分数据CREATE TABLE users ( user_id int(11) unsigned NOT NULL, user_name ...转载 2018-05-17 09:31:07 · 316 阅读 · 0 评论 -
回表
http://quant.dataguru.cn/thread-604751-1-1.html如果索引的列在select子句中就不需要回表如果select子句中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就叫回表老师说的索引三大特性,其中有一个索引存储列值(还有行的rowid)。如果select子句中,只有索引列,只需访问索引对象即可,不应回表。如果select子句中包含非索引列,就要...转载 2018-05-11 14:05:51 · 2594 阅读 · 0 评论 -
索引优化系列二 回表
http://blog.51cto.com/2853725/1421637--索引回表读(TABLE ACCESS BY INDEX ROWID)的例子drop table t purge;create table t as select * from dba_objects;create index idx1_object_id on t(object_id);--试验1set autotrac...转载 2018-05-11 14:16:12 · 560 阅读 · 0 评论 -
MySQL的SQL Profiler性能分析器
http://blog.51cto.com/2853725/1547197MySQL的SQL Profiler性能分析器原创14156993062014-08-31 21:29:19评论(0)299人阅读MySQL从5.0开始提供了 SQL Profiler性能分析器,其主要用途是显示 sql 执行的整个过程中各项资源的使用情况。这个工具可以很好的展示出 SQL 的性能问题。下面我们从五个角度并举...转载 2018-05-11 14:46:57 · 899 阅读 · 0 评论 -
【慢查优化】 建索引时注意字段选择行&范围查询注意组合索引的字段顺序
http://www.cnblogs.com/zhengyun_ustc/p/slowquery2.html写在前面的话:之前曾说过“不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程”,但对于字段选择性差意味着什么,组合索引字段顺序意味着什么,要求每个人必须了解;重复上一次的话:把mysql客户端(如SQLyog,如HeidiSQL)放在...转载 2018-05-12 11:54:14 · 224 阅读 · 0 评论 -
select * from a,b是否为内连接?
https://blog.csdn.net/qingmengwuhen1/article/details/73611537今天代码中写脚本用了select * from a,b where a.id = b.id.然后同事说让我写内连接,我说这就是内连接啊。结果同事说这怎么会是内连接,这是笛卡尔乘积。我当时有点惊呆了,在原来公司都是这样写啊,难道这不是内连接,后来百度一下,发现:单纯的se...转载 2019-02-02 17:03:15 · 663 阅读 · 0 评论