亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

從元組演算到執(zhí)行計(jì)劃:數(shù)據(jù)庫(kù)查詢優(yōu)化與慢SQL排查實(shí)戰(zhàn)

從元組演算到執(zhí)行計(jì)劃:數(shù)據(jù)庫(kù)查詢優(yōu)化與慢SQL排查實(shí)戰(zhàn) 1. 為什么考完試就忘干凈了元組演算和域演算的真實(shí)用處我見(jiàn)過(guò)太多數(shù)據(jù)庫(kù)系統(tǒng)工程師考生把元組演算、域演算背得滾瓜爛熟考試一過(guò)就徹底拋到腦后。這個(gè)現(xiàn)象本身不奇怪——考試要的是公式推導(dǎo)和符號(hào)變換而日常開發(fā)面對(duì)的是SQL語(yǔ)句和慢查詢?nèi)罩緝烧呖雌饋?lái)完全不是一個(gè)世界的東西。但我想說(shuō)的是這些理論概念恰恰是理解數(shù)據(jù)庫(kù)底層邏輯的鑰匙尤其是當(dāng)你開始研究查詢優(yōu)化器、分析執(zhí)行計(jì)劃、排查慢SQL的時(shí)候你當(dāng)年背誦的那些公式會(huì)以另一種方式重新出現(xiàn)在你面前。先把這個(gè)話題攤開來(lái)說(shuō)。元組演算和域演算誕生于上世紀(jì)七十年代是關(guān)系模型創(chuàng)始人E.F.Codd在研究如何用數(shù)學(xué)語(yǔ)言描述數(shù)據(jù)庫(kù)查詢時(shí)提出的。它們和關(guān)系代數(shù)一樣是關(guān)系數(shù)據(jù)庫(kù)查詢語(yǔ)言的理論根基。SQL雖然看起來(lái)像是英文句子但它的語(yǔ)義基礎(chǔ)其實(shí)是元組演算的變體——SELECT ... FROM ... WHERE ...這種結(jié)構(gòu)本質(zhì)上就是在做元組變量的聲明和條件判斷。這塊內(nèi)容的核心價(jià)值在哪里我總結(jié)下來(lái)有三點(diǎn)。第一它是理解查詢優(yōu)化器推理過(guò)程的理論前提。優(yōu)化器要把SQL重寫成執(zhí)行計(jì)劃需要一套嚴(yán)密的等價(jià)變換規(guī)則這些規(guī)則的來(lái)源就是關(guān)系代數(shù)和演算的恒等變換。不懂這套底層邏輯看執(zhí)行計(jì)劃永遠(yuǎn)只能看個(gè)皮毛。第二它是判斷一條SQL是否可優(yōu)化、如何優(yōu)化的思維工具。比如一個(gè)子查詢能不能改寫成JOIN一個(gè)EXISTS能不能換成IN這些問(wèn)題的答案其實(shí)都隱藏在關(guān)系代數(shù)和演算的等價(jià)性里。第三它是你作為數(shù)據(jù)庫(kù)系統(tǒng)工程師區(qū)別于普通CRUD開發(fā)者的知識(shí)壁壘。面試聊到索引、執(zhí)行計(jì)劃、查詢重寫的時(shí)候深度立刻見(jiàn)分曉。這篇文章我就打算從元組演算和域演算的基本概念講起一路聊到它們和SQL的對(duì)應(yīng)關(guān)系再深入到查詢優(yōu)化器的工作機(jī)制最后落到真實(shí)的執(zhí)行計(jì)劃分析場(chǎng)景里。如果你正在備考數(shù)據(jù)庫(kù)系統(tǒng)工程師或者工作中經(jīng)常被慢查詢折磨這篇內(nèi)容應(yīng)該能幫上忙。2. 元組演算和域演算到底在說(shuō)什么從集合論到查詢公式2.1 先搞清楚研究對(duì)象元組、域和關(guān)系要理解元組演算和域演算先得把三個(gè)基礎(chǔ)概念厘清元組、域、關(guān)系。關(guān)系數(shù)據(jù)庫(kù)里的“關(guān)系”在數(shù)學(xué)上就是一組元組的集合。元組可以理解成一張表中的一行它是一組值的有序排列。域則更簡(jiǎn)單——它是元組中某個(gè)分量可能取值的集合。舉個(gè)例子一張學(xué)生表里有學(xué)號(hào)、姓名、年齡三個(gè)列那么每一行就是一個(gè)元組(2024001, 張三, 20)這個(gè)三元組就是元組的具體表現(xiàn)形式。而“學(xué)號(hào)”這一列所有可能的取值的集合就是這個(gè)屬性對(duì)應(yīng)的域。理解了這個(gè)基礎(chǔ)元組演算和域演算的區(qū)別就清晰了元組演算以“行”為基本單位做變量聲明和條件判斷域演算以“列的值”為基本單位。用大白話說(shuō)元組演算是“我一整行一整行地看”域演算是“我按每個(gè)單元格的值來(lái)判斷”。這個(gè)區(qū)別看似簡(jiǎn)單但它決定了兩種演算在表達(dá)能力上的差異也決定了它們?cè)诤髞?lái)數(shù)據(jù)庫(kù)實(shí)現(xiàn)中的命運(yùn)。實(shí)際關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)里SQL的語(yǔ)義實(shí)現(xiàn)更靠近元組演算而域演算則更多地出現(xiàn)在一些形式化驗(yàn)證和邏輯推導(dǎo)的場(chǎng)景中。所以很多教材會(huì)偏重元組演算這是有工程原因的。2.2 元組演算的基本形式存在量詞和全稱量詞元組演算的基本表達(dá)式長(zhǎng)得像這樣{t | P(t)}這個(gè)式子的意思是所有滿足條件P的元組t的集合。理解這個(gè)表達(dá)式是理解整個(gè)元組演算的關(guān)鍵。它其實(shí)用了一階謂詞邏輯的語(yǔ)言來(lái)定義集合——你給我一個(gè)條件我從整個(gè)關(guān)系集合里把所有符合條件的行挑出來(lái)。這里最讓初學(xué)者頭疼的是兩個(gè)量詞存在量詞?和全稱量詞?。存在量詞好理解意思是“存在這樣一行”全稱量詞麻煩一點(diǎn)意思是“對(duì)所有行都成立”。舉一個(gè)特別典型的例子。給定學(xué)生表S學(xué)號(hào), 姓名, 年齡, 系別和選課表SC學(xué)號(hào), 課程號(hào), 成績(jī)要查“選修了全部課程的學(xué)生姓名”。這個(gè)需求用自然語(yǔ)言說(shuō)很簡(jiǎn)單但用元組演算寫就稍微繞一點(diǎn){t[姓名] | S(t) ∧ (?u)(C(u) → (?v)(SC(v) ∧ v[學(xué)號(hào)]t[學(xué)號(hào)] ∧ v[課程號(hào)]u[課程號(hào)]))}這個(gè)式子的邏輯是我先找到學(xué)生元組t然后對(duì)所有課程元組u只要這門課程存在就必須存在一條選課記錄v把t和u關(guān)聯(lián)起來(lái)。外層是對(duì)所有學(xué)生遍歷內(nèi)層是對(duì)所有課程推導(dǎo)。如果某門課沒(méi)有對(duì)應(yīng)的選課記錄這個(gè)學(xué)生的元組就會(huì)被排除。這個(gè)例子考研、軟考、數(shù)據(jù)庫(kù)系統(tǒng)工程師考試都愛(ài)出。很多人考試時(shí)靠死記硬背這個(gè)模板通過(guò)但如果你真的理解了它的推理過(guò)程你會(huì)發(fā)現(xiàn)在“對(duì)所有課程都選了”這種業(yè)務(wù)需求的SQL實(shí)現(xiàn)中你會(huì)有更清晰的改寫思路——用NOT EXISTS還是用COUNT比較背后的邏輯基礎(chǔ)就在這里。2.3 域演算按值域說(shuō)話的另一種視角域演算的表達(dá)式長(zhǎng)這樣{x1, x2, ..., xn | P(x1, x2, ..., xn)}它聲明的是若干個(gè)域變量每個(gè)變量取各自域中的值然后通過(guò)條件P來(lái)約束這些變量的組合。不用聲明整行元組作為變量而是直接針對(duì)列的值做操作。域演算的一個(gè)經(jīng)典例子是“查年齡大于18歲的學(xué)生姓名”{姓名 | (?學(xué)號(hào))(?年齡)(?系別)(學(xué)生(學(xué)號(hào), 姓名, 年齡, 系別) ∧ 年齡 18)}這里的變量是學(xué)號(hào)、年齡、系別這些具體的值而不是一整行。它更像是用邏輯公式描述一張?zhí)摂M的結(jié)果表這一列放姓名那幾列是約束條件涉及的值大家組合起來(lái)。從查詢表達(dá)力的角度看域演算和元組演算是等價(jià)的——能用一個(gè)表達(dá)出來(lái)的查詢另一個(gè)也能表達(dá)。但認(rèn)知方式很不一樣元組演算比較接近“行掃描”的直覺(jué)域演算更接近“列投影”加“篩選”的認(rèn)知。有意思的是SQL的執(zhí)行計(jì)劃中投影操作和過(guò)濾操作確實(shí)是分開的域演算的這種拆分方式反而和物理執(zhí)行過(guò)程有著某種呼應(yīng)。給備考的朋友一個(gè)建議考試中域演算的題目不用摳太深掌握基本轉(zhuǎn)換規(guī)則即可。但元組演算請(qǐng)務(wù)必理解透因?yàn)镾QL的嵌套子查詢語(yǔ)義和它高度同構(gòu)。2.4 安全性問(wèn)題別讓查詢結(jié)果無(wú)窮大學(xué)演算還有一個(gè)繞不開的話題——安全性。由于演算用的是謂詞邏輯如果不加限制你完全可能寫出一個(gè)公式它的結(jié)果集合是無(wú)限的。舉個(gè)例子{t | ?S(t)}的意思是“所有不在學(xué)生表S里的元組的集合”。如果元組的定義域是無(wú)限的自然數(shù)集合這個(gè)查詢的結(jié)果也是無(wú)限的這在工程上毫無(wú)意義也不可能執(zhí)行。所以數(shù)據(jù)庫(kù)提供了“安全表達(dá)式”的概念一個(gè)演算表達(dá)式是安全的當(dāng)且僅當(dāng)它的所有可能結(jié)果都來(lái)自某個(gè)有限的域集合。實(shí)際操作中這個(gè)有限域集合通常來(lái)自關(guān)系實(shí)例中實(shí)際出現(xiàn)的值以及查詢自身用到的常量。SQL之所以是可執(zhí)行的查詢語(yǔ)言根源就在于它隱含了這樣的安全性約束。這事聽(tīng)著抽象但它在SQL中的影子很常見(jiàn)——為什么SQL的SELECT結(jié)果必須是有限的行數(shù)為什么子查詢里的NOT IN在遇到NULL時(shí)會(huì)有詭異的行為這些工程問(wèn)題追溯到底層都和安全語(yǔ)義有關(guān)。理解這些數(shù)學(xué)邊角能幫你更淡定地面對(duì)那些“玄學(xué)”SQL問(wèn)題。3. 演算到SQL的橋梁SEL/SELECT-WHERE結(jié)構(gòu)與查詢樹的推演3.1 SQL的語(yǔ)義核心是“謂詞約束元組投影”現(xiàn)在把視角從數(shù)學(xué)世界拉回工程世界。SQL的SELECT ... FROM ... WHERE ...結(jié)構(gòu)和元組演算的{t | P(t)}存在清晰的對(duì)應(yīng)關(guān)系FROM子句提供了元組遍歷的范圍WHERE子句扮演了謂詞P的角色SELECT子句則決定了最終保留哪些分量。這個(gè)對(duì)應(yīng)關(guān)系不是巧合SQL在設(shè)計(jì)時(shí)就是受了元組演算的啟發(fā)。SQL的創(chuàng)始人Donald Chamberlin和Raymond Boyce在1974年發(fā)表的論文里明確提到了關(guān)系演算對(duì)SEQUEL語(yǔ)言設(shè)計(jì)的影響。所以當(dāng)你寫一條SQL時(shí)其實(shí)你已經(jīng)在用元組演算的思維了只是平時(shí)沒(méi)人提醒你這一點(diǎn)。工程上的一個(gè)特定實(shí)現(xiàn)是SELselect算子和它的參數(shù)化形式。其實(shí)不一定要停留在某個(gè)特定數(shù)據(jù)庫(kù)產(chǎn)品的層面我們可以從通用角度理解一條SQL在執(zhí)行計(jì)劃層面會(huì)被拆成一系列邏輯算子包括掃描算子、過(guò)濾算子、投影算子、連接算子等。這些算子的排列組合形成了查詢樹而查詢樹是優(yōu)化器做邏輯等價(jià)變換的基礎(chǔ)。3.2 查詢樹的等價(jià)變換把公式變成可執(zhí)行的方案我舉個(gè)例子來(lái)說(shuō)明查詢樹推演的過(guò)程。假設(shè)有兩個(gè)表——訂單表O訂單號(hào), 客戶號(hào), 金額, 狀態(tài)和客戶表C客戶號(hào), 姓名, 城市?,F(xiàn)在要查“北京的客戶在2024年下的金額大于1000元的訂單”。SQL寫出來(lái)很直觀SELECT O.訂單號(hào), O.金額, C.姓名 FROM 訂單 O JOIN 客戶 C ON O.客戶號(hào) C.客戶號(hào) WHERE C.城市 北京 AND O.金額 1000 AND O.下單時(shí)間 BETWEEN 2024-01-01 AND 2024-12-31;在關(guān)系代數(shù)層面這條SQL對(duì)應(yīng)的查詢樹是先做訂單表掃描再做客戶表掃描然后做連接操作最后做選擇和投影。但問(wèn)題是這個(gè)執(zhí)行順序是不是最優(yōu)的優(yōu)化器會(huì)做一件關(guān)鍵的事——把可以提前做的過(guò)濾操作盡量下推。比如可以在掃描訂單表的時(shí)候就把金額1000和下單時(shí)間范圍的過(guò)濾條件直接套在表掃描之上只把符合條件的訂單行送入連接操作客戶表也一樣先把城市北京的客戶過(guò)濾出來(lái)。這樣進(jìn)入連接操作的數(shù)據(jù)量會(huì)大幅減少連接代價(jià)也隨之降低。在關(guān)系代數(shù)里這個(gè)操作的理論依據(jù)是選擇和連接的可交換性σ_條件(連接(A, B)) 等價(jià)于 連接(σ_條件A(A), σ_條件B(B))只要過(guò)濾條件只涉及A或只涉及B就可以安全地下推。3.3 一個(gè)反直覺(jué)的改寫案例EXISTS的演算本質(zhì)關(guān)于等價(jià)變換我分享一個(gè)特別有意思的真實(shí)案例。有一次我在優(yōu)化一條SQL業(yè)務(wù)場(chǎng)景是查“有訂單的客戶”。第一版SQL用的是IN子查詢SELECT C.客戶號(hào), C.姓名 FROM 客戶 C WHERE C.客戶號(hào) IN (SELECT O.客戶號(hào) FROM 訂單 O WHERE O.狀態(tài) 已完成);這條SQL在客戶表數(shù)據(jù)量十萬(wàn)、訂單表數(shù)據(jù)量百萬(wàn)的情況下執(zhí)行計(jì)劃出現(xiàn)了很糟糕的選擇——優(yōu)化器選擇了先全量掃描訂單子查詢?cè)賹?duì)客戶表做逐行探測(cè)。雖然訂單上建有客戶號(hào)索引但子查詢需要先過(guò)濾狀態(tài)已完成索引使用效率不高導(dǎo)致執(zhí)行時(shí)間飆到十幾秒。我當(dāng)時(shí)的處理是把IN改寫為EXISTSSELECT C.客戶號(hào), C.姓名 FROM 客戶 C WHERE EXISTS (SELECT 1 FROM 訂單 O WHERE O.客戶號(hào) C.客戶號(hào) AND O.狀態(tài) 已完成);改寫后優(yōu)化器可以更靈活地選擇執(zhí)行策略把客戶表作為驅(qū)動(dòng)表訂單表通過(guò)客戶號(hào)索引進(jìn)行關(guān)聯(lián)探測(cè)執(zhí)行時(shí)間從十幾秒降到了幾百毫秒。那么用演算怎么解釋這個(gè)改寫的正確性IN子查詢的語(yǔ)義是“客戶號(hào)在子查詢結(jié)果集合中”EXISTS的語(yǔ)義是“存在一條訂單記錄滿足條件”。用元組演算的語(yǔ)言來(lái)說(shuō)IN對(duì)應(yīng)的是外層元組的值是否屬于一個(gè)已確定的集合EXISTS對(duì)應(yīng)的是一個(gè)存在量詞推導(dǎo)。這兩個(gè)表達(dá)式的邏輯等價(jià)性正是謂詞邏輯中“元素屬于集合”和“存在量詞斷言”之間的同義變換。這個(gè)案例給我們的啟示是優(yōu)化器雖然能做很多自動(dòng)重寫但它依賴統(tǒng)計(jì)信息、索引結(jié)構(gòu)、代價(jià)模型并不總是智能到能識(shí)別所有等價(jià)的寫法。作為工程師理解底層演算語(yǔ)義能在關(guān)鍵時(shí)刻用人工改寫的方式幫優(yōu)化器一把。4. 優(yōu)化器內(nèi)部視角從邏輯樹到物理計(jì)劃的完整推理鏈路4.1 邏輯優(yōu)化和物理優(yōu)化其實(shí)是兩層不同的決策深入查詢優(yōu)化器內(nèi)部你會(huì)發(fā)現(xiàn)它做的事情遠(yuǎn)不止“等價(jià)重寫”這么簡(jiǎn)單。一個(gè)完整的查詢優(yōu)化流程可以拆成兩個(gè)層面邏輯優(yōu)化和物理優(yōu)化。邏輯優(yōu)化是在不改變查詢語(yǔ)義的前提下對(duì)查詢樹做結(jié)構(gòu)性的等價(jià)變換。常見(jiàn)的手法包括謂詞下推把過(guò)濾盡可能提前、子查詢展開把子查詢改寫成連接、連接重排序決定多表連接的先后順序、視圖合并把視圖的定義并入主查詢。這些變換的理論基礎(chǔ)就是前面說(shuō)的關(guān)系代數(shù)和演算的恒等性。物理優(yōu)化則是在邏輯計(jì)劃確定之后決定每一具體操作的實(shí)現(xiàn)方式表的訪問(wèn)路徑是走全表掃描還是索引掃描連接算法是用嵌套循環(huán)、哈希連接還是排序合并是否需要額外的排序操作并發(fā)執(zhí)行的程度如何設(shè)定這一層依賴的是數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的代價(jià)模型、統(tǒng)計(jì)信息和物理存儲(chǔ)結(jié)構(gòu)。打個(gè)比喻邏輯優(yōu)化像是你在規(guī)劃旅行路線時(shí)決定“先去北京再去上海還是先去上海再去北京”物理優(yōu)化則像是決定“這兩座城市之間坐高鐵還是飛機(jī)”。前者關(guān)注的是步驟的先后和內(nèi)容后者關(guān)注的是每一步的執(zhí)行方式。4.2 代價(jià)模型的兩個(gè)核心組件基數(shù)估計(jì)和成本公式理解了這兩層優(yōu)化之后我想帶你看看優(yōu)化器做決策的最關(guān)鍵依據(jù)——代價(jià)模型。絕大多數(shù)現(xiàn)代數(shù)據(jù)庫(kù)的代價(jià)模型都包含兩個(gè)核心組件基數(shù)估計(jì)和成本公式?;鶖?shù)估計(jì)是估算某個(gè)中間結(jié)果集有多少行成本公式則是根據(jù)基數(shù)估算、數(shù)據(jù)分布、物理存儲(chǔ)特性來(lái)算一個(gè)操作的代價(jià)數(shù)值。優(yōu)化器會(huì)枚舉多個(gè)可能的計(jì)劃用代價(jià)模型估算每個(gè)計(jì)劃的總代價(jià)然后選代價(jià)最小的那一個(gè)?;鶖?shù)估計(jì)的難度遠(yuǎn)超想象它需要統(tǒng)計(jì)信息、數(shù)據(jù)分布假設(shè)通常是均勻分布或直方圖、列之間有相關(guān)性假設(shè)。當(dāng)統(tǒng)計(jì)信息過(guò)期、數(shù)據(jù)分布不均勻基數(shù)估計(jì)的結(jié)果會(huì)產(chǎn)生數(shù)量級(jí)偏差優(yōu)化器就會(huì)做出災(zāi)難性的執(zhí)行計(jì)劃選擇。這也是為什么實(shí)際運(yùn)維中要定期做統(tǒng)計(jì)信息更新比如ANALYZE、UPDATE STATISTICS以及為什么一些簡(jiǎn)單的SQL會(huì)莫名奇妙地走錯(cuò)執(zhí)行計(jì)劃。成本公式的細(xì)節(jié)因數(shù)據(jù)庫(kù)產(chǎn)品而異但大框架非常相似。對(duì)全表掃描來(lái)說(shuō)代價(jià)和表的總行數(shù)、塊數(shù)成正比對(duì)索引掃描來(lái)說(shuō)代價(jià)和選擇度、索引層數(shù)、回表次數(shù)相關(guān)對(duì)連接操作來(lái)說(shuō)代價(jià)取決于驅(qū)動(dòng)表行數(shù)、被驅(qū)動(dòng)表探測(cè)代價(jià)、內(nèi)存可用量等。理解這些你才能讀懂執(zhí)行計(jì)劃里那些數(shù)值的含義。4.3 統(tǒng)計(jì)信息對(duì)執(zhí)行計(jì)劃的影響一個(gè)被忽視的殺手我在一線工作中遇到過(guò)太多因?yàn)榻y(tǒng)計(jì)信息問(wèn)題導(dǎo)致的性能事故。有一個(gè)印象很深的例子某業(yè)務(wù)表的數(shù)據(jù)量從十萬(wàn)漲到五千萬(wàn)但因?yàn)樽詣?dòng)統(tǒng)計(jì)信息的閾值設(shè)置不當(dāng)分區(qū)級(jí)的統(tǒng)計(jì)信息沒(méi)有及時(shí)更新優(yōu)化器以為這張表還是十萬(wàn)行于是選擇了一個(gè)對(duì)小表友好的連接順序——大表驅(qū)動(dòng)小表。結(jié)果執(zhí)行計(jì)劃的實(shí)際運(yùn)行時(shí)間從幾十毫秒膨脹到十幾分鐘。當(dāng)時(shí)排查的完整鏈路是這樣的慢查詢?nèi)罩静蹲降揭粭lSQL的執(zhí)行時(shí)間異常拉長(zhǎng)平時(shí)幾毫秒最近穩(wěn)定在十幾分鐘。用EXPLAIN看執(zhí)行計(jì)劃發(fā)現(xiàn)連接順序明顯反直覺(jué)大表作為驅(qū)動(dòng)表小表作為被驅(qū)動(dòng)表。查看統(tǒng)計(jì)信息刷新時(shí)間發(fā)現(xiàn)該表最近一次ANALYZE是在三個(gè)月前當(dāng)時(shí)數(shù)據(jù)量確實(shí)是十萬(wàn)行。手動(dòng)執(zhí)行ANALYZE強(qiáng)制刷新統(tǒng)計(jì)信息。再看執(zhí)行計(jì)劃連接順序已經(jīng)糾正SQL執(zhí)行時(shí)間恢復(fù)到毫秒級(jí)。這個(gè)案例里沒(méi)有任何SQL寫法的問(wèn)題純粹是統(tǒng)計(jì)信息滯后導(dǎo)致的優(yōu)化器判斷失誤。這個(gè)教訓(xùn)我后來(lái)在團(tuán)隊(duì)里反復(fù)強(qiáng)調(diào)遇到SQL性能突變第一件事永遠(yuǎn)先確認(rèn)統(tǒng)計(jì)信息是否新鮮再去懷疑SQL本身的問(wèn)題。4.4 連接順序選擇的天花板當(dāng)優(yōu)化器也無(wú)能為力連接順序的選擇是查詢優(yōu)化中最難的問(wèn)題之一因?yàn)閚個(gè)表的連接順序有n!種可能每一種還需要考慮對(duì)應(yīng)的連接算法組合。對(duì)于7表或者10表以上的連接全枚舉的代價(jià)就已經(jīng)高到不可接受了所以現(xiàn)代優(yōu)化器幾乎都采用動(dòng)態(tài)規(guī)劃和啟發(fā)式搜索相結(jié)合的方式。但這帶來(lái)一個(gè)新的問(wèn)題——啟發(fā)式策略在多數(shù)情況下表現(xiàn)良好但在極少數(shù)邊界場(chǎng)景下會(huì)選出明顯次優(yōu)的計(jì)劃。工程師對(duì)這類查詢的處理方式是分析連接關(guān)系圖譜找出最小、最有選擇性的子集先行連接再逐級(jí)擴(kuò)展或者干脆用查詢提示hint鎖定連接順序。我在給客戶做性能優(yōu)化時(shí)有一條心得對(duì)復(fù)雜查詢與其讓優(yōu)化器做全空間搜索不如人工拆解。把一個(gè)大查詢拆成幾個(gè)中間結(jié)果表每一步都確保執(zhí)行計(jì)劃可控。這種做法的代價(jià)是額外存儲(chǔ)和多一步ETL但換來(lái)的是執(zhí)行計(jì)劃的穩(wěn)定性和可預(yù)測(cè)性。對(duì)生產(chǎn)環(huán)境的穩(wěn)定性要求而言這是值得的。5. 實(shí)戰(zhàn)看執(zhí)行計(jì)劃以EXPLAIN輸出為例的慢查詢定位方法論5.1 執(zhí)行計(jì)劃閱讀的基本順序從嵌套最深到最外層理論知識(shí)說(shuō)了一大堆現(xiàn)在落到最實(shí)務(wù)的部分——怎么通過(guò)執(zhí)行計(jì)劃定位和修復(fù)慢查詢。一個(gè)執(zhí)行計(jì)劃通常以樹狀結(jié)構(gòu)呈現(xiàn)無(wú)論是MySQL的EXPLAIN輸出、PostgreSQL的EXPLAIN還是Oracle的執(zhí)行計(jì)劃輸出核心邏輯是一致的。閱讀執(zhí)行計(jì)劃的正確順序其實(shí)是自內(nèi)向外、自底向上先看每個(gè)表中訪問(wèn)路徑的代價(jià)再看連接操作是不是按合理順序執(zhí)行最后看最外層的結(jié)果集構(gòu)造是否有不必要的開銷。很多新手犯的錯(cuò)誤是一上來(lái)就盯著第一個(gè)節(jié)點(diǎn)看這容易漏掉關(guān)鍵問(wèn)題。我從一次具體的性能排查講起。有一個(gè)場(chǎng)景論壇系統(tǒng)的帖子列表頁(yè)需要展示每個(gè)帖子的標(biāo)題、作者名、最新回復(fù)人和回復(fù)時(shí)間。SQL長(zhǎng)這樣SELECT p.title, u.name AS author_name, r.name AS reply_user, r.reply_time FROM post p JOIN user u ON p.author_id u.id LEFT JOIN LATERAL (SELECT ru.name, r.reply_time FROM reply r JOIN user ru ON r.user_id ru.id WHERE r.post_id p.id ORDER BY r.reply_time DESC LIMIT 1) r ON TRUE WHERE p.status 1 ORDER BY p.update_time DESC LIMIT 20;這條SQL在數(shù)據(jù)量上去之后變得很慢壓測(cè)時(shí)平均響應(yīng)時(shí)間達(dá)到3秒。先看執(zhí)行計(jì)劃的關(guān)鍵部分。5.2 從執(zhí)行計(jì)劃里讀出的三個(gè)問(wèn)題EXPLAIN ANALYZE輸出顯示外層post表掃描走了索引idx_post_status_update沒(méi)問(wèn)題但內(nèi)層LATERAL子查詢對(duì)reply表的探測(cè)居然走了全表掃描。為什么原來(lái)reply表的post_id列上雖然有索引但索引的統(tǒng)計(jì)信息顯示該列的重復(fù)值極多優(yōu)化器估算走索引的回表代價(jià)高于全表掃描。問(wèn)題出在回復(fù)表和帖子表的數(shù)據(jù)傾斜——少量熱帖集中了大量回復(fù)導(dǎo)致優(yōu)化器做了錯(cuò)誤的基數(shù)估計(jì)。第二個(gè)問(wèn)題是ORDER BY p.update_time DESC要求排序而執(zhí)行計(jì)劃的排序節(jié)點(diǎn)使用了臨時(shí)文件排序filesort內(nèi)存排序緩沖區(qū)設(shè)置過(guò)小導(dǎo)致磁盤排序。第三個(gè)問(wèn)題是LEFT JOIN LATERAL在PostgreSQL里是逐行調(diào)用子查詢這在邏輯上是串行的無(wú)法并行化。當(dāng)驅(qū)動(dòng)表需要掃描的行數(shù)很多時(shí)串行代價(jià)會(huì)被線性放大。5.3 修復(fù)方案和實(shí)施步驟針對(duì)這三個(gè)問(wèn)題我當(dāng)時(shí)的處理方案如下第一步修正基數(shù)估計(jì)——重新采集reply表的統(tǒng)計(jì)信息并且給post_id這一列建立覆蓋索引idx_reply_post_user_time (post_id, user_id, reply_time)。覆蓋索引可以讓子查詢中的過(guò)濾和排序都在索引層面完成不需要回表。第二步調(diào)整排序參數(shù)——把排序緩沖區(qū)從默認(rèn)的2MB調(diào)整到32MB同時(shí)檢查是否可以通過(guò)調(diào)整索引讓結(jié)果天然有序。最終是在post表的update_time列和status列上建立了組合索引讓外層查詢的過(guò)濾和排序在同一個(gè)索引掃描中完成直接消除了排序節(jié)點(diǎn)。第三步重寫LATERAL子查詢。這里我能想到的最佳實(shí)踐是如果熱帖的回復(fù)數(shù)量本身就不多可以接受一筆額外的預(yù)聚合如果熱帖集中更適合的方式是把“每個(gè)帖子最近回復(fù)”這個(gè)邏輯做成物化結(jié)果。事實(shí)上在很多高并發(fā)社區(qū)場(chǎng)景里這類“最新回復(fù)”數(shù)據(jù)都是異步寫入緩存或單獨(dú)匯總表的實(shí)時(shí)跑SQL反而是不合理的架構(gòu)。優(yōu)化后的執(zhí)行計(jì)劃里三個(gè)性能瓶頸全部消除SQL平均響應(yīng)時(shí)間從3秒降到80毫秒。這個(gè)案例的典型意義在于它同時(shí)涉及了統(tǒng)計(jì)信息、索引設(shè)計(jì)、參數(shù)配置、SQL結(jié)構(gòu)四個(gè)維度而這些恰恰是查詢優(yōu)化中最常見(jiàn)的四個(gè)切入點(diǎn)。提示看執(zhí)行計(jì)劃時(shí)關(guān)注三種特定的標(biāo)志性字段——filtered比例過(guò)低說(shuō)明索引選擇性差、filesort或sort節(jié)點(diǎn)出現(xiàn)說(shuō)明排序無(wú)法利用索引、臨時(shí)表出現(xiàn)說(shuō)明結(jié)果集產(chǎn)生中間落盤。這三個(gè)信號(hào)基本覆蓋了90%的慢查詢根因。5.4 常見(jiàn)的執(zhí)行計(jì)劃誤讀和我踩過(guò)的坑執(zhí)行計(jì)劃閱讀的坑也值得專門說(shuō)一說(shuō)。第一個(gè)坑把節(jié)點(diǎn)的輸出行數(shù)當(dāng)成實(shí)際行數(shù)。在執(zhí)行計(jì)劃中節(jié)點(diǎn)輸出行數(shù)是優(yōu)化器的基數(shù)估計(jì)值而不是實(shí)際執(zhí)行行數(shù)。如果想看實(shí)際行數(shù)要用EXPLAIN ANALYZE或者EXPLAIN (ANALYZE, BUFFERS)它會(huì)真實(shí)執(zhí)行查詢并回傳實(shí)際行數(shù)和實(shí)際耗時(shí)。只讀估算行數(shù)很容易被誤導(dǎo)。第二個(gè)坑忽略緩沖BUFFERS信息。很多執(zhí)行計(jì)劃的慢不是慢在計(jì)算而是慢在I/O。BUFFERS字段能告訴你這個(gè)節(jié)點(diǎn)訪問(wèn)了多少個(gè)數(shù)據(jù)塊其中多少是命中了共享緩沖區(qū)的。如果某個(gè)節(jié)點(diǎn)讀取的塊數(shù)非常多且命中率低說(shuō)明存在嚴(yán)重的隨機(jī)I/O需要通過(guò)索引調(diào)整來(lái)訪問(wèn)更少的數(shù)據(jù)塊。第三個(gè)坑直接把執(zhí)行計(jì)劃中的總代價(jià)拿來(lái)排序比較。代價(jià)數(shù)值是相對(duì)的不同數(shù)據(jù)庫(kù)、不同版本、不同參數(shù)下的代價(jià)基準(zhǔn)都不一樣。我自己更習(xí)慣的做法是看計(jì)劃結(jié)構(gòu)是否符合直覺(jué)——有沒(méi)有哪個(gè)節(jié)點(diǎn)做了不合理的全表掃描有沒(méi)有多表連接的驅(qū)動(dòng)順序反了有沒(méi)有該走索引卻走了掃描。結(jié)構(gòu)對(duì)加上實(shí)際耗時(shí)驗(yàn)證比糾結(jié)具體數(shù)值更可靠。6. 從演算到現(xiàn)代場(chǎng)景枚舉元組、C#值元組解構(gòu)和畢達(dá)哥拉斯三元組的視角6.1 枚舉元組當(dāng)“元組”遇上現(xiàn)代編程語(yǔ)言聊了很多數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)容我想再擴(kuò)展一下“元組”這個(gè)詞在現(xiàn)代編程中的含義因?yàn)檫@個(gè)概念對(duì)數(shù)據(jù)庫(kù)工程師來(lái)說(shuō)既熟悉又陌生。在C#、Python、Rust等現(xiàn)代編程語(yǔ)言中元組tuple是一種輕量級(jí)的數(shù)據(jù)結(jié)構(gòu)用于打包一組異構(gòu)的值。C#從7.0開始引入了值元組ValueTuple和解構(gòu)語(yǔ)法這使得開發(fā)者可以這樣寫var (name, age) GetUserInfo(userId); Console.WriteLine(${name} is {age} years old.);這種語(yǔ)法本質(zhì)上是在做元組的解構(gòu)——把一個(gè)元組變量按位置拆成多個(gè)命名變量。這恰好呼應(yīng)了域演算的思維按域變量取值而不是把整個(gè)元組作為一個(gè)整體去操作。對(duì)數(shù)據(jù)庫(kù)開發(fā)者來(lái)說(shuō)理解現(xiàn)代語(yǔ)言中的元組操作有一個(gè)實(shí)際好處當(dāng)你編寫ORM查詢或者做DTO映射時(shí)你實(shí)際上是在關(guān)系的元組和編程語(yǔ)言的元組之間做翻譯。批量枚舉元組、按位置解構(gòu)、按屬性命名這些操作背后的思維模型和關(guān)系數(shù)據(jù)庫(kù)的行列模型是同構(gòu)的。6.2 畢達(dá)哥拉斯三元組一個(gè)經(jīng)典的域演算思維練習(xí)題“noj畢達(dá)哥拉斯3元組”這個(gè)熱搜詞也很有意思。畢達(dá)哥拉斯三元組指的是滿足a2 b2 c2的三個(gè)正整數(shù)比如(3, 4, 5)。用這個(gè)例子來(lái)做域演算的思維練習(xí)特別合適因?yàn)樗枰懵暶魅齻€(gè)域變量然后描述它們之間的約束關(guān)系。用域演算來(lái)表達(dá)“找出所有畢達(dá)哥拉斯三元組”{(a, b, c) | a ∈ N ∧ b ∈ N ∧ c ∈ N ∧ a2 b2 c2 ∧ 1 ≤ a b c ≤ 100}這個(gè)公式本質(zhì)上是一個(gè)約束搜索問(wèn)題的聲明式描述。你聲明三個(gè)整數(shù)變量給出取值范圍和約束條件剩下的交給執(zhí)行器去做。這正好對(duì)應(yīng)了SQL中一個(gè)經(jīng)典問(wèn)題的寫法——生成三個(gè)范圍笛卡爾積后做篩選WITH numbers AS (SELECT generate_series(1, 100) AS n) SELECT a.n AS a, b.n AS b, c.n AS c FROM numbers a, numbers b, numbers c WHERE a.n b.n AND b.n c.n AND a.n * a.n b.n * b.n c.n * c.n;這個(gè)寫法雖然直觀但性能算不上好——范圍小時(shí)還能接受范圍一旦擴(kuò)大笛卡爾積的規(guī)模就是O(n3)優(yōu)化器也無(wú)法把這種約束轉(zhuǎn)換成索引友好的計(jì)劃。工程上的處理方式通常是縮小搜索范圍、用數(shù)學(xué)邊界剪枝、或者事先生成緩存表。這個(gè)例子恰好揭示了聲明式語(yǔ)言的一個(gè)根本矛盾表達(dá)簡(jiǎn)潔不等于執(zhí)行高效優(yōu)化器能做的重寫是有限度的。6.3 數(shù)據(jù)庫(kù)查詢優(yōu)化器在AI和現(xiàn)代數(shù)據(jù)棧中的角色變遷把話題拉回查詢優(yōu)化器本身。在現(xiàn)代數(shù)據(jù)棧里查詢優(yōu)化器早已不局限于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)。Spark SQL、Presto/Trino、ClickHouse這些大數(shù)據(jù)引擎都有自己的一套查詢優(yōu)化策略但底層依然是在做邏輯重寫和物理計(jì)劃選擇。它們面對(duì)的場(chǎng)景更極端——數(shù)據(jù)規(guī)模更大數(shù)據(jù)源更異構(gòu)查詢模式更多樣。值得注意的是近年來(lái)業(yè)界在探索用機(jī)器學(xué)習(xí)技術(shù)改進(jìn)基數(shù)估計(jì)和代價(jià)模型。比如把統(tǒng)計(jì)信息丟給神經(jīng)網(wǎng)絡(luò)去學(xué)習(xí)數(shù)據(jù)分布或者用強(qiáng)化學(xué)習(xí)來(lái)決定連接順序。這些嘗試的方向是對(duì)的但受限于訓(xùn)練數(shù)據(jù)獲取成本、模型解釋性和推理延遲離大規(guī)模落地還有距離。對(duì)一線工程師來(lái)說(shuō)與其等待優(yōu)化器變得更智能不如更勤奮地理解它現(xiàn)有的決策邏輯。在當(dāng)前這個(gè)數(shù)據(jù)環(huán)境下有另一種趨勢(shì)很值得關(guān)注很多團(tuán)隊(duì)開始主動(dòng)繞過(guò)通用優(yōu)化器用物化視圖、預(yù)計(jì)算、增量更新等方式來(lái)回避“查詢時(shí)優(yōu)化”的問(wèn)題。這其實(shí)是一種務(wù)實(shí)的工程折中——既然查詢優(yōu)化器在復(fù)雜場(chǎng)景下難以做到最優(yōu)不如把復(fù)雜計(jì)算挪到寫入端或離線批處理端。能用預(yù)計(jì)算解決的查詢不要在查詢時(shí)挑戰(zhàn)優(yōu)化器。7. 備考復(fù)習(xí)與工作實(shí)踐的結(jié)合路徑我的個(gè)人操作經(jīng)驗(yàn)聊了這么多理論、工程和案例最后分享一些實(shí)際的備考和工作經(jīng)驗(yàn)。如果你是準(zhǔn)備數(shù)據(jù)庫(kù)系統(tǒng)工程師考試的考生我的建議是不要只背符號(hào)公式也不要完全放棄理論。把所有演算表達(dá)式和關(guān)系代數(shù)表達(dá)式翻譯成SQL再翻譯回表達(dá)式來(lái)回做幾遍。這個(gè)過(guò)程的收益遠(yuǎn)超你的想象——它讓你建立的是語(yǔ)義層面的等價(jià)關(guān)系網(wǎng)絡(luò)而考試題考察的恰好就是這種等價(jià)變換能力。我當(dāng)初備考時(shí)的一個(gè)具體做法是把歷年真題里的關(guān)系代數(shù)、元組演算、SQL三者的互轉(zhuǎn)題目自己整理成一張對(duì)應(yīng)表。每種查詢模式選擇、投影、連接、分組、去重、嵌套都寫清楚三種表達(dá)方式的對(duì)應(yīng)規(guī)則。復(fù)習(xí)效果非常好而且這份對(duì)應(yīng)表在后來(lái)工作中分析SQL執(zhí)行計(jì)劃時(shí)依然能派上用場(chǎng)。工作中建議重點(diǎn)掌握幾個(gè)實(shí)操技能EXPLAIN的深度使用、統(tǒng)計(jì)信息的手動(dòng)管理、覆蓋索引的設(shè)計(jì)原則、子查詢和連接的手工改寫。這些技能在慢查詢排查中的實(shí)用性幾乎是日常性的。我給自己團(tuán)隊(duì)定的底線是每個(gè)人都能在十分鐘內(nèi)定位一條慢SQL的根因并給出至少兩種優(yōu)化思路。能做到這一點(diǎn)數(shù)據(jù)庫(kù)系統(tǒng)工程師這個(gè)頭銜才算真正名副其實(shí)。最后再分享一個(gè)小技巧。每次優(yōu)化完一條SQL我會(huì)把優(yōu)化前后的SQL和執(zhí)行計(jì)劃的對(duì)比截圖保存下來(lái)附帶一段文字說(shuō)明根因。半年下來(lái)就是一個(gè)非常有價(jià)值的案例庫(kù)。下次有人問(wèn)“為什么這條SQL變慢了”直接翻案例庫(kù)比重新排查一遍高效太多。這種積累方式對(duì)個(gè)人成長(zhǎng)和團(tuán)隊(duì)沉淀都有好處。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一级片视频啪啪| 色噜噜人妻丝袜a∨先锋影 | 免费作爱一级视频| 美女91在线观看| 极品国产内射| 国产suv精品一区二区四| 97欧美| 97超碰jingpin| 欧美精品三级黄片| 屌妞视频久久久久久久| 五月激情视频| 欧美91精品国产自产| 欲香欲色天天天综合和网| 亚洲成人无码影院| 成人青青草原伊人| 亚洲瓯美色图| 免费毛片在线播放| 97超碰欧美中文字幕| 精品久久久九九九孕妇| 色色色欧美| 日产操逼| 丰满少妇一区二区三区免费看| 久久亚洲不卡| 日产狠狠干| 少妇人妻好深太紧了vr91| 久久精品中文字幕女同| 激情99| 日韩偷拍一区二区三区| 91N综合网在线| 久久鲁夜| 国产区在线| 久久99草| 99亚洲人人| 盗摄 精品 另类 一区| 久久直播国产| 人人干黄色| 亚洲成人在线资源| 亚洲天天影视色综合| 免费视频a级毛片免费视频| 丰满美女一级毛片在线播放| 日本孕妇一区二区视频操逼免费看 | 翔田千里AV无码秘 三区| 欧美同性恋 的搜索结果 - 91n| 日韩紧密久久| 综合色播| 99热在线观看| 性爱av在线免费观看| 国产精品爽爽va在线观看98| 亚洲国产成人福利在线观看| 欧美激情性爱视频网站| 成人毛片免费| 欧美性生活免费网| 中文字幕啊啊啊在线观看视频| 国产女人和拘做爰视频 | 91操熟女| 亚洲久9| 亚洲精品久久一区二区三区蜜桃臀| 国内精品999| 午夜天堂啪啪| 亚洲 91 在线| 搡老熟女国产1000部| 久草精品一区| 亚洲第一视频 欧美风情 日韩| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美日韩激情无码专区| 屌逼麻豆| 午夜AV污污污| 综合网 欧美| 欧美一级AAAAAAA| 黄在线| 熟妇熟女视频一区二区三区| 樱花草社区www中国| 另类专区加勒比| 青青五月天| 欧美天天综合网| 国产精品噜噜噜日日日| 操人妻视频| 国产91亚洲精品一区二区三区| 亚洲1区2区三区高清中文字幕| 六月色色| 精彩久久中文| 秋霞色色影院| 久久精品国产72国产精品福利| 另类视频在线| av优播| 五毛骚逼极品美女怕怕| 97在线免费| 天天干人人干天天日97| 中文字幕av色| av2014 日韩在线中文字幕| 插入综合网| 91美女視頻| 国产精品不卡av免费在线观看| 色综合尤物| 美欧老女人97| 国产精品com| 五月丁香啪啪啪| 亚洲综合激情五月久久| 欧美色综合图片| 夜夜嗨视频| 美女被艹尤物视频| 蜜桃久久久久久久久久久久| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 97在线观| 激情AV| 色综合1991| 夜色91| 色五月综合| 欧美综合传媒| 十八禁的黄污污免费网站| 亚洲欧美中日韩| 久久AV色| 中文久久爆乳| 97欧美久久久久久久| 四虎国产精品永久地址入口| 国产精品网站免费| 一区操逼日比视频| 大香蕉欧美国产日韩高潮| 久久精品人体| 91肉片| 狠狠色色| 熟女乱3伦999| 秋霞鲁丝午夜无码一区二区三| 秋霞操逼片| 人妻久热在线| 亚洲在线观看| 激情小说五月天| 超碰色美女| 国产粉嫩出水在线播放| 午夜福利 成人 91| 91一区二区| 91 综合网| 免费观看的av| 亚洲最新Av| 日韩三级在线观看mp4| 伊人久久综合影院精品久久久| 亚洲欧美天堂在线| 黄页视频网站野外| 嗯嗯啊啊视频一区二区三区| 大JI巴好深好爽又大又粗视频| 大香蕉啪啪网| 久久精品国产亚洲AV清纯| 久久视网78| 精品人妻中文字幕高清| 亚洲综合校园春色| 人妻AV在线| 日韩中文字墓| 日本男人插女人的逼黄色| 欧美最大综合网| 成人a大片在线观看| 小骚逼被操的爽不爽| 久草网站免费在线观看| 欧美中日韩XXXX| 日韩情色视频| 免费精品福利在线观看| 国产主播福利| 97中文字幕一区| 99色色| 国产一区二区三区久久久精品| 日本ZZ高免费A级视频| 小少妇| 女同女同恋久久级三级| 9丨久久九九九| 久久久禁| 清纯唯美激情四射| 五月丁香综合啪啪| 九色精品视频导航1| 99精品综合久久久久五月天| 久九干| 一二三四视频在线社区中文字幕| 一级性爱视频免费观看 | 深夜激情| 久久精品欧美一区蜜桃| 手机看av网站在线看| 91老司机视频| 国产精品乱码久久久久久| 长长久久曰曰夜夜成人网| 天天色黄色影院天天操| 亚洲婷婷综合网| 超碰在线综合97| 成人综合网 欧美| 岛国黄色大片网站| 国产成人精品必看| 性色AV蜜色av色欲av| 亚洲第一色页夜| 免费看日本操逼视频| 欧美 精品国产制服第一页 | 一本色道综合久久欧美| 天天射日日干| 中文字幕乱妇免费视频| 超碰97在线中文| 91熟女综合| 天天干2019| 国产成人无码网站在线视频| 国产精品久久久久久久久久久久久久吹 | 狠狠干综合| 日韩av一级黄片| 黑人性欧美| 97一本大道亚洲一区| 宅男91视频在线播放| 青青草操逼逼视频| 日韩草久视频| 91校园春色长篇| 五月开心网| 在线可观看的黄色网址| 亚洲人妻一区二区三区| 熟妇熟女视频一区二区三区| 丁香六月综合激情| 992这里有精品| 色色婷婷五月天| 激情五月婷婷| h在线看免费版在线看| 五月丁香婷婷色| 欧亚免费视频| 午夜福利久久久噜久噜久久综合| 久久熟女人| 老女人日韩美91| 97亚洲一区| 久草精品国产蜜臀| 97在线观看免费视频l| 色哟哟1区2区| 羞答答AV中文字| 91操熟女视频 | 五月婷婷激情综合| 亚洲日韩AV视色| 亚洲色图激情小说| 在线免费试看60秒| 综合久久2017| 青娱乐亚洲自拍| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 午夜操操操| 欧美性高潮| 亚春色色| 2019天天干| 欧美不卡五十路| 日韩免费三级黄片电影| 日韩国产欧美伦理在线| 激情啪啪拍91| 9久久美女首页| 死我十八禁| 亚洲风情在线观看| 国产超碰AV在线精品| 欧美成人一级免费电影| 亚洲精品视频在线| 欧美视频第二页| 久草色在线观看| 国产成年女黄特黄| 男女激情黄色网址| 日本三级人妻a人妻一在线| 福利天堂| 午夜一区二区三区国产| 天天流夜夜操| 国产视频第2页| 九热中文字幕| 第一高清av中文字幕| 丝袜美腿诱惑亚洲欧美视频在线观看| 蜜屁Av| 九九热三级片| 久久人人舔人人爽舔人人av片| 超碰成人免费| 亚洲综合一| 黄页av| 免费看欧美美女黄色大片 | 啊啊啊好大好深| 内射夫妻三片| 五月天综合| 色综合20p| 日韩成人无码| 天天操天天射青青草| 97国产综合欧美| 欧美呦呦性爱| 国精品一区二区三| 久久人妻| 五月丁香综合啪啪| 一二三区精品视频| 精品国产Av无码久久久亚洲| 久久久艹艹艹| 天天干电影| 国产一区二区三区精品观看啪| 屌妞视频久久久久久久| 亚洲精品乱码线路中文字幕 | 国产精品69久久久久孕妇欧美| 色色色日本| 又黄又爽在线观看视频| 麻豆视频一区二区| 美女露胸露屁股| 麻豆亚洲AV成人无码久久精品| 久久久久亚洲Aⅴ无码| 欧美色天堂网在线视频| 人人操人人插人人摸人人干| 中文字幕97色| 成年人性爱日韩| 九九九九九九九九九九精品视频| 国产日逼视频| 亚洲日韩XXX| 少妇xx精品| 搞中出视频在线观看| 亚洲AV麻豆Aⅴ无码电影一| 男人亚洲91首页在线| 高清视频一区| 18精品一区| 天堂69亚洲精品中文字| 欧美色图成人网一区二区 | 国产欧美日韩女同性恋ww喷水精品| 九久9精品| 久久麻豆一区二区| 思思热国产高清| 久久综合18p| 日本熟女不卡视频| 欧美亚洲国产日本在线,久久精品国产| 久久性爱视频99| 欧美 牲| 天天干人人干天天日97| 啊啊啊骚| 亚洲精品日韩国产欧美| 夜夜无码| 黄色乱论网站| 国产精品亚洲一级av第二区| 日韩人妻丝袜美腿中文| 91粉嫩萝控精品福利网站_精品影音先锋国| 天天情欲宗合网| 亚洲国产成人高清在线| 国产精品 视频| 中文字幕加勒比海高清无码免费视频| 亚洲图片另类| 日本一天色道久久久精品视频| 人人 操人人 操人人| 国产第11页| 人妻AV在线| 亚洲欧美国产中文视频| 啊啊啊不要嗯嗯在线观看| 看一级黄色视频| 亚洲色图91| 91欧美另类| 五月天色图| 百度百度日本操逼| 中文子幕一二三| 丁香六月婷婷久久综合| 国产精品亚洲无码| 超碰人妻久久| 欧亚揄拍偷拍精品视频| 久久人妻丝袜一区二区三| 欧美偷拍区| 91爱做| 99精品网| 国产日韩区| 亚洲三级。日韩三级| 超碰在线人妻不卡| 欧美成人9797| 丰满的三级少妇欧美久久久| 激情天天视频| 国产精品国产精品国产| 亚州欧美在线| 综合五月天| 色天堂综合| 麻豆天美国美国产| 九九色综合| 首页中文字幕中文字幕免费| 中日韩一区二区三区欧美| 超碰在线综合97| 女人的天堂大香蕉网| 精品久久久av| 中文字幕 人妻不满 在线视频| 国产欧美精选自拍一区| 日本αv| 亚洲久9| 女人18精品一区二区三区| 97久久免费| 欧美亚洲性爱一区二区| 91色碰| 男人天堂一区二区| 26uuu国产| www.夜夜操| 91free福利| 333kkkk·亚洲com久久| 日日日日做夜夜夜夜无码| 久久亚洲中文字幕视频| 干我久操| 国产美女口爆吞精视频| 国产在线观看一区二区三区| 七月丁香婷婷| 亚洲国产美女久久久久| 日本久久女同性恋视频| 黄色免费网| 国产精品一区二区手机看片| 综合激情二| 少妇高潮流水av免费| 伊人网青青| 老女人日韩美91| 欧美三级一级| 婷婷五月天久久精品视频一区二区三区| 久久久A∨| 伊人久久婷婷| 亚洲色欲一区二区三区| 欧美72网页| 一本一首道人妻少妇免费久久| 91亚州欧美| 91久久国产综合精品| 人人搡人人肉久久精品| 噜噜瑟| 日逼97| 午夜美女福利视频| 久草网站免费在线观看| 日本三级日本三级99| 激情六月天| 亚洲人在线| 99只有精品| 天天躁夜夜躁狠狠躁AV| 黄页网站成人免费| 亚洲精品97| 国产精品福利视频播放| 国产18精品亚洲精品| 超碰人人在线| 欧美色997| 91亚.色| 激情综合网亚洲| 午夜120视频在线观看| 在线性黄高清免费视频| 美国美女AV在线| 91少妇香蕉久久精品| 国产嫩草精品A88AV| 中文久久| 性做久久久久久免费观看软件| 亚洲人人操| 丰满少妇高潮无码| 东京热,男人的天堂| 2023天天操夜夜操| 啪啪啪大香蕉| 亚洲的天堂网| 玖草在线视频| 婷婷在线精品| 色九九综合AV| 婷婷久久五月综合激情| 黑人黄片在线免费观看| 日本99一区二区| 欧中美三级一区二区三区| 国产精品又黄又猛又粗| 久久人妻精品| 欧美成人精品一区二区男人蜜臀| 欧美一级色| a片 xxxx受爽视频| 91足交| 丰满少妇一区二区三区专区| 亚洲狠狠入| 欧美性爱日韩性爱| sss视频华人在线| 天天综合91入口| 国产Aα| 综合久欧洲| 激情欧美97| 国产激情av女片自拍| 久草资源在线视频官方总站日韩丝袜美腿 | 高潮综合网| 中文字幕欧美日韩三级| 天天日少妇逼AV| 九九人妻| 國產尤物AV尤物在線觀看| 2019AV天堂| 1204av韩国| 999久久久| 天天干天天插| 色九久| 日本精品成人无码| 超碰视97中文| 久久男女激情视频网站| 日韩精彩视频| 色婷视频| 老熟女91视频| 精品少妇后入一区二区三区四区人妻巨乳| 日本一线产区和二线产区伦理片| 欧美一级A片在线看视频性色| 色综合超碰超| 3D污黄视频在线观看| 麻豆 亚洲 97| 午夜福利免费福利视频| 91美女视频电影| 精品一区二区人妖| 欲香欲色综合天天伊人| 91久久久久免| 久久久久久久人妻丝袜| 国产久久视频| 国产乱色国产精品免费视| 97免费视频网| 99热99在线播放激情| 天天舔天天日天天射| 国模艳艳啪啪一区| 亚洲不卡一| 啊啊啊啊嗯嗯嗯用力好爽 | 成人av动漫在线观看| 97精品人妻一二三四| 超碰99在线观看| 亚洲色图亚洲| 中出789在线视频| 欧美成人A天堂片在线观看| 色亚州人久干视频在线观看免费版| www..com操老师| 亚洲激情深爱文学小说网站| 人妻熟女字幕一区二区| 日韩激情毛片一级久久久| 国产精品3| 99精品网| 欧美综合娱乐久久| 亚洲精品欧洲色| 精品人妻1237| 中日韩欧美精品无码AⅤ一区二区| yazhououmeizongya| 最新AVzaixian| 欧美日韩国产三级黄色| 午夜九九九九九九| 国产久久久久影院老熟女| 亚洲天堂久久| 日韩综合无码色欲vv| 九九九九九九精品| 97国产亚洲中文在线| 中国一区二区亚洲人妻| 久久超碰97| 久色99999| 色蜜AV| 亚洲欧美在线观看2021| 色欲天天婬色婬香WWW夜色| 欧美极品少妇| 色狠人在线99| 99亚亚热| av一区二区三区 中文| 激情小说日韩无码| 欧在线一二区| 久久久精品,3| 日韩人妻精品| 青青草乱入乱欲视频在线观看| 91欧美| 亚洲av淫乱| 色视频蜜乳| 国产综合久久久麻桃个| 色婷婷一区二区三区久久午夜成人不| 狠插 制服 自拍| 人妻少妇视频在线播放| 日本午夜福利影院| 国产亚洲精品农村妇女 | 东京成人一区| 黄色二级片网站| 国产按摩一区二区三区| 成年女人18级毛片毛片免费观看| 懂色av色欲av蜜臀av| 熟妇乱伦一区二区| 综合 亚洲 欧美| 日韩欧美麻豆 | 欧美日韩传媒| 啊啊啊啊好疼| 78操B| 97人人夜| 69久久| 中日992视频| 男人成人黄色视频在线观看免费下载| 9999亚洲电影| 制服诱惑亚洲一区二区三区在线观看| 1204av韩国| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久精品性| 国产亚州日韩欧美看片| 天天操天天舔| 色999;丁香五月| 国产99 中文字幕日韩小视频| 久久久久国产精品喷潮免费观看臀| 亚洲国产欧美一区二区潘金莲| 国产精品美女久久久久久网站| 啪啪啪综合网| 国产真乱mangent| 午夜无遮挡男女啪啪视频| 99亚洲精品| 秋霞一级A片黄色视频| 国产多人在线观看视频| 国产中文大片资源中文字幕| 天天艹天天日| 欧美黄片视频在线观看免费 | 蜜臀在线免费观看在线免费观看| 熟女自慰久久久| 干B| 另类专区加勒比| 国产一区二区在线看| 蜜臀久久99精品久久久久久酒店 | 中文字幕在线24| 亚洲不卡不卡中文字幕不卡| 超碰碰激情97+久| 伊人网一本| 91高潮| 欧美在线官网| 日日超碰亚洲| 全国男人天堂网| 欧美91精品国产自产| 婷婷久久综合| 性爱网站一区二区| 嗯啊不要啊在线 | 99热亚洲天堂| 都市激情人妻一区二区青青操视频 | 欧美一区二区传媒| 免费国产| 国产自制av蜜乳| 国产一级作爱毛片| 嗯啊免费视频| 春色综合免费| 亚洲AV麻豆Aⅴ无码电影一| 一本一道vs波多野结衣| 欧美少妇大量自拍视频在线观看| 中文字幕视频免费| 国产精品96| 亚洲一欧洲中文字幕在线 | 殴美性天天| 国产一级内射无挡观看| 亚洲男人天堂Av| 嗯嗯嗯啊啊啊干死我吧| 蜜臀99久久精品久久久懂爱| 亚洲砖码砖专无区2023| 欧美成人精品一区二区三区| 99超碰网| 口爆吞精在线观看| 日本日日色视频| 美女久久久久久久久久久| 黑人狂躁日本妞一区二区三区| 92福利社视频| 亚洲情色 自拍| 久久夜黄色无码A级大片| 色妺妺在线视频| 九九九久| 黄片无码在线制服| 蜜臀久久99精品| 日韩性爱一级片| 97色色网| 天天躁日日躁狠狠狠躁| 亚洲AV无码国产精品久久久久 | 成人无码在线视频网站| 麻豆黄色五月天| 嗯嗯啊啊啊好爽| 中文字幕亚韩| 蜜桃臀一区二区aV| 欧亚乱色熟女一区二区| 一本一首道人妻少妇免费久久| 中文字幕乱亚洲美女精品一区| 强奸a片网| 一区二区三区四区在线不卡| 顶级丝袜熟女一区二区三区| 国产精品视频| 色色色色日本| 日韩精品电影| 影音先锋乱| 在线五区| AAA久久| 97久久久久| 99热66| 少妇一区二区三区| 黄页大片在线观看| 在线日韩日本亚洲国产| 中文字幕加勒比海高清无码免费视频 | 操逼片国产| 国产亚洲精品美女| 男人a天堂手机在线版| 黑人干亚洲| 国产又爽又黄| 成人国产二区三区在线,男女精品。| 操逼日韩无码 | 曰韩精品视频一区二区| 91无摭挡| 六月色色| 三上悠亚在线毛片91| 一区中文字幕二区日韩| se01国产在线视频| 欧美综合传媒| 五月天激情小说| 性色AV蜜色av色欲av| 日韩ab网 | 99热国产精品| 黄色AV影视| 超碰在线人妻中文字幕| 天天澡天天爽日日av| 国产树林里野战在线看| 亚洲男人的天堂va亚洲男人社| 97超级久久强资源| 亚洲啪AⅤ永久无码| 久久精品成人一区二区三区蜜臀 | 欧美成人精品一区| 久久久久久性爱视频| 可以免费观看的日韩av毛片| 欧美综合色图片| 91逼逼女人91| 欧美性爱伊人| 成人五月天丁香激情综合| 天天日天天操VV| 久久精彩视频| 一类av片在线看| 神马麻豆福利院| 伊人伊人LD| 欧美有码激情视频一区二区三区| 色就色综合| 欧美亚洲首页| 91 亚洲情侣偷拍 久久| 中文无码一二三区| 天堂中文日本在线观看| 久操视频在线观看| 久久中文字幕女同性恋一区| 久久久久性熟视频| 国产无马av| 亚洲无码成人精品| 亚洲情色欧美| 亚洲人妻色图| 岛国不卡超碰护士AV在线播放| 九九九九久久久| 亚洲精品第一| 日本狂喷奶水在线播放212| 久久中文字幕在线观看| 超碰一区二区| 乱久久久| 亚洲 欧美 小说| 亚洲日本韩国极品一区二区| 成人综合久久精品色婷婷| 人妻啪| 亚洲啪啪综合?v一区综合精品区| com 首页 18岁 禁区 女优 免费 精选 同城| 亚洲免费精品一区| 亚洲麻豆精品二区三区| 无码抄逼网| 韩国午夜理伦三级好看| 国产高清精品一区二区三区毛片| 2017亚洲天堂| 91麻豆天美传媒在线| 91天天美女| 日本天堂在线播放| 91美女視頻| 欧美传媒一区| 国产欧美成人精品| 亚州欧美一区| 国产精品丝袜久久亚洲不卡| 久久鲁夜| 中文字幕综合人妻| 情色五月天网| 日韩少妇在线视频| 国产偷人妻精品一区二区在线| 亚州精品丝袜-不卡成人免费| 国产av白丝| 澳门人妻久久| 天天综合影院91| 在线视频一区二区传媒| 久草婷婷| 成人久久精品| 国产AV人人夜夜澡人人爽麻豆| 是还免费视频1727我| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 亚洲人在线成线成人| 日韩天堂av电影在线观看| 国产蜜臀精品一区免费尤物| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 夜色综合| 天天影视色香欲综合网小说| 久久这里只精品免费福利| 日本熟女不卡视频| 国产日逼视频| 成年人一级黄色毛片大全在线观看| 久久成人国产| 丁香六月婷婷综合| 欧美亚州手机在线| 高树玛利亚无码流出| 区一二区日韩亚洲乱码av电影| 嗯嗯啊啊视频一区二区三区| 色偷综合| 麻豆av一区二区| 成人一二| 强奸乱伦资源| av天天在线观看| 免费人人搞97| 性色高清..……| 好吊色综合| 午夜国产乱伦视频| 极品色www影院| 国产蜜臀精品一区免费尤物| 亚洲诱惑| 色臀AV| 午夜福利激情在线视频| 国产精品亚洲免费| 国产夫妻一区二区| 精品女同一区| 国产偷拍网站| 九九性爱网| 在线视频一区二区传媒| 舔人妻中文免费视频| 国产精品人妻无码久久久互動交流 | 午夜精品久久久久久久男人的天堂 | 99精品热| 中文字幕十五区| 最新制服中文第一页| 久久久久久久久久久免费精品 | 欧美色性情| 日本激情免费大片| 亚洲综合春色| 91在线丝袜| 免费a级毛片av无码久久精品中文字幕| 午夜黄色免费在线观看| 青青草精玖玖69精品| 国语精品对白| 亚洲少妇综合在线播放| 美女人妻色网站| 人妻熟女一区二区在线视频| 国产绿奴视频在线观看| 操人妻少妇中文| 久久国产精品视频| 亚洲,日韩,欧美,成人播放| 国产毛片精品一区二区色欲黄A片| 久久精9| 亚洲成人激情小说视频| 九九Av| 2019亚洲男人天堂| 富女玩鸭子一级毛片| 婷婷午夜| 91麻豆天美国产欧美高潮| 日逼视频日本| 大香蕉欧美伊| 狠狠操使劲操| 天天综合,91综合永久| 97人妻人人躁人人玩人人| 国产无码高清操逼视频| 97精品国产97久久久久久免费| 91综合天天看| 日本在线视频导航| 2017天天透天天通天天擦| 日韩免费三级黄片电影| 日韩一999精品| 国产激情视频一区区三区| AV中文在线| 色综合大香蕉| 婷婷六月色| 欧美人妻制服| 嗯嗯啊在线视频| 国产9l 大屁股| 伊人久久88国产女| 78超碰| 蜜桃久久综合视频| 超碰97中文| 亚洲青青青视频在线| 99久久99久久免费精品蜜臀| 艹我哪美一区无码| 麻豆精品一区二区三区四区免费观看| 天天影视色香色欲| 亚洲不卡三级手机播放| 亚洲人在线| 午夜国产乱伦视频| 亚洲色图自拍| 中文字幕在线观看二区三区| 亚洲狠狠入| 亚洲综合小说另类图欧美视频激情小说色五月天 | 一类av片在线看| 亚洲美女黄色| 伊人婷婷五月天| 美女诱惑一区| 久久神马影院| 免费在线观看国内色片网站网址| 安微少妇操BBB| 日韩精品区二区三区不卡| 91精片| 性老妇一区二区三区| 精品人妻av在线播放| 亚洲九九视频在线观看| 亚洲操操| 内射夫妻三片| 91碰碰| 男人天堂婷婷五月天校园春色| 无码不卡亚洲成?人片| 十八禁黄色成人网站观看| 亚洲αv一区二区三区| 中文字幕免费在线观看| AV色天香在线| 污污汅18禁网站在线永久免费观看| 俺也射| ′ !γ}丶。。久久精品欧美一区二区三区| 国产肏逼网站| 日韩欧美~中文字| 天天干一区二区| 国产极品美女高潮无套在线观看| 亚洲激情在线| 狠狠躁天天躁日日躁| 九九RE视频在线精品| 色色毛片| 国产怡红院在线| 操美女人妻| 综合色图区| 国产精品 久久久精品一牛| 超碰4A| 精品国产72| 99热精品在线| 日本视频一区二区三区| 久久久久亚洲| 天天干夜夜操一区二区| 超碰在线974| 高清国产av无码| 欧美亚洲素人制服精品| 亚洲性天堂| 精品综合久久久久久97| 尤物av网站| 婷婷丁香六月| 秋霞蝌科网日本一区| 午夜性刺激视频免费观看| 日韩中文9| 大香蕉99热| 超91综合网| 国产高潮AA片免费看| 免费的黄片有限公司| 色97干| 久久久久久99999国产精品| 色欲人妻一区二区在线| 欧美熟爽综合| 五月婷婷丁香六月| 国产浮力影院第1页| 亚洲av无码国产精品字幕| 91精品久久久久| 日日日日做夜夜夜夜做无码97| 超碰精品| 亚洲宗合电影| 九久9热| 青青草九九九九九| 五月天综合| 影音先锋国产精品| hd成人一区二区在线| 亚洲va有码在线天堂| 日韩黄片影院| 国产亚洲精品一区二区三区| 97精品免费| 老熟女综合| 色97干| 亚洲久9| 91人妻熟女| 天天综合官网| 欧美色就是色| 白丝av| 搡老女人老91妇女老熟女| 欧美色乱| 91亚洲网| 成人午夜高潮av猛片| 日韩性爱小视频| A级在线视频| 黄色AV免费| 亚洲精品成人动漫在线| 精品久久久久久AV无码| 色综合国产在线观看| 亚洲欧洲成人在线电影| 欧美黄色手机在线观看| 被窝影院午夜看片无码| 内射老妇BBWX0C0CK| 日韩中文字幕视频| 亚洲三区视频| 男女激情黄色网址| 久久精品国产免费观看99| 亚洲国产成人高清在线| 婷婷五月天基地| 久久亚洲影院一区二区| 国内黄色精品| 精品九九淫乱男| 人妻少妇精品无码专区二区密桃| 天堂亚洲欧美| 九九九免费视频| 国产黄色小视频网站| 美國A片| 五月丁香| 欧美日韩222| 亚洲日韩欧美一区二区| 蜜桃午夜视频一区二区| AV女优男人的天堂| 日韩精品字幕| 国产极品一区二区三区三州| 色综合色综合网| 人妻天天爽夜夜爽精品2| 激情黄色五月天| 九九热精品| 国产亚洲深夜激情| 国模少妇一区二区三区| 亚洲无套久久嗯嗯| 色 亚洲 91| 久久午夜神马| 国产一区二区三区白丝| 免费看欧美美女黄色大片| 欧美性猛交美女自慰91| 啊啊啊啊操死我了| 青青草依人大香蕉| 亚洲**2021在线观看| 亚洲成人性爱在线观看| 午夜男人天堂| 国产九九九九九九| 少妇久久久久久| 精品国产www久久| 暖暖精品二区三区观看| 大香蕉92| 中国熟女老妇仑乱一区二区三区| 1024人妻熟女一区二区三区| 97亚洲性爱| 亚欧操逼片在线观看 | 亚洲国产成人精品999| 精品人人插人人操| 蜜桃不卡一区二区| 国内毛片四区| 欧美综合娱乐久久| 日韩人妻资源网| www.acm成人黄色毛片| 亚洲无码偷拍| 亚洲精品99| 老司机午夜精品福利视频一区二区| 亚洲色天| 婷婷中文字幕| 91久久精品美女高潮喷水| 亚洲无无码αⅴ每日更新| 日日干日日| 情色五月天就去干| 亚洲精品一二区| 欧美成人精品一区二区三区| 亚洲 欧美 第一页| 99热只有这里有精品| 97碰碰日本乱偷人妻中文的| 欧美色狠| 日本福利社| 999国产精品999久久久久久| 97人妻免费中文字幕| 色色99| AAAA欧美日韩| 美女露胸露屁股| 97亚洲精品超碰| 99综合视频一体| 九九九久| 在线视频日韩欧美国产| 亚洲丰满很很操| 日本操逼二区| 色阁阁AV综合网| 噜噜噜在线视频| 91久久久老司机| 免费无码国产精品v片在线观看| 77777亚洲蜜臀精品久久综合蜜臀| 亚洲高清91| 天天干天天干天天| 欲香欲色综合天天伊人| 亚洲天堂热| 深夜激情 | 久久久久女教师免费一区| 欧美日韩性爱操大逼| 超碰日韩美妻| 一区二区三区 日韩欧美| 伊人aaa| 一区二区影院| 日本天堂在线播放| av国产无码| 这里只有精品97| 大胆91| 91在线免费精品视频| 伊人色综合超碰| 俄罗斯一区二区视频在线观看| 久久九七| 一区二区三区成人高清视频| 涩涩久久精品| 国产乱伦性爱AV| 女优大全 - 91n| 久无码| 国产强奸乱伦xd| 亚洲偷拍欧美激情| 日韩精品一区二区三区色欲| 97超碰大| 女同性恋一区二区三区精品视频| 免费国产电影一区二区| 裸体1区| 色官网在线| 婷婷久月| 亚洲少妇激情视频| 极品色www影院| 一区二区三| 97超碰资源网| 久久婷婷亚洲| 久久婷婷电影网| 超碰久久网| 嗯啊不要在线观看嗯啊| 一级AV性爱| 少好三P| 亚洲图片 91| 色色色欧美| 欧美96精品在线| 日日干夜夜操视频h| 天天色综亚洲91污| 天天插网| 长久操视频| 日本有码影片下载 | 怡红院亚洲怡春院av| 91麻豆天美国产欧美日| 亚洲无线码欧洲精品区别| 91在线丝袜| 色综合加勒比四四季| 人人考人人摸人人干| 日韩成年人性爱视频| 男女性扦B| 刺激性视频黄页| 日本岛国黄色网址| 91久久九九精品国产综合| 中文字幕一二三av| 伊人丝袜美腿高跟在线观看高清| 欧美精品1区2区3区| 欧美性爱精品七区| 老熟女天天操| 97爱b| 亚洲熟女乱色| 婷婷色网| 亚洲αv一区二区三区| 日本国产欧美一区三区二区| 国产精品69久久久久久久| 久久久久久久久九九久孕交| 97色色视频| α√在线| 久久久精品中文字幕爱豆| 校园春色第一页| 99re在线视频国产| 久久国产视频专区一二三| 香蕉久久国产AV一区二区| 新久久AV| 欧美高清无码免费视频高清版| 中文字幕人妻丝袜乱一区三区| 九九国产| 九草在线大香蕉| 久久的网站啊啊啊啊啊| 亚洲色五月| 亚洲国产成人高清在线| 成人激情无码在线视频| 中文字幕第9页萱萱影音先锋| 国产精品乱码久久久| 成人情色综合网| 人人九九精| 啊啊啊啊好大好硬啊啊啊啊啊 | 国模无码人体一区二区三| 91精片| 天天综合欧美| 亚洲熟女人妻中文字幕一区二区 | 日韩成人网址| 日韩性爱播放| 黄片www.| 久久男女激情视频网站| 亚洲色图日韩精品| 国产操操日韩三级黄| 不卡av在线中文字幕| 国产又黄又粗的视频| 自拍内地三级在线观看| 欧美性xxxxx狂欢| 人妻三级在线中文字幕| 中文字幕三四区| 欧美精品三区| 国产玖玖| 9久久久久| 午夜亚洲| 91白嫩| 国产精品一区二区三区四区五区| 欧美,日韩,中文,另类| 91男女| 蜜臀99久久精品久久久久久| 妇女乱色二区| 婷婷国产精品一区二区| 蜜臀99精品国产高清在线观看| 992大香蕉| 欧美少妇色图| 在线播放成人高清免费视频| 98人妻精品一区二区色欲| 欧美一二三级精品在线| 天天日天天搞天天干| 中文字幕一区二区韩| 强奸a片网|