精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CMU15-445 數(shù)據(jù)庫系統(tǒng)播客:數(shù)據(jù)庫系統(tǒng) Join 算法與原理

數(shù)據(jù)庫 其他數(shù)據(jù)庫
一個優(yōu)秀的數(shù)據(jù)庫系統(tǒng)會智能地運用這些算法。這正是 SQL 這種聲明式語言的強大之處:用戶只需描述“需要什么”,而無需關(guān)心“如何獲取”,底層的數(shù)據(jù)庫系統(tǒng)會負(fù)責(zé)選擇最高效的路徑來執(zhí)行查詢。

在關(guān)系型數(shù)據(jù)庫系統(tǒng)中, 連接(Join)操作是核心且至關(guān)重要的一環(huán) 。數(shù)據(jù)庫通過 規(guī)范化(Normalization) 將數(shù)據(jù)拆分到不同表中以減少信息冗余。然而,當(dāng)我們需要獲取跨多個表的綜合信息時,就必須使用 Join 操作,將被拆分的表重新組合,以 重建數(shù)據(jù)間的邏輯關(guān)系,確保信息完整 。 

連接操作的核心概念

在深入探討具體算法之前,我們首先需要理解評估和執(zhí)行連接操作的一些基本原則。

連接的評估基準(zhǔn):I/O 成本

一個查詢在執(zhí)行時會被數(shù)據(jù)庫的查詢優(yōu)化器轉(zhuǎn)換成一個“查詢計劃樹”。這個樹的葉子節(jié)點代表對數(shù)據(jù)表的訪問,而中間節(jié)點則是各種操作符,Join 就是其中最重要的一種。

評估 Join 算法優(yōu)劣的主要標(biāo)準(zhǔn)是其磁盤 I/O 成本 。因為磁盤的讀寫速度遠(yuǎn)慢于內(nèi)存,I/O 操作往往是數(shù)據(jù)庫性能的最大瓶頸。為了量化分析,我們通常設(shè)定如下變量:

  • 表 R:占用 M 個磁盤頁(Page),包含 m 條元組(Tuple)。
  • 表 S:占用 N 個磁盤頁,包含 n 條元組。

在后續(xù)的成本分析中,我們主要關(guān)注 Join 操作本身的 I/O 開銷,而不計算最終結(jié)果輸出的開銷,因為后者對于所有算法來說都是相同的。

外層表與內(nèi)層表的選擇:為何“小表驅(qū)動大表”?

在執(zhí)行 Join 時,查詢計劃會指定一個 外層表(Outer Table,或稱驅(qū)動表) 和一個 內(nèi)層表(Inner Table,或稱被驅(qū)動表) 。在查詢計劃樹中,左側(cè)輸入通常是外層表,右側(cè)是內(nèi)層表。

一個核心的優(yōu)化原則是: 盡可能選擇小表作為外層表 。這里的“小”通常指占用磁盤頁(Blocks/Pages)較少,或者在某些算法中指元組數(shù)量(Rows)較少。

為什么這個選擇如此重要?我們可以通過一些基礎(chǔ)的 Join 算法 I/O 公式來直觀理解:

對于塊嵌套循環(huán)連接(Block Nested Loop Join) ,其 I/O 成本公式為:外層表 I/O + (外層表塊數(shù) × 內(nèi)層表 I/O)

  • 大表 R (1000頁) 作外層,小表 S (500頁) 作內(nèi)層 :成本為 M + (M × N) = 1000 + (1000 × 500) = 501,000 次 I/O。
  • 小表 S (500頁) 作外層,大表 R (1000頁) 作內(nèi)層 :成本為 N + (N × M) = 500 + (500 × 1000) = 500,500 次 I/O。 在此算法中,總 I/O 差別不大,但外層表越小,外層循環(huán)次數(shù)越少。

對于索引嵌套循環(huán)連接(Index Nested Loop Join) ,其成本與外層表的 元組數(shù)量 密切相關(guān)。其 I/O 成本公式為:外層表 I/O + (外層表元組數(shù) × 內(nèi)層表索引查找成本)

  • 大表 R (m=100,000) 作外層 :成本為 M + (m × C) = 1000 + (100,000 × C)
  • 小表 S (n=40,000) 作外層 :成本為 N + (n × C) = 500 + (40,000 × C)

其中 C 是單次索引查找的成本。顯然,外層表的元組數(shù)越少,對內(nèi)層表的索引“探測”次數(shù)就越少,總 I/O 成本也顯著降低。

結(jié)論 :外層表扮演著“驅(qū)動”的角色,它的每一行(或每一塊)都會觸發(fā)一次對內(nèi)層表的操作。選擇小表作為外層表,可以有效減少驅(qū)動次數(shù),從而大幅降低對內(nèi)層表的掃描或查找總成本,這是 Join 優(yōu)化的一個基礎(chǔ)出發(fā)點。

連接的輸出方式:物化 vs. 記錄 ID

連接操作符找到匹配的元組后,如何將結(jié)果傳遞給上層操作符?主要有兩種方式:

數(shù)據(jù)物化 (Materialization) :將匹配元組中所有需要的屬性值復(fù)制出來,形成一個全新的輸出元組。

  • 優(yōu)點 :后續(xù)操作符無需再訪問原始表,因為所有信息都已備齊。
  • 缺點 :如果涉及的屬性很多,生成的元組會很“寬”,占用大量內(nèi)存且復(fù)制成本高。

延遲物化 (Late Materialization) :只輸出連接鍵和匹配元組的記錄 ID(Tuple ID)。

  • 優(yōu)點 :輸出的中間結(jié)果非常小,節(jié)省內(nèi)存。這在 列式存儲 數(shù)據(jù)庫中尤其高效,因為它避免了提前讀取查詢最終不需要的列。
  • 缺點 :當(dāng)上層操作符需要其他屬性時,必須根據(jù)記錄 ID 回溯到原始數(shù)據(jù)頁去獲取,這可能引入額外的隨機 I/O。如果連接的選擇性很低(即匹配的元組很多),回溯成本可能會非常高昂。

三大主流連接算法

數(shù)據(jù)庫系統(tǒng)主要實現(xiàn)了三類連接算法:嵌套循環(huán)連接、排序合并連接和哈希連接。

嵌套循環(huán)連接 (Nested Loop Join)

這是最基礎(chǔ)、最直觀的連接算法,其思想類似于編程中的嵌套 for 循環(huán)。

簡單嵌套循環(huán) (Simple/Stupid Nested Loop Join)

對于外層表的 每一條元組 ,遍歷內(nèi)層表的 所有元組 進(jìn)行比較。這種方式性能極差,因為會導(dǎo)致對內(nèi)層表的重復(fù)全盤掃描。

塊嵌套循環(huán) (Block Nested Loop Join)

這是對簡單版本的巨大改進(jìn)。算法按 塊(Page/Block) 進(jìn)行循環(huán),而不是按元組。對于外層表的 每一塊 ,遍歷內(nèi)層表的 所有塊 。

索引嵌套循環(huán) (Index Nested Loop Join)

如果內(nèi)層表的連接鍵上存在 索引 ,系統(tǒng)就可以利用該索引來避免全表掃描。對于外層表的每一條元組,使用其連接鍵值去 探測 (Probe) 內(nèi)層表的索引,快速定位匹配的元組。

  • 適用場景 : 在 OLTP (聯(lián)機事務(wù)處理) 場景中極為常見,因為外鍵列上通常建有索引。
  • 動態(tài)索引 : 即使預(yù)先沒有索引,如果優(yōu)化器判斷創(chuàng)建臨時索引的成本低于全表掃描的成本,它甚至可以在查詢執(zhí)行期間 動態(tài)創(chuàng)建索引 ,查詢結(jié)束后再丟棄。

排序合并連接 (Sort-Merge Join)

此算法通過預(yù)先排序來優(yōu)化連接過程,分為兩個階段:

  1. 排序階段 (Sort Phase) :如果數(shù)據(jù)尚未排序,使用外部歸并排序(當(dāng)數(shù)據(jù)大于內(nèi)存時)或快速排序(當(dāng)數(shù)據(jù)可載入內(nèi)存時)分別對兩個表按連接鍵進(jìn)行排序。
  2. 合并階段 (Merge Phase) :使用兩個指針(游標(biāo))同步地掃描兩個已排序的表。
  • 比較指針處的鍵值,移動鍵值較小的那個指針。
  • 如果鍵值相等,則找到一個匹配,輸出結(jié)果。此時,需要特別處理 重復(fù)鍵 。例如,當(dāng)內(nèi)層表有多個與外層表當(dāng)前元組匹配的鍵時,需要固定外層表指針,移動內(nèi)層表指針直到不匹配。如果外層表下一條元組的鍵值仍然相同,內(nèi)層表的指針需要 回溯 到重復(fù)鍵的起始位置,以確保所有組合都被找到。

優(yōu)勢場景 :

  • 數(shù)據(jù)已序 :當(dāng)一個或兩個表已經(jīng)按連接鍵排序(例如,連接鍵上存在聚簇索引),可以免去排序成本。
  • 結(jié)果需排序 :當(dāng)查詢包含 ORDER BY 子句,且排序鍵恰好是連接鍵時,此算法可以直接產(chǎn)出有序結(jié)果,避免了額外的排序操作,實現(xiàn)“一舉兩得”。
  • 最壞情況 :如果所有元組的連接鍵都相同,合并階段會退化成類似嵌套循環(huán)的行為,性能急劇下降。但這種情況在現(xiàn)實中極為罕見。

哈希連接 (Hash Join)

哈希連接是現(xiàn)代數(shù)據(jù)庫系統(tǒng)中最快、最主流的連接算法,它利用哈希函數(shù)“分而治之”。如果兩個元組的連接鍵相等,那么它們的哈希值也必然相等。因此,我們只需在哈希到同一位置的元組“桶”內(nèi)進(jìn)行比較即可。

基本哈希連接算法

  1. 構(gòu)建階段 (Build Phase) :選擇 外層表(通常是小表) ,掃描它并使用哈希函數(shù) h1 在內(nèi)存中構(gòu)建一個 哈希表 。哈希表的鍵是連接鍵的哈希值,值通常是元組本身或其引用。
  2. 探測階段 (Probe Phase) :掃描 內(nèi)層表 ,對每一條元組的連接鍵計算相同的哈希值,然后去哈希表中查找(探測)。如果找到,再比較原始連接鍵值以確認(rèn)精確匹配(處理哈希沖突)。

優(yōu)化:布隆過濾器 (Bloom Filter)

在構(gòu)建哈希表的同時,可以額外構(gòu)建一個 布隆過濾器 。這是一種高效的概率型數(shù)據(jù)結(jié)構(gòu)(本質(zhì)是一個位圖),用于快速判斷一個元素 是否可能 在一個集合中。

  • 特性 :它 絕不會漏報 (False Negative,如果它說“無”,就一定沒有),但 可能誤報 (False Positive,如果它說“有”,可能實際沒有)。它體積小、速度快,可以完全放入 CPU 緩存。
  • 工作方式 :在探測內(nèi)層表時,先用布隆過濾器檢查。如果過濾器返回“無”,則該元組一定不匹配,可直接跳過,避免了訪問內(nèi)存或磁盤中的哈希表。這被稱為 旁路信息傳遞 (Sideways Information Passing) 。

Grace 哈希連接 (處理大數(shù)據(jù))

當(dāng)外層表太大,無法在內(nèi)存中為其完整構(gòu)建一個哈希表時,基本哈希連接就會因頻繁的磁盤交換而失效。 Grace 哈希連接 (或稱分區(qū)哈希連接)解決了這個問題。

  1. 分區(qū)階段 (Partition Phase) :使用一個哈希函數(shù) h1,將 兩個表 都散列成多個 分區(qū)(Partitions) ,并寫入磁盤。h1 的選擇要保證同一連接鍵的元組一定進(jìn)入相同的分區(qū)對(例如,R表的分區(qū) i 和 S表的分區(qū) i)。
  2. 連接階段 (Join Phase) :依次將每一對分區(qū)(如 R 的分區(qū)1 和 S 的分區(qū)1)加載到內(nèi)存中。因為每個分區(qū)都足夠小,可以為其構(gòu)建內(nèi)存哈希表,然后在該分區(qū)內(nèi)部執(zhí)行基本的哈希連接。
  • 遞歸分區(qū) :如果分區(qū)后某個分區(qū)依然過大,無法載入內(nèi)存,系統(tǒng)會對該分區(qū) 再次使用一個新的哈希函數(shù) h2 進(jìn)行遞歸分區(qū) ,直到所有子分區(qū)都足夠小。此方法巧妙地將隨機 I/O 轉(zhuǎn)換為了高效的順序 I/O。

算法選擇與總結(jié)

現(xiàn)代數(shù)據(jù)庫的查詢優(yōu)化器內(nèi)置了 成本估算模型 ,它會綜合考慮表大小、數(shù)據(jù)分布特征、內(nèi)存可用性、索引情況和查詢需求(如是否需要排序)等因素,為每個查詢動態(tài)選擇最優(yōu)的 Join 算法。

下表總結(jié)了我們示例中不同算法的性能對比:

算法類型

理論 I/O 成本公式

示例 I/O 次數(shù)

示例耗時 (0.1ms/IO)

簡單嵌套循環(huán)

~50,000,000

~1.4 小時

塊嵌套循環(huán)

501,000

~50 秒

索引嵌套循環(huán)

201,000

~20 秒

排序合并連接

7,500

0.75 秒

Grace 哈希連接

4,500

0.45 秒

(注:示例基于 R 表 M=1000頁, m=100k元組; S 表 N=500頁, n=40k元組;索引查找成本 C=2 IO)

核心結(jié)論

  • 在大多數(shù)情況下, 哈希連接是性能最佳的選擇 ,尤其對于大規(guī)模數(shù)據(jù)的等值連接。
  • 排序合并連接 在特定場景下有奇效:當(dāng)數(shù)據(jù) 已排序 或查詢結(jié)果 需要按連接鍵排序 時,它可能是最優(yōu)選。此外,對于 不等值連接 (如 > 或 <)和范圍連接,排序合并連接通常優(yōu)于哈希連接。
  • 索引嵌套循環(huán)連接 是 OLTP 輕量級查詢的首選,特別是當(dāng)外層表結(jié)果集很小且內(nèi)層表有可用索引時。

一個優(yōu)秀的數(shù)據(jù)庫系統(tǒng)會智能地運用這些算法。這正是 SQL 這種聲明式語言的強大之處:用戶只需描述“需要什么”,而無需關(guān)心“如何獲取”,底層的數(shù)據(jù)庫系統(tǒng)會負(fù)責(zé)選擇最高效的路徑來執(zhí)行查詢。這些經(jīng)典的算法思想不僅在單機數(shù)據(jù)庫中至關(guān)重要,在分布式數(shù)據(jù)庫中也同樣適用,只是將磁盤 I/O 成本替換為了開銷更高的網(wǎng)絡(luò) I/O 成本。

責(zé)任編輯:武曉燕 來源: Piper蛋窩
相關(guān)推薦

2025-08-12 07:31:11

2025-08-04 06:00:00

2025-08-11 02:25:00

數(shù)據(jù)庫數(shù)據(jù)模型

2025-08-21 06:39:13

2025-08-18 07:32:23

2025-08-06 01:22:00

2025-08-06 00:00:00

2025-08-11 07:31:40

2025-08-08 07:37:07

2025-08-04 07:31:30

2025-08-22 06:49:20

2025-08-14 07:32:42

2025-08-13 07:31:18

2025-08-07 07:31:42

2025-08-26 02:12:00

2025-08-18 05:11:00

數(shù)據(jù)庫系統(tǒng)播客

2025-08-18 01:01:00

樂觀并發(fā)控制

2025-08-26 03:15:00

2025-08-20 07:40:05

2025-08-18 01:23:00

點贊
收藏

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

日韩成人综合网站| 日韩av资源站| 欧美日韩 国产精品| 欧美大黄免费观看| 国产又黄又猛视频| 超碰porn在线| 91色综合久久久久婷婷| 国产精品旅馆在线| 麻豆成人在线视频| 国产精品三级| 精品捆绑美女sm三区| 日韩免费毛片视频| bt在线麻豆视频| 久久综合网色—综合色88| 成人久久久久爱| 天堂在线免费观看视频| 亚洲国产一区二区在线观看 | 在线观看免费黄网站| 高h视频在线观看| 久久久久久黄色| 999视频在线免费观看| 国产又粗又猛又黄视频| 国产综合久久| 久久久电影免费观看完整版| 青青草成人免费视频| 年轻的保姆91精品| 欧美性猛交xxxxxxxx| 91九色在线观看视频| 亚洲婷婷噜噜| 国产精品久久久久三级| 久久青青草综合| 性一交一乱一乱一视频| 蜜臂av日日欢夜夜爽一区| 91成人天堂久久成人| 强行糟蹋人妻hd中文| 欧美3p视频| 亚洲色图欧美制服丝袜另类第一页| 欧美xxxx黑人| 欧美高清xxx| 欧美性色欧美a在线播放| 91免费视频网站在线观看| 超碰在线网站| 亚洲精品日韩综合观看成人91| 天天综合狠狠精品| 成人在线免费看| 久久蜜桃一区二区| 精品无码久久久久久久动漫| 高h震动喷水双性1v1| 国产主播一区二区| 91久久精品国产| 在线观看免费中文字幕| 日本亚洲一区二区| 国产精品91久久久久久| 天天干在线播放| 免费亚洲网站| 日本欧美一二三区| 亚洲天堂一区在线| 亚洲影视在线| 国产mv久久久| 波多野结衣理论片| 日产国产欧美视频一区精品| 国产精品成人免费视频| 精品成人无码久久久久久| 日韩视频在线一区二区三区 | 日韩在线播放一区| 后入内射无码人妻一区| 欧美激情电影| 久久影视电视剧免费网站| 亚洲xxxx3d动漫| 欧美福利一区| 国模私拍视频一区| 久久99国产综合精品免费| 老鸭窝毛片一区二区三区| 日本91av在线播放| 中文字幕在线观看1| 精品影视av免费| 5566中文字幕一区二区| 亚洲第一页视频| 99久久精品99国产精品| 欧美在线播放一区| 3d成人动漫在线| 亚洲精品水蜜桃| 久久久999免费视频| 大胆人体一区| 欧美精品在线观看播放| 在线观看你懂的视频| 精品少妇3p| 亚洲人成网站色ww在线| 少妇高潮一区二区三区喷水| 午夜日韩在线| 欧美最顶级的aⅴ艳星| 最近中文在线观看| 国产精品羞羞答答xxdd| 久99久视频| 日本在线观看免费| 亚洲成a人v欧美综合天堂| 老头吃奶性行交视频| www久久久| 亚洲国产天堂久久国产91 | 午夜久久久久久久久久| 不卡av在线网| 亚洲日本欧美在线| free性欧美16hd| 欧美日韩一区二区三区免费看| 精产国品一二三区| 国产精品免费大片| 久久久久久中文字幕| 中文字幕乱码人妻无码久久| 国产99久久久久| 亚洲欧美精品在线观看| av日韩中文| 337p亚洲精品色噜噜噜| 黄色短视频在线观看| 亚洲国产不卡| 国产盗摄xxxx视频xxx69 | 亚洲免费人成在线视频观看| 久艹在线观看视频| 久久aⅴ国产紧身牛仔裤| 99re视频| 在线视频二区| 欧美性xxxxxxxxx| 无码人妻丰满熟妇啪啪网站| 91欧美日韩| 日本一欧美一欧美一亚洲视频| 国产高清精品软件丝瓜软件| 国产欧美一区二区精品久导航 | 国产馆在线观看| 在线亚洲观看| 国产高清精品一区二区| 蜜桃视频网站在线| 91久久久免费一区二区| 熟妇人妻久久中文字幕| 欧美+日本+国产+在线a∨观看| 国产精品久久久久久久久久久新郎| 欧美一区二区三区激情| 亚洲欧美成aⅴ人在线观看| 一区二区三区网址| 五月天亚洲一区| 午夜精品久久久久久久久久久久久| 国产色在线视频| 国产精品久久久久影视| 国产区二区三区| 精品一区二区三区中文字幕老牛| 69**夜色精品国产69乱| 少妇人妻精品一区二区三区| 一区二区三区欧美亚洲| 中文字幕55页| 欧美一区二区三区另类 | 国产成人精品福利| 欧美激情视频播放| 亚洲欧美激情另类| 亚洲午夜久久久久久久久电影院 | 波多野结衣视频在线观看| 91麻豆免费观看| aa在线免费观看| 欧美激情在线免费| 国产精品成人一区二区三区吃奶| 免费动漫网站在线观看| 一本一道久久a久久精品 | 亚洲精品精品亚洲| 绯色av蜜臀vs少妇| 精品成人在线| 国产一区二区无遮挡 | 国产精品视频午夜| 日本在线人成| 日韩区在线观看| 日本少妇激情视频| 91在线观看污| 欧美午夜性生活| 日韩中文在线电影| 91免费国产视频| 欧美人与性动交α欧美精品济南到| 精品国产乱码久久久久久闺蜜| 国产特黄大片aaaa毛片| 久久精品欧美一区二区三区不卡 | 国产激情一区二区三区桃花岛亚洲| 熟妇熟女乱妇乱女网站| 视频一区在线| 91成人国产在线观看| 成年午夜在线| 欧美精品久久一区| 亚洲精品在线观看av| 91老师片黄在线观看| 久久久精品三级| 自拍视频亚洲| 精品免费国产| 亚洲ww精品| 欧美国产日韩一区| 日av在线播放| 欧美一级片在线| 日韩欧美亚洲视频| 日本一区二区三区高清不卡| 九九热视频免费| 亚洲国产99| 亚洲欧洲三级| 欧美xxxx在线| 国产欧美精品在线| av中文字幕在线看| 在线国产精品播放| 丰满少妇一级片| 91成人国产精品| 美女毛片在线观看| 久久网站热最新地址| 亚洲天堂网2018| 国产日韩一区| 国产日本欧美在线| 国产日韩欧美一区二区三区| 91色在线观看| 欧美精品高清| 97国产精品久久| 里番在线观看网站| 亚洲码在线观看| 国产超碰人人模人人爽人人添| 欧美视频中文字幕在线| 色欲人妻综合网| 国产性色一区二区| 日韩综合第一页| 久久99精品久久久久久| 97在线免费公开视频| 欧美黄免费看| 一本久道久久综合狠狠爱亚洲精品| 成人爽a毛片| 91网站在线免费观看| 成人精品国产| 国产97色在线| 国产精选在线| 欧美福利视频在线| 免费av网站在线观看| 中文字幕久久久| 男人天堂综合| 亚洲国产婷婷香蕉久久久久久| 一卡二卡三卡在线观看| 日本电影亚洲天堂一区| 国偷自拍第113页| 亚洲午夜久久久久久久久久久 | 午夜精品久久久久久久久久久| 国产精品视频一区二区三| 国产三级一区二区三区| 国产精品三级在线观看无码| av在线不卡免费看| 韩国av中国字幕| 国产**成人网毛片九色| 操人视频免费看| 国产一区日韩二区欧美三区| 别急慢慢来1978如如2| 久久精品天堂| 免费在线观看毛片网站| 性欧美videos另类喷潮| 少妇人妻在线视频| av不卡免费看| 国产在线青青草| 久久人人超碰| 国产一线二线三线在线观看| 日韩av不卡在线观看| 最新天堂在线视频| 精品一区二区三区视频在线观看 | 国产剧情在线视频| 色综合天天性综合| 中文字幕一区在线播放| 日韩欧美在线视频观看| 亚洲欧美偷拍一区| 欧美亚洲一区二区在线| 中文字幕 日韩有码| 欧美色精品在线视频| 亚洲一卡二卡在线观看| 欧美一区二区大片| 国产小视频免费观看| 亚洲国产天堂久久国产91| 欧洲视频在线免费观看| 中日韩午夜理伦电影免费 | 国产精品嫩草99a| 天天爽天天爽天天爽| 亚洲精品日韩综合观看成人91| 久久精品视频免费在线观看| 亚洲成av人片一区二区三区| 在线观看中文字幕视频| 一本到一区二区三区| 亚洲综合网av| 欧美tickling网站挠脚心| 亚洲区小说区图片区| 一个人www欧美| 国产成人无吗| 97精品久久久| 国产成人福利夜色影视| 97超碰在线播放| 欧美绝顶高潮抽搐喷水合集| 日本福利一区二区三区| 欧美va亚洲va日韩∨a综合色| 免费无码毛片一区二三区| 视频一区中文字幕国产| 日本中文字幕在线不卡| 91视频com| 欧美黑人猛猛猛| 黄色精品在线看| 亚洲天堂网在线视频| 精品国产91洋老外米糕| 国产视频精选在线| 久久91亚洲精品中文字幕| 亚洲精品福利电影| 91在线色戒在线| 国产99精品一区| 成人在线观看毛片| 丝瓜av网站精品一区二区| 国产精品久久久久久久99| 久久人人超碰精品| 三级影片在线看| 在线影院国内精品| 人人妻人人澡人人爽久久av| 在线日韩精品视频| free性m.freesex欧美| 91精品国产自产在线| 亚洲精品蜜桃乱晃| 草草草视频在线观看| 日本中文字幕不卡| 熟女人妻在线视频| 一区二区在线观看视频| 中文字幕在线播放日韩| 亚洲男人的天堂在线播放| 亚洲图区一区| 成人免费午夜电影| 欧美精品一区二区三区中文字幕| 欧美一级爱爱视频| 久久99国产精品免费| 中文字幕 自拍| 午夜精品视频在线观看| 国产浮力第一页| 自拍亚洲一区欧美另类| 日韩精品一区二区三区| 激情小说综合区| 亚洲欧美一区在线| 国产乱叫456| 国产精品美女久久久久高潮 | 日韩视频国产视频| 尤物网址在线观看| 国产精品久久久久久久久久久久| 人体久久天天| av7777777| 99久久夜色精品国产网站| 国产在线欧美在线| 日韩欧美色综合| av在线网址观看| 91在线国产电影| 中文精品久久| 午夜激情影院在线观看| 国产精品久久久久久久久晋中 | 九色porny自拍视频在线观看| 国产成人免费观看| 欧美日韩国产高清| 久久人人爽人人片| 亚洲精品福利视频网站| www.黄色av| 欧美高清性猛交| 4438全国亚洲精品观看视频| 国产一级大片免费看| 国产成人av电影在线观看| 欧美国产日韩综合| 精品国产乱码久久久久久1区2区 | 久青草国产在线| 日韩男女性生活视频| 欧美午夜精彩| 亚洲一级片网站| 亚洲色图另类专区| 99视频国产精品免费观看a| 欧美极品在线视频| 国产精品chinese在线观看| 男人添女人下部高潮视频在观看| jlzzjlzz国产精品久久| 日韩欧美在线观看免费| 亚洲一级黄色av| 美女视频一区| www.亚洲成人网| 99国产精品久久久| 真实新婚偷拍xxxxx| 日韩中文字幕在线| 草草视频在线一区二区| 亚洲午夜精品久久久久久人妖| 2023国产精品自拍| 国产又粗又猛又爽又黄的视频一 | 午夜精品一区二区在线观看的 | 瑟瑟视频在线| 99r国产精品视频| 亚洲视频播放| 超碰人人干人人| 日韩免费在线观看| xxx欧美xxx| 女女同性女同一区二区三区按摩| 国产福利一区二区三区视频| 国产免费av一区| 久久成人一区二区| 欧美成人专区| 第四色婷婷基地| 五月天亚洲婷婷| 欧美边添边摸边做边爱免费| 国产精品毛片一区视频| 蜜臀av亚洲一区中文字幕| 免费三片在线播放| 一区二区三区视频免费| 成人h动漫精品一区二区器材| 成人性视频欧美一区二区三区| 亚洲精品中文在线影院|