文档章节

MySQL——sql优化(二)

w
 waterme
发布于 2016/07/09 23:29
字数 499
阅读 3
收藏 0

一点记录:

offset优化:

原始语句:

mysql> explain SELECT rid, qid, status, source, deleted, uid, toUid, uname, content, misFlag, createTime, uip, opTime, opUid, likeCnt, opName, auditSt, applyTime, ext, likeCnt FROM tblArticleReply1 WHERE (qid = 2819559) ORDER BY rid ASC LIMIT 41 OFFSET 24920\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: tblArticleReply1
         type: ref
possible_keys: qid,qid_likecnt
          key: qid
      key_len: 4
          ref: const
         rows: 52188
        Extra: Using where
1 row in set (0.00 sec)

测试环境中执行9s时间。。数据量大时很危险

优化:

mysql> explain SELECT t2.rid, qid, status, source, deleted, uid, toUid, uname, content, misFlag, createTime, uip, opTime, opUid, likeCnt, opName, auditSt, applyTime, ext, likeCnt  FROM tblArticleReply1 t2  join (select rid from tblArticleReply1  WHERE (qid = 2819559) ORDER BY rid ASC LIMIT 41 OFFSET 24920) t1 on t1.rid = t2.rid\G;
*************************** 1. row ***************************
           id: 1
  select_type: PRIMARY
        table: <derived2>
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 41
        Extra: 
*************************** 2. row ***************************
           id: 1
  select_type: PRIMARY
        table: t2
         type: eq_ref
possible_keys: idx_rid
          key: idx_rid
      key_len: 4
          ref: t1.rid
         rows: 1
        Extra: 
*************************** 3. row ***************************
           id: 2
  select_type: DERIVED
        table: tblArticleReply1
         type: ref
possible_keys: qid,qid_likecnt
          key: qid
      key_len: 4
          ref: 
         rows: 52188
        Extra: Using where; Using index
3 rows in set (0.01 sec)

这里使用了索引排序,现将查询结果集减少后再用小的结果集去连表。测试环境下执行时间0.02s,优化了不少啊!

索引排序:在mysql中索引本身就是排序好的,所以在第二条语句中只需要用where条件查询到rid,然后取出40条就行。

这里有一点需要注意:一定要用小结果集去join大结果集,否则就会有如下情况:

mysql> explain SELECT t2.rid, qid, status, source, deleted, uid, toUid, uname, content, misFlag, createTime, uip, opTime, opUid, likeCnt, opName, auditSt, applyTime, ext, likeCnt  FROM tblArticleReply1 t2 left join (select rid from tblArticleReply1  WHERE (qid = 2819559) ORDER BY rid ASC LIMIT 41 OFFSET 24920) t1 on t1.rid = t2.rid\G;
*************************** 1. row ***************************
           id: 1
  select_type: PRIMARY
        table: t2
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 38251327
        Extra: 
*************************** 2. row ***************************
           id: 1
  select_type: PRIMARY
        table: <derived2>
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 41
        Extra: 
*************************** 3. row ***************************
           id: 2
  select_type: DERIVED
        table: tblArticleReply1
         type: ref
possible_keys: qid,qid_likecnt
          key: qid
      key_len: 4
          ref: 
         rows: 52188
        Extra: Using where; Using index
3 rows in set (0.01 sec)

可以看出扫描行数很多且没有使用索引。。测试环境中没跑出来。。

本文转载自:http://blog.csdn.net/feihongxueni/article/details/51730665

共有 人打赏支持
w
粉丝 0
博文 27
码字总数 0
作品 0
海淀
私信 提问
Mysql 多表联合查询效率分析及优化

多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: [sql]view plaincopyprint? SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM......

蓝狐乐队
2014/04/30
0
0
GROUP BY另类优化技巧

分享嘉宾:知数堂〖SQL开发优化班〗讲师郑松华,韩国Infobridge的SQL优化专家&7年SQL开发和调优经验&资深数据库工程师。 本次主题《GROUP BY另类优化技巧》,主要内容是从 GROUP BY、ORDER B...

iMySQL | 老叶茶馆
2017/04/15
0
0
mysql性能优化-慢查询分析、优化索引和配置

目录 一、优化概述 二、查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三、配置优化 1) max_connections 2) back_log 3) inte...

zyt_1978
2016/09/18
40
0
mysql性能优化-慢查询分析、优化索引和配置

目录 一、优化概述 二、查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三、配置优化 1) max_connections 2) back_log 3) inte...

蓝狐乐队
2014/07/11
0
0
热门又高薪的大数据技术,怎么上车,前景如何?

IT江湖百晓生 主讲嘉宾:王晓伟微信号:goodwxw 萌萌哒 ^_^ 大牛背景: 本科:计算机学院-大连海事大学 硕士:软件工程硕士(MSE) -软件学院-清华大学 职场经历: 系统工程师-畅游 Hadoop工...

n88lpo
2017/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
11分钟前
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
17分钟前
0
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
26分钟前
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
438
13

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部