成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高級(jí)SQL優(yōu)化之LIMIT子句下推

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
本文所使用的執(zhí)行計(jì)劃可視化工具為PawSQL Explain Visualizer , 支持MySQL、PostgreSQL、openGauss等數(shù)據(jù)庫(kù)。

問題定義

經(jīng)常聽到有人說LIMIT影響SQL查詢性能,其實(shí)單純的LIMIT子句不會(huì)影響SQL性能,如果有影響,也是好的影響,特別是子查詢中l(wèi)imit語句,可以限制中間結(jié)果集的大小,從而為減少后續(xù)處理的數(shù)據(jù)量。本文來討論如何對(duì)LIMIT子句進(jìn)行下推優(yōu)化。

和謂詞下推優(yōu)化類似,Limit子句下推優(yōu)化通過盡可能地下壓Limit子句,提前過濾掉部分?jǐn)?shù)據(jù), 減少中間結(jié)果集的大小,減少后續(xù)計(jì)算需要處理的數(shù)據(jù)量, 以提高查詢性能。

譬如如下的案例,在外查詢有一個(gè)Limit子句,可以將其下推至內(nèi)層查詢執(zhí)行:

select *
from (select c_nationkey nation, 'C' as type, count(1) num
     from customer
     group by c_nationkey
     union
     select s_nationkey nation, 'S' as type, count(1) num
     from supplier
     group by nation) as nation_s
order by nation limit 20, 10

重寫之后的SQL如下:

select *
from (
(select customer.c_nationkey as nation, 'C' as `type`, count(1) as num
       from customer
       group by customer.c_nationkey
       order by customer.c_nationkey limit 30)
      union
(select supplier.s_nationkey as nation, 'S' as `type`, count(1) as num
 from supplier
 group by supplier.s_nationkey
 order by supplier.s_nationkey limit 30)) as nation_s
order by nation_s.nation limit 20, 10

適用條件

  • 外查詢有一個(gè)`LIMIT`子句
  • 外查詢沒有`GROUP BY`子句
  • 外查詢的`FROM`只有一個(gè)表引用,且是一個(gè)子查詢
  • 子查詢?yōu)閱蝹€(gè)查詢或是`UNION/UNION ALL`連接的多個(gè)子查詢

性能驗(yàn)證

1、優(yōu)化前的執(zhí)行計(jì)劃

圖片

2、優(yōu)化后的執(zhí)行計(jì)劃

圖片

3、優(yōu)化過程解析

從優(yōu)化后的執(zhí)行計(jì)劃我們可以看到,在UNION操作之前兩個(gè)子查詢分別新增了一個(gè)LIMIT節(jié)點(diǎn),限制了中間結(jié)果的返回行數(shù)為30行(offset + limit), 對(duì)上下游節(jié)點(diǎn)都有性能提升的影響。

  • 對(duì)于下游節(jié)點(diǎn),譬如節(jié)點(diǎn)#10(優(yōu)化前為節(jié)點(diǎn)#8), 原來需要完成全部的236914行的索引掃描,執(zhí)行時(shí)間為114ms;而優(yōu)化后由于限制了30行,所以可以掃描了7967行后就可以提前結(jié)束,掃描時(shí)間也減少到2.99ms,提升了38倍。
  • 對(duì)于上游節(jié)點(diǎn)(節(jié)點(diǎn)#4),原來需要對(duì)38806行數(shù)據(jù)進(jìn)行去重;而在優(yōu)化后,只需要對(duì)60行數(shù)據(jù)進(jìn)行去重;執(zhí)行時(shí)間從43.3ms減少到0.1ms,提升了433倍。

單純由于LIMIT子句下推,整體的執(zhí)行時(shí)間從176.93ms減少為3.54ms,整體性能提升了4898.02%。

PawSQL對(duì)于LIMIT子句的優(yōu)化

PawSQL針對(duì)所有數(shù)據(jù)庫(kù)默認(rèn)開啟LIMIT子句下推優(yōu)化,

  • 自動(dòng)優(yōu)化:用戶輸入待優(yōu)化SQL后,PawSQL對(duì)其進(jìn)行自動(dòng)化優(yōu)化,案例SQL的優(yōu)化詳情如下。

圖片

  • 當(dāng)然你也可以在創(chuàng)建優(yōu)化任務(wù)時(shí)隨時(shí)關(guān)閉或開啟此優(yōu)化。

圖片

關(guān)于PawSQL

本文所使用的執(zhí)行計(jì)劃可視化工具為PawSQL Explain Visualizer , 支持MySQL、PostgreSQL、openGauss等數(shù)據(jù)庫(kù)。

PawSQL專注數(shù)據(jù)庫(kù)性能優(yōu)化的自動(dòng)化和智能化,支持MySQL,PostgreSQL,Opengauss等,提供的SQL優(yōu)化產(chǎn)品包括

  • PawSQL Cloud,在線自動(dòng)化SQL優(yōu)化工具,支持SQL審查,智能查詢重寫、基于代價(jià)的索引推薦,適用于數(shù)據(jù)庫(kù)管理員及數(shù)據(jù)應(yīng)用開發(fā)人員,
  • PawSQL Advisor,IntelliJ 插件, 適用于數(shù)據(jù)應(yīng)用開發(fā)人員,可以IDEA/DataGrip應(yīng)用市場(chǎng)通過名稱搜索“PawSQL Advisor”安裝。
  • PawSQL Engine, 是PawSQL系列產(chǎn)品的后端優(yōu)化引擎,可以以docker鏡像的方式獨(dú)立安裝部署,并通過http/json的接口提供SQL優(yōu)化服務(wù)。
責(zé)任編輯:姜華 來源: PawSQL
相關(guān)推薦

2023-11-07 07:50:55

LIMIT子句下推優(yōu)化

2023-11-28 07:54:18

2023-10-09 07:42:49

PawSQL數(shù)據(jù)庫(kù)管理

2024-07-17 08:15:09

2010-09-26 14:46:19

SQL WHERE子句

2010-09-26 09:50:36

SQL Where子句

2023-11-03 07:29:51

QL優(yōu)化分組字段順序優(yōu)化

2023-10-16 07:49:25

PawSQL數(shù)據(jù)庫(kù)

2018-01-09 16:56:32

數(shù)據(jù)庫(kù)OracleSQL優(yōu)化

2010-09-26 14:40:25

SQL FROM子句

2023-02-26 23:43:43

MySQL數(shù)據(jù)庫(kù)分頁(yè)查詢

2010-11-09 10:10:08

SQL Server

2021-07-16 23:01:03

SQL索引性能

2018-04-19 09:02:14

SQL ServerSQL性能優(yōu)化

2011-06-08 15:08:38

MySQLWhere優(yōu)化

2021-05-11 09:01:37

SQL優(yōu)化索引

2010-11-25 10:12:02

MySQL查詢優(yōu)化

2021-07-26 18:23:23

SQL策略優(yōu)化

2018-10-19 12:47:35

MySQLSQL優(yōu)化數(shù)據(jù)庫(kù)

2018-03-30 14:30:10

數(shù)據(jù)庫(kù)SQL語句性能優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩专区中文字幕 | 男女在线免费观看 | 欧美一区二区三区视频 | 久久天天躁狠狠躁夜夜躁2014 | 91亚洲国产成人久久精品网站 | 日本精品一区二区三区视频 | 免费观看成人鲁鲁鲁鲁鲁视频 | 99久久电影 | 国内精品视频在线观看 | 久久黄视频 | 国产精品久久视频 | 午夜一区二区三区在线观看 | 成人久草 | 女女爱爱视频 | 超碰97人人人人人蜜桃 | 久草视频在| 97超碰人人 | 亚洲免费婷婷 | 久久久久国 | 色悠悠久 | 午夜精品一区二区三区免费视频 | 狠狠入ady亚洲精品经典电影 | 欧美视频在线观看 | 在线欧美一区二区 | 久久亚洲精品国产精品紫薇 | 亚洲精品久久久久久久久久久久久 | 国产亚洲精品精品国产亚洲综合 | 九九色综合| 超碰在线影院 | 日韩欧美在线免费观看 | 亚洲欧美在线观看 | 亚洲国产精品一区 | 亚洲第一福利网 | 日韩字幕一区 | 亚洲午夜视频在线观看 | 中文字幕av网址 | 日本不卡高清视频 | 日韩网站免费观看 | 亚洲精品久久久久中文字幕欢迎你 | 成人精品福利 | 欧美第一页 |