Mycat之日志分析 select * from travelrecord order by id limit 100000,100 的执行过程
解释:mycat在执行分页排序的时候,分成2步走.如果M很大,会改写成 limit 0,m+n, 然后在每个MYSQL分片上排序后还需要在mycat汇总输出,所以会很慢。下面是详细执行计划以及日志输出(目前针对这种大分页数据,性能很差,尽量避免,再没有好的优化方案出来之前)
1 先将分页SQL改写分发各个datanode上,变成
SELECT * FROM travelrecord ORDER BY id LIMIT 0, 100100去,
2 然后在mycat端进行汇总
执行elect * from travelrecord order by id limit 100000,10
查看explain执行计划:
mysql> explain select * from travelrecord order by id limit 100000,100 ;
+-----------+--------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+--------------------------------------------------------+
| dn1 | SELECT * FROM travelrecord ORDER BY id LIMIT 0, 100100 |
| dn2 | SELECT * FROM travelrecord ORDER BY id LIMIT 0, 100100 |
| dn3 | SELECT * FROM travelrecord ORDER BY id LIMIT 0, 100100 |
+-----------+--------------------------------------------------------+
3 rows in set (0.07 sec)
分析mycat日志:
1. 查询缓存以及增加到缓存中,初始化连接,路由SQL,此时已经做了查询写
2. 每个分片上执行改写后的查询SQL,包括datahost,连接信息同步,路由信息
在mycat端进行数据合并,执行原始SQL
Mycat之日志分析 select * from travelrecord order by id limit 100000,100 的执行过程的更多相关文章
- mysql 利用延迟关联优化查询(select * from your_table order by id desc limit 2000000,20)
其实在我们的工作中类似,select * from your_table order by id desc limit 2000000,20会经常遇见,比如在分页中就很常见. 如果我们的sql中出现这 ...
- Linux内核分析第八周——进程的切换和系统的一般执行过程
Linux内核分析第八周--进程的切换和系统的一般执行过程 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/cou ...
- Hibernate实现limit查询报错 :unexpected token: limit near line 1, column 33 [from pojo.Product p order by id limit ?,? ]
原因: hibernate无法识别limit, hql语句更不能这样写String hql="from Product p order by id limit ?,? "; 解决 ...
- Mycat之日志分析跨分片事务以及存储过程的执行过程
1 针对成功事务: 过程说明: 1.初始化连接,路由到各个分片 2.开启非阻塞执行更新,然后执行时候每个节点执行2次 3.执行提交,各节点返回commit 4.释放连接,先释放datasource然后 ...
- MyCat 学习笔记 第十一篇.数据分片 之 分片数据查询 ( select * from table_name limit 100000,100 )
1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150: 330 ...
- Linux内核及分析 第八周 进程的切换和系统的一般执行过程
学习笔记: 一.进程调度与进程调度的时机分析 1.不同类型的进程有不同需求的调度需求: 第一种分类: —I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 —CPU-boun ...
- 20135327郭皓--Linux内核分析第八周 进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁进行I/O ...
- Mysql order by与limit混用陷阱
在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N. ...
- Linux 日志分析工具之awstats
一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...
随机推荐
- Struts07---访问servlet的API
01.创建登录界面 <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- react privateRoute
import React from 'react'; import PropTypes from 'prop-types'; import {Route,Redirect,withRouter} fr ...
- 推荐使用typora
最近在网上接触到一款全新的markdown写作工具--typora. 现在它已经是我的主要写作工具了. 甚至我也也会利用它安排自己的工作和任务. typora介绍 下载链接 特色:可以即时渲染mark ...
- 转:使用django-admin.py创建django工程
原文:http://blog.csdn.net/a921800467b/article/details/8257352 安装Django首先需要安装数据库,可选的数据库有好几种,我选择的是MySQL数 ...
- 企业建站系统MiinCMP1.0.5 版公布!
2014-5-4,在青年节,Juuluu公布了其企业建站系统的新版1.0.5,经过两周多的奋战,Juuluu团队为MiinCMP新浪云版的移植工作做了大量工作.1.0.5已可完美执行于国内免费的jav ...
- JAVA设计模式:静态代理
一.概念代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关 ...
- 网络服务器带宽Mbps、Mb/s、MB/s的区别
例如所谓 10M 带宽,其实是指 10Mbps (兆比特) 计算带宽理论最快下载速度:10÷8=1.25MB/s 那么100M的带宽最快下载速度是12.5MB/s. 但这只是理论上的速度,在这个数值附 ...
- 通过API访问Ambari的配置
HttpClient client = new HttpClient(); Base64.Encoder encoder = Base64.getEncoder(); HttpMethod metho ...
- 洛谷 1291 [SHOI2002]百事世界杯之旅
题目:https://www.luogu.org/problemnew/show/P1291 大水题!套路!模板! 稍微注意一下输出就行了. #include<iostream> #inc ...
- 从ROS bag文件中提取图像
从ROS bag文件中提取图像 创建launch文件,如下: export.launch <launch> <node pkg="rosbag" type=&qu ...