日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

DRDS分布式SQL引擎—执行计划介绍

發(fā)布時間:2024/8/23 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DRDS分布式SQL引擎—执行计划介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

摘要:?本文著重介紹 DRDS 執(zhí)行計劃中各個操作符的含義,以便用戶通過查詢計劃了解 SQL 執(zhí)行流程,從而有針對性的調(diào)優(yōu) SQL。

DRDS分布式SQL引擎 — 執(zhí)行計劃介紹

前言

數(shù)據(jù)庫系統(tǒng)中,執(zhí)行計劃是對 SQL 如何執(zhí)行的形式化表示,往往由若干關(guān)系操作符構(gòu)成,用戶可以通過對應(yīng)的 EXPLAIN 命令查看,并通過執(zhí)行計劃大致了解 SQL 的執(zhí)行過程和執(zhí)行方式,如全表掃描還是索引掃描,歸并連接還是哈希連接等。執(zhí)行計劃可以為用戶進(jìn)行 SQL 調(diào)優(yōu)提供重要依據(jù)。

DRDS 執(zhí)行計劃

與多數(shù)數(shù)據(jù)庫系統(tǒng)類似,DRDS 在處理 SQL 時,會通過優(yōu)化器生成執(zhí)行計劃,該執(zhí)行計劃由關(guān)系操作符構(gòu)成一個樹形結(jié)構(gòu),反映 DRDS 如何執(zhí)行 SQL 語句;不同的是,DRDS 本身不存儲數(shù)據(jù),更側(cè)重考慮分布式環(huán)境中的網(wǎng)絡(luò) IO 開銷,將運算下推到各個分庫(如 RDS/MySQL)執(zhí)行,從而提升 SQL 執(zhí)行效率。用戶可通過 EXPLAIN 命令查看 SQL 的執(zhí)行計劃。

本文著重介紹 DRDS 執(zhí)行計劃中各個操作符的含義,以便用戶通過查詢計劃了解 SQL 執(zhí)行流程,從而有針對性的調(diào)優(yōu) SQL。文中示例均基于如下表結(jié)構(gòu):

CREATE TABLE `sbtest1` (`id` INT(10) UNSIGNED NOT NULL,`k` INT(10) UNSIGNED NOT NULL DEFAULT '0',`c` CHAR(120) NOT NULL DEFAULT '',`pad` CHAR(60) NOT NULL DEFAULT '',KEY `xid` (`id`),KEY `k_1` (`k`) ) dbpartition BY HASH (`id`) tbpartition BY HASH (`id`) tbpartitions 4

先通過一個例子整體了解 DRDS 執(zhí)行計劃的樹形結(jié)構(gòu)。

mysql> explain select a.k, count(*) cnt from sbtest1 a, sbtest1 b where a.id = b.k and a.id > 1000 group by k having cnt > 1300 order by cnt limit 5, 10; +---------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +---------------------------------------------------------------------------------------------------------------------------------------------------+ | TmpSort(sort="cnt ASC", offset=?2, fetch=?3) | | Filter(condition="cnt > ?1") | | Aggregate(group="k", cnt="COUNT()") | | BKAJoin(id="id", k="k", c="c", pad="pad", id0="id0", k0="k0", c0="c0", pad0="pad0", condition="id = k", type="inner") | | MergeSort(sort="k ASC") | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?) ORDER BY `k`") | | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE ((`k` > ?) AND (`k` IN ('?')))") | | HitCache:false | +---------------------------------------------------------------------------------------------------------------------------------------------------+ 9 rows in set (0.01 sec)

如上,DRDS EXPLAIN 的結(jié)果總體分為兩部分:執(zhí)行計劃和其他信息。

  • 執(zhí)行計劃

    執(zhí)行計劃以縮進(jìn)形式表示操作符之間的 "父-子" 關(guān)系。示例中,Filter 是 TmpSort 的子操作符,同時是 Aggregate 的父操作符。從真正執(zhí)行的角度看,每個操作符均從其子操作符中獲取數(shù)據(jù),經(jīng)當(dāng)前操作符處理,輸出給其父操作符。為方便理解,將以上執(zhí)行計劃轉(zhuǎn)換為更加直觀的樹形結(jié)構(gòu):


  • 其他信息

    除執(zhí)行計劃外,EXPLAIN 結(jié)果中還會有一些額外信息,目前僅有一項 `HitCache` 。需要說明的是,DRDS 會默認(rèn)開啟 PlanCache 功能,`HitCache` 表示當(dāng)前 SQL 是否命中 PlanCache。

    開啟 PlanCache 后,DRDS 會對 SQL 做參數(shù)化處理,參數(shù)化會將 SQL 中的大部分常量用???替換,并構(gòu)建一個參數(shù)列表。在執(zhí)行計劃中的體現(xiàn)就是,LogicalView 的?sql?中會有???,在部分操作符中會有類似??2?的字樣,這里的?2?表示其在參數(shù)列表中的下標(biāo),后續(xù)會結(jié)合具體的例子進(jìn)一步闡述。

EXPLAIN 語法

EXPLAIN 用于查看 SQL 語句的執(zhí)行計劃,語法如下:

EXPLAIN explainable_stmtexplainable_stmt: {SELECT statement| DELETE statement| INSERT statement| REPLACE statement| UPDATE statement }

操作符介紹

本小節(jié)詳細(xì)介紹 DRDS 執(zhí)行計劃中各個操作符的含義。

LogicalView

LogicalView 是從底層數(shù)據(jù)源獲取數(shù)據(jù)的操作符。從數(shù)據(jù)庫的角度來看,使用?TableScan?命名更符合常規(guī),但考慮到 DRDS 本身不存儲數(shù)據(jù),而是通過 SQL 從底層數(shù)據(jù)源獲取,因此,該操作符中會記錄下推的 SQL 語句和數(shù)據(jù)源信息,這更像一個 "視圖"。該 "視圖" 中的 SQL,通過優(yōu)化器的下推,可能包含多種操作,如投影、過濾、聚合、排序、連接和子查詢等。

以下通過示例說明 EXPLAIN 中 LogicalView 的輸出信息及其含義:

mysql> explain select * From sbtest1 where id > 1000; +-----------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-----------------------------------------------------------------------------------------------------------------------+ | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?)") | | HitCache:false ? ? | +-----------------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec)

LogicalView 的信息由三部分構(gòu)成:

  • tables:底層數(shù)據(jù)源對應(yīng)的表名,以?.?分割,其前是分庫對應(yīng)的編號,其后是表名及其編號,對于連續(xù)的編號,會做簡寫,如?[000-127],表示表名編號從?000?到?127?的所有表。
  • shardCount:需要訪問的分表總數(shù),該示例中會訪問從?000?到?127?共 128 張分表。
  • sql:下發(fā)至底層數(shù)據(jù)源的 SQL 模版。這里顯示的并非真正下發(fā)的 SQL 語句,DRDS 在執(zhí)行時會將表名替換為物理表名;另外,SQL 中的常量?10?被???替換,這是因為 DRDS 默認(rèn)開啟了 PlanCache 功能,對 SQL 做了參數(shù)化處理。

UnionAll

UnionAll 是?UNION ALL?對應(yīng)的操作符,該操作符通常有多個輸入,表示將多個輸入的數(shù)據(jù) UNION 在一起。以上示例中,LogicalView 之上的 UnionAll 表示將所有分表中的數(shù)據(jù)進(jìn)行 UNION。

UnionAll 中的?concurrent?表示是否并行執(zhí)行其子操作符,默認(rèn)為 true。

UnionDistinct

與 UnionAll 類似,UnionDistinct 是?UNION DISTINCT?對應(yīng)的操作符。如下:

mysql> explain select * From sbtest1 where id > 1000 union distinct select * From sbtest1 where id < 200; +-------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-------------------------------------------------------------------------------------------------------------------------+ | UnionDistinct(concurrent=true) | | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?)") | | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` < ?)") | | HitCache:false | +-------------------------------------------------------------------------------------------------------------------------+ 6 rows in set (0.02 sec)

MergeSort

MergeSort,歸并排序操作符,通常有多個子操作符。DRDS 中實現(xiàn)了兩種排序:基于有序數(shù)據(jù)的歸并排序和對無序數(shù)據(jù)的內(nèi)存排序。如下:

mysql> explain select *from sbtest1 where id > 1000 order by id limit 5,10; +---------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +---------------------------------------------------------------------------------------------------------------------------------------------------+ | MergeSort(sort="id ASC", offset=?1, fetch=?2) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?) ORDER BY `id` LIMIT (? + ?)") | | HitCache:false | +---------------------------------------------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec)

MergeSort 操作符包含三部分內(nèi)容:

  • sort:表示排序字段以及排列順序,id ASC?表示按照?id?字段遞增排序,DESC?表示遞減排序。
  • offset:表示獲取結(jié)果集時的偏移量,同樣由于對 SQL 做了參數(shù)化,示例中的?offst?表示為??1?,其中???表示這是一個動態(tài)參數(shù),其后的數(shù)字對應(yīng)參數(shù)列表的下標(biāo)。示例中 SQL 對應(yīng)的參數(shù)為?[1000, 5, 10],因此,?1?實際對應(yīng)的值為?5。
  • fetch:表示最多返回的數(shù)據(jù)行數(shù)。與?offset?類似,同樣是參數(shù)化的表示,實際對應(yīng)的值為?10。

Aggregate

Aggregate 是聚合操作符,通常包含兩部分內(nèi)容:Group By 字段和聚合函數(shù)。如下:

mysql> explain select k, count(*) from sbtest1 where id > 1000 group by k; +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Aggregate(group="k", count(*)="SUM(count(*))") | | MergeSort(sort="k ASC") | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT `k`, COUNT(*) AS `count(*)` FROM `sbtest1` WHERE (`id` > ?) GROUP BY `k` ORDER BY `k`") | | HitCache:true | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4 rows in set (0.00 sec)

Aggregate 包含兩部分內(nèi)容:

  • group:表示 GROUP BY 字段,示例中為?k?。
  • 聚合函數(shù):=?前為聚合函數(shù)對應(yīng)的輸出列名,其后為對應(yīng)的計算方法。示例中?count(*)="SUM(count(*))"?,第一個?count(*)?對應(yīng)輸出的列名,隨后的?SUM(count(*))?表示對其輸入數(shù)據(jù)中的?count(*)?列進(jìn)行?SUM?運算得到最終的?count(*)。

由此可見,DRDS 將聚合操作分為兩部分,首先將聚合操作下推至底層數(shù)據(jù)源做局部聚合,最終在 DRDS 層面對局部聚合的結(jié)果做全局聚合。另外,DRDS 的最終聚合是基于排序做的,因此,會在優(yōu)化器階段為其添加一個?Sort?子操作符,而?Sort?操作符又進(jìn)一步通過下推 Sort 轉(zhuǎn)換為?MergeSort。

再來看一個?AVG?聚合函數(shù)的例子,如下:

mysql> explain select k, avg(id) avg_id from sbtest1 where id > 1000 group by k; +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Project(k="k", avg_id="sum_pushed_sum / sum_pushed_count")| | Aggregate(group="k", sum_pushed_sum="SUM(pushed_sum)", sum_pushed_count="SUM(pushed_count)")| | MergeSort(sort="k ASC")| | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT `k`, SUM(`id`) AS `pushed_sum`, COUNT(`id`) AS `pushed_count` FROM `sbtest1` WHERE (`id` > ?) GROUP BY `k` ORDER BY `k`")| | HitCache:false| +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5 rows in set (0.01 sec)

DRDS 會將?AVG?聚合函數(shù)轉(zhuǎn)換為?SUM / COUNT,再分別根據(jù)?SUM?和?COUNT?的下推規(guī)則,將其轉(zhuǎn)換為局部聚合和全局聚合。用戶可自行嘗試了解其他聚合函數(shù)的執(zhí)行計劃。

注意:DRDS 會將?DISTINCT?操作轉(zhuǎn)換為?GROUP?操作,如下:

mysql> explain select distinct k from sbtest1 where id > 1000; +-----------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ | Aggregate(group="k") | | MergeSort(sort="k ASC") | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT `k` FROM `sbtest1` WHERE (`id` > ?) GROUP BY `k` ORDER BY `k`") | | HitCache:false | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ 4 rows in set (0.02 sec)

TmpSort

TmpSort,表示在內(nèi)存中對數(shù)據(jù)進(jìn)行排序。與 MergeSort 的區(qū)別在于,MergeSort 可以有多個子操作符,且每個子操作符返回的數(shù)據(jù)都已經(jīng)排序。TmpSort 僅有一個子操作符。

TmpSort 對應(yīng)的查詢計劃信息與 MergeSort 一致,請參考 MergeSort。

Project

Project 表示投影操作,即從輸入數(shù)據(jù)中選擇部分列輸出,或者對某些列進(jìn)行轉(zhuǎn)換(通過函數(shù)或者表達(dá)式計算)后輸出,當(dāng)然,也可以包含常量。以上?AVG?的示例中,最頂層就是一個?Project,其輸出?k?和?sum_pushed_sum / sum_pushed_count?,后者對應(yīng)的列名為?avg_id?。

mysql> explain select '你好, DRDS', 1 / 2, CURTIME(); +-------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-------------------------------------------------------------------------------------+ | Project(你好, DRDS="_UTF-16'你好, DRDS'", 1 / 2="1 / 2", CURTIME()="CURTIME()") | | | | HitCache:false | +-------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec)

可見,Project 的計劃中包括每列的列名及其對應(yīng)的列、值、函數(shù)或者表達(dá)式。

Filter

Filter 表示過濾操作,其中包含一些過濾條件。該操作符對輸入數(shù)據(jù)進(jìn)行過濾,若滿足條件,則輸出,否則丟棄。如下是一個較復(fù)雜的例子,包含了以上介紹的大部分操作符。

mysql> explain select k, avg(id) avg_id from sbtest1 where id > 1000 group by k having avg_id > 1300; +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Filter(condition="avg_id > ?1") | | Project(k="k", avg_id="sum_pushed_sum / sum_pushed_count") | | Aggregate(group="k", sum_pushed_sum="SUM(pushed_sum)", sum_pushed_count="SUM(pushed_count)") | | MergeSort(sort="k ASC") | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT `k`, SUM(`id`) AS `pushed_sum`, COUNT(`id`) AS `pushed_count` FROM `sbtest1` WHERE (`id` > ?) GROUP BY `k` ORDER BY `k`") | | HitCache:false | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6 rows in set (0.01 sec)

在以上?AVG?示例的 SQL 基礎(chǔ)上添加了having avg_id > 1300?,執(zhí)行計劃最上層添加了一個 Filter 操作符,用于過濾所有滿足?avg_id > 1300?的數(shù)據(jù)。

有讀者可能會問,WHERE 中的條件為什么沒有對應(yīng)的 Filter 操作符呢?在 DRDS 優(yōu)化器的某個階段,WHERE 條件的 Filter 操作符的確是存在的,只是最終將其下推到了 LogiacalView 中,因此可以在 LogicalView 的?sql?中看到?id > 1000?。

NlJoin

NlJoin,表示 NestLoop Join 操作符,即使用 NestLoop 方法進(jìn)行兩表 Join。DRDS 中實現(xiàn)了兩種 JOIN 策略:NlJoin 和 BKAJoin,后者表示 Batched Key Access Join,批量鍵值查詢,會從左表取一批數(shù)據(jù),構(gòu)建一個 IN 條件拼接在訪問右表的 SQL 中,從右表一次獲取一批數(shù)據(jù)。

mysql> explain select a.* from sbtest1 a, sbtest1 b where a.id = b.k and a.id > 1000; +----------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +----------------------------------------------------------------------------------------------------------------------------+ | Project(id="id", k="k", c="c", pad="pad") | | NlJoin(id="id", k="k", c="c", pad="pad", k0="k0", condition="id = k", type="inner") | | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?)") | | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT `k` FROM `sbtest1` WHERE (`k` > ?)") | | HitCache:false | +----------------------------------------------------------------------------------------------------------------------------+ 7 rows in set (0.03 sec)

NlJOIN 的計劃包括三部分內(nèi)容:

  • 輸出列信息:輸出的列名,示例中的 JOIN 會輸出 5 列?id="id", k="k", c="c", pad="pad", k0="k0"?。
  • contition:連接條件,示例中連接條件為?id = k?。
  • type:連接類型,示例中是 INNER JOIN,因此其連接類型為?inner?。

BKAJoin

BKAJoin,Batched Key Access Join,表示通過批量鍵值查詢的方式進(jìn)行 JOIN,即從左表取一批數(shù)據(jù),構(gòu)建一個 IN 條件拼接在訪問右表的 SQL 中,從右表一次獲取一批數(shù)據(jù)進(jìn)行 JOIN。

mysql> explain select a.* from sbtest1 a, sbtest1 b where a.id = b.k order by a.id; +-------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-------------------------------------------------------------------------------------------------------------------------------+ | Project(id="id", k="k", c="c", pad="pad") | | BKAJoin(id="id", k="k", c="c", pad="pad", id0="id0", k0="k0", c0="c0", pad0="pad0", condition="id = k", type="inner") | | MergeSort(sort="id ASC") | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` ORDER BY `id`") | | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`k` IN ('?'))") | | HitCache:false | +-------------------------------------------------------------------------------------------------------------------------------+ 7 rows in set (0.01 sec)

BKAJoin 的計劃內(nèi)容與 NlJoin 相同,這兩個操作符命名不同,旨在告知執(zhí)行器以何種方法執(zhí)行 JOIN 操作。另外,以上執(zhí)行計劃中右表的 LogicalView 中?k IN ('?')?是優(yōu)化器構(gòu)建出來的對右表的IN查詢模板。

LogicalModifyView

如上文介紹,LogicalView 表示從底層數(shù)據(jù)源獲取數(shù)據(jù)的操作符,與之對應(yīng)的,LogicalModifyView 表示對底層數(shù)據(jù)源的修改操作符,其中也會記錄一個 SQL 語句,該 SQL 可能是 INSERT、UPDATE 或者 DELETE。

mysql> explain update sbtest1 set c='Hello, DRDS' where id > 1000; +--------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +--------------------------------------------------------------------------------------------------------------------------------+ | LogicalModifyView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="UPDATE `sbtest1` SET `c` = ? WHERE (`id` > ?)") | | HitCache:false | +--------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.03 sec)mysql> explain delete from sbtest1 where id > 1000; +-------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-------------------------------------------------------------------------------------------------------------------------+ | LogicalModifyView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="DELETE FROM `sbtest1` WHERE (`id` > ?)") | | HitCache:false | +-------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.03 sec)

LogicalModifyView 查詢計劃的內(nèi)容與 LogicalView 類似,包括下發(fā)的物理分表,分表數(shù)以及 SQL 模版。同樣,由于開啟了 PlanCache,對 SQL 做了參數(shù)化處理,SQL 模版中的常量會用???替換。

PhyTableOperation

PhyTableOperation 表示對某個物理分表執(zhí)行一個操作。該操作符目前僅用于 INSERT INTO ... VALUES ...。

mysql> explain insert into sbtest1 values(1, 1, '1', '1'),(2, 2, '2', '2'); +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | PhyTableOperation(tables="SYSBENCH_CORONADB_1526954857179TGMMSYSBENCH_CORONADB_VGOC_0000_RDS.[sbtest1_001]", sql="INSERT INTO ? (`id`, `k`, `c`, `pad`) VALUES(?, ?, ?, ?)", params="`sbtest1_001`,1,1,1,1") | | PhyTableOperation(tables="SYSBENCH_CORONADB_1526954857179TGMMSYSBENCH_CORONADB_VGOC_0000_RDS.[sbtest1_002]", sql="INSERT INTO ? (`id`, `k`, `c`, `pad`) VALUES(?, ?, ?, ?)", params="`sbtest1_002`,2,2,2,2") | | | | HitCache:false | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 4 rows in set (0.00 sec)

示例中,INSERT 插入兩行數(shù)據(jù),每行數(shù)據(jù)對應(yīng)一個 PhyTableOperation 操作符,PhyTableOperation 操作符的內(nèi)容包括三部分:

  • tables:物理表名,僅有唯一一個物理表名。
  • sql:SQL 模版,該 SQL 模版中表名和常量均被參數(shù)化,用???替換,對應(yīng)的參數(shù)在隨后的 params 中給出。
  • params:SQL 模版對應(yīng)的參數(shù),包括表名和常量。

其他信息

HitCache

DRDS 會默認(rèn)開啟 PlanCache 功能,HitCache 用于告知用戶當(dāng)前查詢是否命中 PlanCache。如下,第一次運行 HitCache 為 false,第二次運行為 true。

mysql> explain select * From sbtest1 where id > 1000; +-----------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-----------------------------------------------------------------------------------------------------------------------+ | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?)") | | HitCache:false ? ? | +-----------------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.01 sec)mysql> explain select * From sbtest1 where id > 1000; +-----------------------------------------------------------------------------------------------------------------------+ | LOGICAL PLAN | +-----------------------------------------------------------------------------------------------------------------------+ | UnionAll(concurrent=true) | | LogicalView(tables="[0000-0031].sbtest1_[000-127]", shardCount=128, sql="SELECT * FROM `sbtest1` WHERE (`id` > ?)") | | HitCache:true | +-----------------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec)

小結(jié)

以上介紹了 DRDS 5.3 的 EXPLAIN 命令,以及執(zhí)行計劃中每個操作符的含義,相信可以為用戶調(diào)優(yōu) SQL 提供極大得便利。

DRDS 5.3 已經(jīng)在阿里云正式上線,除全新設(shè)計的執(zhí)行計劃外,性能也有大幅提升,并支持原生事務(wù)、Outline 和 Plan Cache 等功能。后續(xù)支持復(fù)雜查詢的只讀實例、回收站、基于事務(wù)的廣播表寫入等功能也將相繼上線,敬請期待。

?原文鏈接

本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。


總結(jié)

以上是生活随笔為你收集整理的DRDS分布式SQL引擎—执行计划介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

中文字幕在线字幕中文 | 色婷婷国产精品一区在线观看 | 亚洲成人一区 | 黄色成人小视频 | 91精品久久久久久综合乱菊 | 国产精品视屏 | 九九国产精品视频 | 国产精品三级视频 | 欧美亚洲成人xxx | 欧美一区三区四区 | 色播五月婷婷 | 在线观看视频免费播放 | 青青色影院 | 欧美小视频在线 | 黄色av成人在线 | 91高清一区 | 国产精品女人久久久 | 久久国产片 | 国产精品美女久久 | 国产黄色片免费看 | 一区二区av| 丁香五月亚洲综合在线 | 九九九在线观看 | 成人一级电影在线观看 | 国产精品高清在线观看 | 精品国产综合区久久久久久 | 六月色婷 | 俺要去色综合狠狠 | 精品一区二区在线观看 | 丁香六月在线观看 | 成人小视频在线 | 国产一级做a爱片久久毛片a | 亚洲国产精品激情在线观看 | 一区电影| 99re在线视频观看 | 91精品资源 | 在线99热| 国产精品都在这里 | 日本精品一 | 91视频久久| av电影不卡 | 国产原创av片 | 日韩欧美久久 | 国产精品免费久久久久久 | 中文字幕视频一区二区 | 亚洲精品久久久久中文字幕m男 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 色99网| 综合色爱 | 日韩v在线91成人自拍 | 久久国产精品99久久久久久丝袜 | 亚洲精品午夜aaa久久久 | 成 人 黄 色 视频免费播放 | 久久国产精品视频免费看 | 黄色视屏在线免费观看 | 国内精品久久久久 | 人人网人人爽 | 在线成人性视频 | 国产毛片久久 | 免费a级毛片在线看 | 国产综合91 | 在线观看色视频 | 免费在线观看成年人视频 | 亚洲视频网站在线观看 | 麻豆av一区二区三区在线观看 | 国产性天天综合网 | 国内精品久久久久久久久久久 | 成人国产网站 | 精品国产视频在线观看 | www.五月天婷婷 | 亚洲国产最新 | 精品国产一区二区三区在线 | 中文字幕在线电影 | 国产无遮挡又黄又爽在线观看 | 波多野结衣在线播放视频 | 在线视频在线观看 | 国产成人在线网站 | 黄色激情网址 | 美女视频黄是免费的 | 成人午夜精品福利免费 | 久久久一本精品99久久精品66 | 久久久久欠精品国产毛片国产毛生 | 国语对白少妇爽91 | 99 色| 黄色片软件网站 | 日韩免费福利 | 精品一区二区在线观看 | 色99久久| 激情在线免费视频 | 中文字幕免费高清在线 | 中文字幕超清在线免费 | 久久激情精品 | 亚洲va在线va天堂va偷拍 | 欧美性色综合 | 亚洲精品在线国产 | 精品影院 | 亚洲涩涩色 | 国产99久久久国产 | 手机av资源 | 免费观看午夜视频 | 韩日精品视频 | 欧美做受69 | 国产一区在线视频 | 在线精品视频免费播放 | 久久精品亚洲一区二区三区观看模式 | 狠狠色丁香九九婷婷综合五月 | 国产精品久久久久久久午夜 | 日日夜夜人人天天 | 九九电影在线 | 国产精品乱码久久久久久1区2区 | 国产精品久久99 | 亚洲波多野结衣 | 制服丝袜在线91 | 亚洲一区网站 | 中文字幕在线观看网 | 91亚瑟视频 | 热久精品 | 91视频免费网址 | 久久99影院 | 日韩欧美v | 色哟哟国产精品 | 99r精品视频在线观看 | 久久女同性恋中文字幕 | 成人免费在线视频观看 | 蜜臀aⅴ国产精品久久久国产 | 免费色网| 久久免费播放 | 久久成人人人人精品欧 | 精品国产电影一区二区 | 在线视频日韩 | 五月色综合 | 久久99精品波多结衣一区 | aa级黄色大片 | 操操操天天操 | 精品久久网 | 久久久免费在线观看 | 中文字幕av免费在线观看 | 在线国产一区 | 欧美精品久久人人躁人人爽 | 日韩电影在线一区 | 91探花在线 | 碰超在线 | 亚洲国产精品一区二区久久,亚洲午夜 | 中文字幕婷婷 | 成人免费ⅴa | 九九热av| 91久色蝌蚪| 97在线观看免费观看 | 亚洲精品日韩一区二区电影 | 欧美色一色 | 人人插人人艹 | 亚洲精区二区三区四区麻豆 | 国产精品麻豆免费版 | 午夜视频一区二区 | 精品九九九九 | 91在线91拍拍在线91 | 99精品影视 | 精品国产一区二区三区久久久蜜月 | 欧美日韩一区二区免费在线观看 | 亚洲九九精品 | 特级西西444www高清大视频 | 丁香激情网 | 成人观看| av千婊在线免费观看 | 激情五月婷婷综合网 | 午夜 免费 | 日韩午夜av | 丁香婷婷综合激情五月色 | 天天婷婷 | 手机在线小视频 | 国产精品成久久久久三级 | av网站手机在线观看 | 在线免费视频你懂的 | 九九热在线精品 | 国产高清免费av | 狠狠干干 | 中文字幕在线久一本久 | 99热999 | 国产精品99久久久久 | 一本到视频在线观看 | 高清在线一区二区 | 久久久久久综合网天天 | 免费观看的黄色片 | 亚洲老妇xxxxxx | 成人黄色毛片视频 | 中文不卡视频 | 欧美综合久久 | 国产成人一区二区三区在线观看 | 精品久久久久久久久久久久久久久久 | 亚洲国产资源 | 中文字幕日韩国产 | 免费av免费观看 | 麻豆传媒视频在线 | 国产区精品视频 | 91亚洲永久精品 | 国产+日韩欧美 | 成人av电影免费在线播放 | 欧美日韩精品在线 | 国产又粗又硬又爽的视频 | 97av在线视频免费播放 | 日韩草比 | 日本少妇久久久 | 91av看片| 玖草影院 | 国产中文字幕一区 | 五月天久久综合网 | 天天插综合网 | 精品国产大片 | 久久国色夜色精品国产 | 亚洲专区在线播放 | 最新国产中文字幕 | 亚洲国产精品成人女人久久 | 毛片基地黄久久久久久天堂 | 日本在线成人 | 黄色软件网站在线观看 | 亚洲精品免费看 | 在线看成人 | 四虎国产永久在线精品 | 日韩美女一级片 | 91精品在线免费 | 午夜美女网站 | 91成人在线观看高潮 | 日韩欧美区 | 四虎在线免费观看 | 成年人在线免费看视频 | 精品美女久久久久 | 国产在线不卡 | 在线观看午夜av | 国产精品欧美激情在线观看 | 国产精品一区二区三区在线看 | 国产日韩精品在线观看 | 91女子私密保健养生少妇 | 日本高清中文字幕有码在线 | 国内精品久久久久久久影视麻豆 | 99视频精品 | 亚洲2019精品| 天天操天天爱天天干 | 久久久久久久久久久久久影院 | 国产成人av在线 | 在线观看免费91 | 天天操天天干天天爽 | av超碰免费在线 | 久久久影院 | 亚洲日本va午夜在线影院 | 91激情小视频 | 热久久免费视频 | 亚洲欧美日韩不卡 | 91大神在线看 | 国产免费黄视频在线观看 | 国产精品初高中精品久久 | 激情伊人五月天久久综合 | 久久精品站 | 免费视频久久久 | 激情五月婷婷综合 | 欧美成人影音 | 日韩高清免费在线 | 国产97av| 国产精品12345 | 久久综合狠狠综合 | 激情视频免费在线 | 国产成人精品一区二区三区在线 | 欧美成人精品xxx | 日本久久电影 | 九色免费视频 | 国产中文字幕av | 久久综合成人网 | 天天艹天天干天天 | 在线视频欧美精品 | 亚洲欧美乱综合图片区小说区 | 免费在线播放黄色 | 久久九九国产精品 | 十八岁以下禁止观看的1000个网站 | 国产理论免费 | 国产亚洲精品久久网站 | 九九视频免费在线观看 | 天天草天天摸 | 久久男人免费视频 | 国产综合在线视频 | 中文字幕在线观看的网站 | 福利网在线 | 久久午夜色播影院免费高清 | 亚洲成人xxx | 日韩电影久久 | 亚洲精品视频在线观看免费 | 99久久一区 | 日日激情 | 国产精品高潮在线观看 | 免费av大全 | 欧美久久九九 | 亚洲一区二区三区在线看 | 亚洲人成网站精品片在线观看 | 久久久99精品免费观看乱色 | 在线91视频 | 超碰97公开 | 天天操天天摸天天爽 | 伊人狠狠色丁香婷婷综合 | 亚洲国产视频a | 国产精品v欧美精品v日韩 | 2018亚洲男人天堂 | 91社区国产高清 | 国产高清av在线播放 | 日本精品一区二区三区在线播放视频 | 亚洲jizzjizz日本少妇 | 九九免费在线观看 | 日韩精品最新在线观看 | 久久国产福利 | 五月天婷婷免费视频 | 97成人超碰 | 国产精品一区二区白浆 | 天天色天天射综合网 | 一区二区精品在线 | 亚洲色图av | 欧美天堂视频在线 | 激情综合站 | 亚洲综合欧美日韩狠狠色 | a午夜电影 | 中文一区在线观看 | 日韩精品免费一区二区在线观看 | 久久tv| 国产成人久久精品一区二区三区 | 五月婷婷在线观看 | 婷婷av综合 | 久久精品国产久精国产 | 日韩理论片在线 | 亚洲va男人天堂 | 亚洲国产中文字幕在线视频综合 | 日韩在线视频网站 | 国产免费久久精品 | 国产精品久久99综合免费观看尤物 | 精选久久 | www,黄视频 | 黄色在线观看网站 | 久久精品—区二区三区 | 美女黄久久 | 亚洲精品在线一区二区 | 久久国产精品一区二区 | 国产1区在线 | 久草在线免费在线观看 | 三日本三级少妇三级99 | 天天操天天色天天射 | 九九免费精品视频在线观看 | 欧美成人性战久久 | 成人av影视观看 | 91九色在线观看视频 | 久久99在线观看 | 日韩精品中文字幕有码 | 亚洲精欧美一区二区精品 | 国产精品乱码久久久久 | 最新国产精品拍自在线播放 | 久久国产精品一区二区 | 成人理论电影 | 人人玩人人弄 | 久久一区国产 | 91视频在线免费看 | 久久精品123 | 天天干天天在线 | 日本黄色大片免费看 | 日韩免费中文字幕 | 99久久久久久国产精品 | www婷婷| 久久激五月天综合精品 | 岛国av在线 | 正在播放 国产精品 | 99热在线观看免费 | 午夜婷婷在线播放 | 涩涩网站在线 | 国产一级性生活视频 | .国产精品成人自产拍在线观看6 | 激情自拍av| 麻豆91小视频 | 日韩在线视 | 久久国产热 | 久久夜夜爽| 亚洲黄色成人av | 国产伦理精品一区二区 | 九九色视频 | 国产精品视频免费观看 | 24小时日本在线www免费的 | 超碰97人人在线 | 久久a热6 | 综合久久婷婷 | 免费在线观看成人小视频 | 免费看污片 | 亚洲免费在线观看视频 | 狠狠色丁香久久婷婷综合五月 | 国产精品123 | 91热视频在线观看 | 一区二区三区日韩在线观看 | 午夜精品三区 | 国产精品麻豆果冻传媒在线播放 | 成人在线免费看视频 | 国产精品综合久久久久 | 亚洲香蕉视频 | 国产高清视频在线 | 国产视频久 | 日韩电影中文,亚洲精品乱码 | 69热国产视频 | 日韩a在线看| 激情五月在线视频 | 日韩三级视频在线看 | av网站在线免费观看 | 69精品在线| 在线免费观看视频一区二区三区 | 午夜精品久久久久久久爽 | 久久精品波多野结衣 | 精品国内 | 91一区二区在线 | 欧美精品亚洲精品日韩精品 | 五月开心婷婷 | 亚洲一级免费观看 | 超碰在线公开 | 91爱爱电影 | 国产无区一区二区三麻豆 | 九九日韩 | 精品久久免费看 | 午夜视频在线瓜伦 | 在线播放av网址 | 国产黄色a | 色婷婷综合久久久久中文字幕1 | 日韩激情第一页 | 激情久久伊人 | 亚洲一级黄色 | 三级毛片视频 | 热久精品| 成年人电影免费在线观看 | 欧美久久久久久久久久久 | 国产一级片观看 | 99热播精品 | 国产成人精品一区在线 | 免费福利在线观看 | 蜜臀久久99静品久久久久久 | 日韩久久久久久 | av在线精品| 成人久久免费 | 国产在线一区二区三区播放 | 在线播放亚洲 | 人人爽人人插 | 欧美精品二区 | 日韩av三区| 亚洲少妇自拍 | 日韩亚洲国产中文字幕 | 99热精品免费观看 | 69久久99精品久久久久婷婷 | 国产精品videossex国产高清 | 免费观看黄 | 亚洲精品视频在线观看免费视频 | 黄色小说免费在线观看 | 九九欧美 | 久久久久久久久久久久久久免费看 | 精品一区二区三区久久 | 91久久一区二区 | 欧美在线一级片 | 国产一区免费视频 | 看片网站黄色 | 91在线看视频 | 亚洲精品国产精品久久99 | 中文在线8新资源库 | 日韩和的一区二在线 | 国产欧美最新羞羞视频在线观看 | 国产精品va在线 | 久草在线观看 | 中文字幕在线观看资源 | 日韩高清无线码2023 | 亚洲 欧美 日韩 综合 | 六月天综合网 | zzijzzij亚洲日本少妇熟睡 | 91系列在线 | 99精品在线免费观看 | 日韩久久久久久久 | 国产精品ssss在线亚洲 | 91精品一区国产高清在线gif | 91av色| 成人国产精品久久久春色 | 少妇bbbb| 黄色在线免费观看网址 | 99久久www| 久久亚洲欧美日韩精品专区 | 婷婷成人在线 | 99精品视频免费看 | 欧美日韩免费看 | 亚洲一二区精品 | 日韩视频在线一区 | 亚洲另类视频在线观看 | 久久精品久久久精品美女 | 日本精品久久久久中文字幕 | 成年人黄色在线观看 | 特级毛片爽www免费版 | 日韩精品第一区 | 麻豆传媒在线免费看 | 欧美日韩高清一区二区 | 激情五月激情综合网 | 天天看天天操 | 欧美一区二区三区不卡 | 国产字幕在线播放 | 中文字幕2021 | 日本精品中文字幕 | 日日天天狠狠 | 国产在线一区二区 | 亚洲精品在线免费播放 | 97视频在线播放 | 日韩二区在线播放 | 久久精品99国产国产 | 天天操天天综合网 | 激情综合站 | 娇妻呻吟一区二区三区 | 最近日本mv字幕免费观看 | 免费成人在线观看视频 | 婷婷综合五月天 | 永久免费的啪啪网站免费观看浪潮 | 亚洲乱码国产乱码精品天美传媒 | 亚洲精品66 | 成人国产综合 | 欧美天堂视频在线 | 四虎亚洲精品 | 天天操天天干天天摸 | 在线导航福利 | av三区在线 | 亚洲少妇影院 | 国产精品mm | 麻豆网站免费观看 | 国产在线国偷精品产拍 | 狠狠色网 | 香蕉视频18 | 日韩免费一二三区 | 超碰在线人人爱 | 9999亚洲 | 99久久精品免费看国产一区二区三区 | 日韩视频一区二区 | 亚洲粉嫩av | av韩国在线| 毛片网在线播放 | 欧美精品在线观看一区 | 免费视频区 | 亚洲国产高清在线观看视频 | 久久影视一区 | 久久成人久久 | 欧美日韩不卡一区二区 | 日本黄色a级大片 | 亚洲婷久久 | 四虎永久免费在线观看 | 亚洲毛片一区二区三区 | 中文成人字幕 | 丁香婷婷色综合亚洲电影 | 色噜噜噜| 国内精品小视频 | 少妇精品久久久一区二区免费 | 亚洲春色成人 | 99热在线这里只有精品 | www.天天综合| 亚洲区视频在线观看 | 日日干综合 | 日本系列中文字幕 | 久久精品视| 成人h动漫在线看 | 在线视频 成人 | 天堂网av在线 | 精品uu| 精品美女久久久久久免费 | 日韩免费在线观看网站 | 亚洲免费不卡 | 国产视频一区二区在线观看 | 99精品国产99久久久久久福利 | 天天艹天天 | 久久国产精品一区二区三区四区 | 日本三级全黄少妇三2023 | а中文在线天堂 | 777视频在线观看 | 久久露脸国产精品 | 国产精品久久久久影视 | 九色最新网址 | 欧美激情精品一区 | 视频在线在亚洲 | 国产va精品免费观看 | 婷婷激情小说网 | 国产真实精品久久二三区 | 亚洲激情影院 | 国产小视频你懂的在线 | 97在线视 | 天天色天天上天天操 | 成片人卡1卡2卡3手机免费看 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美久久久久久久久久久久久 | 综合婷婷丁香 | 国产成人精品午夜在线播放 | www..com黄色片 | 精品久久久久久久久久久院品网 | 99精品在线观看 | 久久99精品久久只有精品 | 久久精品视频网 | 人人干人人干人人干 | 伊人成人精品 | 日韩精品不卡在线 | 国产精品一区二区三区在线看 | 日韩在线观看免费 | 黄色成品视频 | 久久久999 | 久久天天操| 99精品视频播放 | 超碰电影在线观看 | 国产一级特黄毛片在线毛片 | 九九视频这里只有精品 | 亚州人成在线播放 | 中文字幕在线不卡国产视频 | 国产在线观看a | 99中文字幕在线观看 | 色多多视频在线 | 精品99久久 | 久久精品一区二区三区国产主播 | 欧美日韩一区二区免费在线观看 | 久久好看免费视频 | 日韩精品三区四区 | 久 久久影院 | 日韩精品视频在线免费观看 | 国产精品久久久久久久久久尿 | 91丨九色丨国产丨porny精品 | 天天爱天天射 | 色播亚洲婷婷 | 精品久久久久久久久久岛国gif | 久久这里只有精品9 | 99久热在线精品视频成人一区 | 免费av观看网站 | 国产在线播放不卡 | 久久精品中文字幕一区二区三区 | 亚洲欧美综合精品久久成人 | 欧美激情第十页 | 91av在线免费播放 | 欧美精品一区二区在线播放 | 色视频在线看 | 99久久精品日本一区二区免费 | 国产精品久久久久久久久久三级 | 日本一区二区不卡高清 | www免费黄色| 国产中文在线视频 | 成人免费观看电影 | 四虎影视成人永久免费观看视频 | 久久国产乱 | 69xx视频| 激情影院在线 | 免费在线一区二区三区 | 高清不卡一区二区在线 | 99一级片| 久草在线资源观看 | 色天天中文| 日韩久久激情 | 久久久蜜桃一区二区 | 毛片在线播放网址 | 国产一区二区三精品久久久无广告 | 国产精品久久久久永久免费看 | 国产高清av免费在线观看 | 亚洲乱码中文字幕综合 | 丁香婷婷在线 | 午夜 免费 | 欧美久久成人 | 欧美精品在线观看一区 | 久久久国产一区二区 | 日韩手机视频 | 四虎在线免费观看 | 久久网页| 欧美疯狂性受xxxxx另类 | 三级黄色a| 黄色小说网站在线 | 国产黄免费看 | 亚洲视频网站在线观看 | 999成人免费视频 | 久久久男人的天堂 | 91av看片| 国产在线观看a | 一本一道久久a久久精品 | 亚洲精品五月 | 亚洲色图激情文学 | 在线观看网站你懂的 | 亚洲.www| 久久精品成人热国产成 | 日韩在线观看第一页 | 久草在线一免费新视频 | av免费电影在线观看 | 激情婷婷丁香 | 久久久午夜视频 | 国产五月 | 91亚洲精品久久久久图片蜜桃 | 国产精品视频地址 | 久久爽久久爽久久av东京爽 | 久久欧美视频 | 精品久久久一区二区 | 91香蕉国产在线观看软件 | 久久丁香网| 国产一区二区三区视频在线 | 日韩精品不卡在线 | 日本精品视频网站 | 91看片在线 | 亚洲高清视频一区二区三区 | 国产麻豆视频网站 | 国产不卡视频在线 | 久爱综合 | 天天操天天操天天操天天操天天操 | 午夜美女wwww | 欧美日韩综合在线观看 | 亚洲综合婷婷 | 久久一区国产 | 国产精品免费在线 | 久久艹人人 | 人人舔人人插 | 在线91av | 4438全国亚洲精品观看视频 | 最近2019好看的中文字幕免费 | 亚洲综合在线五月 | 蜜臀久久99精品久久久无需会员 | 99精品国产高清在线观看 | 国产精品久久久久久久免费大片 | 欧美亚洲免费在线一区 | 国模一区二区三区四区 | 91视频高清完整版 | 国产黄免费在线观看 | 日韩1页| 午夜视频99 | 日韩精品影视 | 国产精品尤物 | 日韩欧美视频 | 手机看片午夜 | 五月综合激情 | 欧美精品久久久久久 | 久久这里只有精品9 | 日韩黄色一级电影 | 亚洲成人av免费 | 午夜美女wwww | 六月丁香激情综合色啪小说 | 久草av在线播放 | 久热av在线 | 丁香六月婷婷开心 | 超碰人人超碰 | 韩国av免费看 | 久久中文欧美 | 99国产在线观看 | 亚洲黄色成人 | 精品久久久久久一区二区里番 | 国产视频精品久久 | 久久久久综合 | 色综合久久综合中文综合网 | 国产不卡高清 | 午夜电影中文字幕 | 国产小视频你懂的 | 亚洲激情综合网 | 99re久久精品国产 | 在线一级片 | 亚洲电影自拍 | 中文字幕在线观看av | 国产在线专区 | 国产亚洲精品女人久久久久久 | 韩国av一区二区三区 | 成人国产电影在线观看 | 超碰国产在线播放 | 2022中文字幕在线观看 | 国产精品白浆 | 国产va饥渴难耐女保洁员在线观看 | 伊人久操 | 国产99免费| 69欧美视频| 国产护士av | 亚洲另类久久 | 天天综合天天做天天综合 | 欧美精品久久久久久 | 九九精品久久久 | 在线蜜桃视频 | 久久久久久久国产精品影院 | 久草在线一免费新视频 | www.夜夜| 超碰人人舔 | 看片一区二区三区 | 日本中文一区二区 | 日韩电影中文,亚洲精品乱码 | 天天操天天干天天摸 | 成人综合婷婷国产精品久久免费 | 国产一区播放 | 国产精品一区二区在线 | 国产91电影在线观看 | 亚洲国产精品日韩 | 黄色三级免费看 | 中文字幕视频三区 | 99久热在线精品视频成人一区 | av在线激情 | 激情图片久久 | 永久黄网站色视频免费观看w | 日韩免费电影在线观看 | 日韩av女优视频 | 99热精品免费观看 | 在线免费av网 | 欧美色婷| 欧美日韩高清 | 奇米导航 | 欧美日韩视频免费看 | 五月婷婷综合在线观看 | 国产精品国产亚洲精品看不卡 | 免费看亚洲毛片 | 亚洲欧美va | 国产视频每日更新 | 国产91综合一区在线观看 | 一本一本久久a久久 | 香蕉视频在线免费看 | 精品一区二区免费视频 | 免费观看日韩 | 欧美淫aaa免费观看 日韩激情免费视频 | 国产精品久久久久久久7电影 | 成人久久18免费网站图片 | 久热电影 | 最近高清中文字幕在线国语5 | 国产一级精品在线观看 | 成人免费观看a | 午夜av免费在线观看 | 天天碰天天操 | 区一区二在线 | 久久久免费网站 | 超碰免费公开 | 国产精品久久久久久久妇 | 国产永久免费高清在线观看视频 | 在线免费高清视频 | 久久国产经典视频 | 久久久久久国产精品免费 | 97超碰人人模人人人爽人人爱 | 天天干,天天操,天天射 | 成人国产精品av | 国产中文字幕网 | 一级成人在线 | 在线日韩精品视频 | 一区二区三区四区精品 | 国产精品九九久久99视频 | 国产精品刺激对白麻豆99 | 色小说av| 99久久精品午夜一区二区小说 | 久久久久网站 | 超碰人人做 | 国产亚洲欧美日韩高清 | 国产成人av免费在线观看 | 亚洲视频久久久久 | 中文字幕超清在线免费 | 一色av| 日韩在线电影 | 久久免费av电影 | 婷婷电影在线观看 | 精品一区电影 | 五月色婷| 天天操夜夜干 | 国产精品扒开做爽爽的视频 | 国产污视频在线观看 | 在线观看理论 | 91精品国产麻豆国产自产影视 | 国产精品久久久久久久久搜平片 | 99热这里只有精品免费 | 国产色a在线观看 | 爱情影院aqdy鲁丝片二区 | 在线观看亚洲视频 | 国产精品久久久久永久免费观看 | 黄色免费网站下载 | 午夜精品99久久免费 | av片免费播放| 91丨九色丨高潮 | av女优中文字幕在线观看 | 国产精品福利午夜在线观看 | 久久成人麻豆午夜电影 | 青青河边草观看完整版高清 | 成人午夜网 | 欧美视频在线二区 | 亚洲狠狠干| 国内久久久久久 | 亚洲乱码久久久 | 国产成人综 | 狠狠躁夜夜a产精品视频 | 1024久久| 国产免费黄视频在线观看 | 亚洲网久久 | 久草在线视频看看 | 69精品视频在线观看 | 18国产精品白浆在线观看免费 | 免费aa大片 | 97超碰福利久久精品 | 欧美国产亚洲精品久久久8v | 国产一级片一区二区三区 | 天堂在线一区二区三区 | 日本中文字幕视频 | 91超级碰 | 91传媒在线 | 午夜神马福利 | 91传媒91久久久 | 香蕉在线视频观看 | 丁香花在线观看视频在线 | 激情欧美丁香 | 欧美色图88 | 人人藻人人澡人人爽 | 亚洲自拍av在线 | 97碰在线视频 | 午夜少妇av | 一区免费在线 | 日韩av高潮 | 天天干天天干天天操 | 涩涩网站在线 | 日韩乱色精品一区二区 | 久久精品国产美女 | 亚洲一区二区三区在线看 | 97电影在线看视频 | av黄色在线观看 | 亚洲精品一区二区三区新线路 | 国产精品久久久久久久久久久久久 | 深爱综合网 | 亚洲日日夜夜 | 五月天六月婷 | 婷婷丁香色 | 18国产精品福利片久久婷 | 天天天天综合 | 五月激情视频 | 国产精品成人久久久 | 一区二区视频电影在线观看 | 91在线在线观看 | 欧美黑人性猛交 | 在线中文字幕播放 | 怡红院成人在线 | 夜又临在线观看 | 国产视频久久 | 亚洲综合最新在线 | 中文字幕在线播放一区 | 成人久久久久久久久 | 2019中文在线观看 | 日韩色在线 | 国产高清av在线播放 | 在线a视频免费观看 | av免费片 | 亚洲国产精品电影 | 亚洲精品1区2区3区 超碰成人网 | 色偷偷88欧美精品久久久 | 婷婷久久综合九色综合 | 欧美一区二区伦理片 | 亚洲视频观看 | 日韩色区 | 中文国产在线观看 | 天堂av网在线 | 一本一本久久a久久精品综合小说 | 在线看黄网站 | 亚洲一区二区观看 | 国产精品中文在线 | 免费观看mv大片高清 | 美国av大片 | 一区二区精品视频 | 日韩成人免费在线 | 国产在线综合视频 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲国产影院 | 国产精品第二十页 | 五月婷婷精品 | 91看片网址| 天堂av在线免费 | 蜜臀av网址 | 国产精品久久久久影院日本 | 午夜国产一区二区三区四区 | 五月婷久 | v片在线播放 | 美女精品在线 | 日韩在线观看影院 | 欧美人人| 欧美精品中文字幕亚洲专区 | 免费观看成年人视频 | 国产午夜精品久久 | 久久久免费观看完整版 | 久操视频在线观看 | 国产精品白浆 | 欧美日韩国产免费视频 | 91麻豆操 | 婷婷五月情 | 色视频在线 | 五月婷婷综合激情网 | 人人艹人人 | 国内三级在线观看 | 久久免费美女视频 | 国产国产人免费人成免费视频 | 五月婷婷av在线 | 久久99国产精品自在自在app | 亚洲精品在线资源 | 香蕉影视app | 国产精品日韩久久久久 | 国内免费久久久久久久久久久 | 色干干| 韩日精品在线 | 中文字幕在线观看免费高清电影 | 伊人久久精品久久亚洲一区 | 99产精品成人啪免费网站 | 日日干天天插 | 免费影视大全推荐 | 日日噜噜噜噜夜夜爽亚洲精品 | 热久久在线视频 | 欧美少妇xxxxxx| 午夜.dj高清免费观看视频 | 成人在线网站观看 | 91视频88av| 久久精品国产免费看久久精品 | 欧洲av不卡 | 黄色成人av | 久久电影国产免费久久电影 | 最新av观看| 欧美日韩三级 | 久久麻豆精品 | 蜜臀av夜夜澡人人爽人人桃色 |