久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Oracle查詢第一行:ROWNUM機(jī)制、常見錯(cuò)誤與優(yōu)化方案

Oracle查詢第一行:ROWNUM機(jī)制、常見錯(cuò)誤與優(yōu)化方案 先問一個(gè)看起來很簡(jiǎn)單的問題在 Oracle 數(shù)據(jù)庫里怎么查出表中第一行數(shù)據(jù)這個(gè)問題我拿來面試過不少人也經(jīng)常在技術(shù)社群里看到有人問。有意思的是能一次答對(duì)的不到一半。有的人脫口而出WHERE ROWNUM 1有的人上來就寫LIMIT 1明顯是寫 MySQL 寫慣了還有人直接ORDER BY 1 FETCH FIRST 1 ROW ONLY——語法看著沒錯(cuò)但放到 11g 的生產(chǎn)庫上直接報(bào)錯(cuò)?!叭〉谝恍小边@個(gè)需求做開發(fā)的十有八九都寫過但它背后藏著的 Oracle 底層邏輯和那些反直覺的坑才是真正值得掰開揉碎講清楚的東西。這篇文章就專門圍繞這個(gè)問題展開先說最常見的錯(cuò)誤寫法為什么錯(cuò)再講 ROWNUM 的底層機(jī)制然后給出不同 Oracle 版本下的正確姿勢(shì)和性能優(yōu)化思路最后聊聊隨機(jī)取行、分組取首行這些進(jìn)階場(chǎng)景以及我實(shí)際踩過的兩個(gè)隱藏比較深的坑。1. “取第一行”看起來簡(jiǎn)單第一個(gè)坑就翻車先說個(gè)典型場(chǎng)景。一張訂單表orders里面有幾百萬行數(shù)據(jù)業(yè)務(wù)方說“給我查一條訂單看看字段長(zhǎng)什么樣”。這種需求其實(shí)很常見——不是為了精確取哪一條而是快速看一眼表里的數(shù)據(jù)形態(tài)。很多人的第一反應(yīng)是SELECT * FROM orders WHERE ROWNUM 1;這條 SQL 能跑也能返回一行數(shù)據(jù)但它有一個(gè)致命的問題你根本不知道返回的是哪一行。這不叫“取第一行”這叫“取任意一行”——Oracle 從表中讀到哪一行ROWNUM 就給哪一行發(fā)號(hào)先被讀到的就先拿到 1 號(hào)。而“先被讀到的”取決于執(zhí)行計(jì)劃怎么掃數(shù)據(jù)。可能是全表掃描的第一行可能是索引掃描命中的第一行沒有任何業(yè)務(wù)上的確定性。另一個(gè)更隱蔽的坑是下面這種寫法SELECT * FROM orders WHERE ROWNUM 1 ORDER BY create_time DESC;很多人寫這段代碼的本意是“先按時(shí)間倒序排好再拿第一條”但實(shí)際執(zhí)行過程完全不是這樣。SQL 的語義順序里WHERE的過濾發(fā)生在ORDER BY排序之前。所以這條 SQL 的真實(shí)邏輯是先隨便抓一行抓住的那行編號(hào)為 1返回然后排序——排序排的是已經(jīng)被截?cái)嗪蟮哪且恍信帕说扔跊]排。這個(gè)坑我親眼見過有人踩。當(dāng)時(shí)一個(gè)同事要查“最近創(chuàng)建的一筆訂單”寫了類似上面的 SQL結(jié)果返回的是表里最早的一條記錄。排查了半天最后發(fā)現(xiàn)根本不是數(shù)據(jù)問題是邏輯順序搞反了。再往下說還有一個(gè)寫法連語法都過不去SELECT * FROM orders ORDER BY create_time DESC WHERE ROWNUM 1;這個(gè)直接在 Oracle 上報(bào) ORA-00933因?yàn)镺RDER BY必須放在WHERE之后。有 MySQL 習(xí)慣的人特別容易踩這個(gè)畢竟 MySQL 里L(fēng)IMIT是放在最后的導(dǎo)致一些朋友誤以為 Oracle 也能把條件寫后面。所以你看光是“取第一行”四個(gè)字就能拆出三種完全不同的需求需求描述真實(shí)意圖常見錯(cuò)誤隨便拿一條看看取任意一行以為 ROWNUM1 是確定性的把所有行排完序后取第一條取排序后的首行WHERE 和 ORDER BY 順序搞反取物理存儲(chǔ)上的第一行按塊掃描順序取首行意識(shí)到物理順序不可控這里給新手一個(gè)最基本的建議寫“取第一行”之前先搞清楚你要的是哪種“第一行”。沒有排序邏輯的第一行在 Oracle 里沒有任何確定性依賴它就是給自己埋雷。2. ROWNUM的偽列機(jī)制為什么必須嵌套子查詢才行要徹底理解上面那些坑就得從 ROWNUM 的底層機(jī)制說起。ROWNUM 是 Oracle 提供的一個(gè)偽列它不是一個(gè)真實(shí)存儲(chǔ)在表中的列而是查詢結(jié)果集生成過程中Oracle 給每一行臨時(shí)分配的序號(hào)。聽起來很抽象打個(gè)比方你就懂了。想象一下你去銀行柜臺(tái)辦事。取號(hào)機(jī)上出的號(hào)就是 ROWNUM。但有個(gè)特殊規(guī)則只有你已經(jīng)坐到柜臺(tái)前的椅子上叫號(hào)器才會(huì)給你發(fā)號(hào)。如果你排在第 2 位但第一位辦完走了、第二位又沒來那叫號(hào)器會(huì)一直叫 1 號(hào)永遠(yuǎn)不會(huì)叫 2 號(hào)。在這個(gè)規(guī)則下2 號(hào)永遠(yuǎn)不可能被叫到——除非 1 號(hào)先被處理完。Oracle 的 ROWNUM 就是這套“坐著才發(fā)號(hào)”的邏輯Oracle 讀取結(jié)果集第一行給它標(biāo)號(hào) ROWNUM 1然后檢查 WHERE 條件如果條件不成立這一行被丟掉繼續(xù)讀下一行下一行重新標(biāo)號(hào) ROWNUM 1再檢查條件以此類推。所以WHERE ROWNUM 1能返回?cái)?shù)據(jù)是因?yàn)榈谝恍袡z查時(shí)條件成立。但WHERE ROWNUM 2永遠(yuǎn)查不到數(shù)據(jù)因?yàn)槊恳恍斜蛔x到的時(shí)候都先被編號(hào)為 1壓根等不到編號(hào) 2 就被條件過濾掉了。同理WHERE ROWNUM 1也永遠(yuǎn)返回空。這也就解釋了為什么必須先嵌套一層子查詢SELECT * FROM ( SELECT * FROM orders ORDER BY create_time DESC ) WHERE ROWNUM 1;執(zhí)行順序是內(nèi)層子查詢先把所有行排序生成一個(gè)完整的有序結(jié)果集外層查詢?cè)谶@個(gè)有序結(jié)果集上從頭取第一行。這個(gè)結(jié)果集是“已經(jīng)排序完的實(shí)體”所以第一行確定就是你要的那條。注意一個(gè)細(xì)節(jié)很多人聽說嵌套子查詢后會(huì)寫成這樣SELECT * FROM ( SELECT * FROM orders WHERE ROWNUM 1 ORDER BY create_time DESC );把這個(gè)寫法和正確寫法對(duì)比一下差別就在于ROWNUM 截?cái)喟l(fā)生在子查詢內(nèi)部還是外部。上面這種把 ROWNUM 放在內(nèi)層子查詢里的寫法又是“先取任意一行再排序”完全失去了嵌套的意義。理解了這個(gè)機(jī)制很多相關(guān)的坑都能一眼看出來。比如有的同學(xué)問“為什么我加了 ROWNUM 1 之后查詢變快了”——因?yàn)?Oracle 讀到第一行滿足條件的行后就直接停止繼續(xù)掃描了。這在全表掃描時(shí)確實(shí)能大幅減少 IO屬于物理上的短路優(yōu)化。順便說一句ROWNUM 和 ROWID 是兩個(gè)很容易混淆的概念。ROWID 是行的物理地址表示這行數(shù)據(jù)存在哪個(gè)文件的哪個(gè)塊的第幾行ROWNUM 是邏輯序號(hào)表示這行數(shù)據(jù)在當(dāng)前查詢結(jié)果集中的位置。一個(gè)對(duì)應(yīng)物理位置一個(gè)對(duì)應(yīng)邏輯順序用途完全不同排查問題時(shí)別搞混。3. 按排序取首行的完整寫法與Oracle版本差異理解了 ROWNUM 機(jī)制后下面把“排序后取首行”的各種寫法完整梳理一遍。日常開發(fā)里90% 以上的“取第一行”都是這個(gè)意思——按某個(gè)業(yè)務(wù)字段排序取最前的那條。3.1 嵌套子查詢 ROWNUM12c 之前的標(biāo)準(zhǔn)答案SELECT * FROM ( SELECT * FROM orders ORDER BY create_time DESC ) WHERE ROWNUM 1;這是 11g 及更早版本里的標(biāo)準(zhǔn)寫法也是面試?yán)镒钕M愦鸪鰜淼哪莻€(gè)。注意兩個(gè)細(xì)節(jié)第一ROWNUM 1和ROWNUM 1在這里等價(jià)工程上更推薦 1因?yàn)檎Z義上更明確是“取一條”不容易被誤讀。第二內(nèi)層子查詢里建議加上完整的排序條件。比如按時(shí)間排序時(shí)create_time可能出現(xiàn)相同值這時(shí)候最好追加一個(gè)唯一鍵做二級(jí)排序SELECT * FROM ( SELECT * FROM orders ORDER BY create_time DESC, order_id DESC ) WHERE ROWNUM 1;否則 create_time 相同的情況下返回哪一條又變成不確定的了。3.2 FETCH FIRST ROW ONLY12c 及以后的官方推薦Oracle 從 12c 開始引入了 ANSI 標(biāo)準(zhǔn)的FETCH FIRST子句完全就是為了簡(jiǎn)化這種“取前 N 條”的語義而生的SELECT * FROM orders ORDER BY create_time DESC FETCH FIRST 1 ROW ONLY;這個(gè)寫法和嵌套子查詢 ROWNUM 在大多數(shù)場(chǎng)景下性能相當(dāng)?shù)勺x性好太多——SQL 從前往后讀先明確排序再明確取幾條非常符合直覺。如果你需要取前 5 條寫法是FETCH FIRST 5 ROW ONLY。如果要取百分之一寫作FETCH FIRST 1 PERCENT ROW ONLY。如果要取第 2 條到第 3 條配合 OFFSETSELECT * FROM orders ORDER BY create_time DESC OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY;這就是 Oracle 分頁的另一種實(shí)現(xiàn)方式。提到分頁做開發(fā)的朋友應(yīng)該馬上會(huì)聯(lián)想到ROWNUM三層嵌套分頁——那個(gè)經(jīng)典寫法其實(shí)是本篇文章討論內(nèi)容的直接延伸外層固定總行數(shù)中間層算頁碼偏移最內(nèi)層排序。這里提醒一句如果你的生產(chǎn)庫還在 11gFETCH FIRST會(huì)直接報(bào) ORA-00933。遷移老項(xiàng)目代碼時(shí)這個(gè)坑很常見從 12c 代碼庫往 11g 環(huán)境回遷必須把 FETCH FIRST 改回嵌套子查詢寫法。3.3 ROW_NUMBER() 窗口函數(shù)還有一種寫法用分析函數(shù)SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (ORDER BY create_time DESC) rn FROM orders t ) WHERE rn 1;這個(gè)寫法的通用性最強(qiáng)因?yàn)镽OW_NUMBER()不僅能取整體第一行還能配合PARTITION BY取分組內(nèi)的第一行。但代價(jià)是它需要對(duì)所有行計(jì)算序號(hào)然后才能過濾執(zhí)行計(jì)劃里通常多一個(gè) WINDOW SORT 步驟性能相比 ROWNUM 截?cái)嘁?。三種寫法放在一起對(duì)比一下寫法版本要求可讀性性能特征推薦場(chǎng)景嵌套子查詢 ROWNUM全版本中掃描到首行即停老版本兼容、追求性能FETCH FIRST12c最好同樣支持首行截?cái)嘈马?xiàng)目首選ROW_NUMBER()全版本中必須全量計(jì)算序號(hào)分組取首行等復(fù)雜場(chǎng)景從我個(gè)人的使用習(xí)慣來說12c 以上的新庫無腦用 FETCH FIRST老庫用嵌套子查詢 ROWNUMROW_NUMBER() 只在需要分組或者需要行號(hào)做二次處理時(shí)才用。4. 千萬行大表取首行執(zhí)行計(jì)劃與索引提案前面講的都是寫法層面的問題實(shí)際生產(chǎn)環(huán)境里另一個(gè)折磨人的問題就是性能。尤其是“幾千萬行大表”這種場(chǎng)景下取首行SQL 寫對(duì)了也可能會(huì)跑出讓人崩潰的執(zhí)行時(shí)間和 IO 消耗。先說一個(gè)結(jié)論如果只是“隨便取一行”WHERE ROWNUM 1加上FIRST_ROWS(n)之類的提示在大表上也能很快返回因?yàn)?Oracle 讀到第一行就停了。真正的性能坑集中在“按非索引列排序取首行”這個(gè)場(chǎng)景——它必須先把整張表的數(shù)據(jù)讀完、排完序才能找出第一條。舉個(gè)實(shí)際例子。某張流水表account_flow有 3000 萬行業(yè)務(wù)要查“金額最大的一筆流水”直接寫法SELECT * FROM ( SELECT * FROM account_flow ORDER BY amount DESC ) WHERE ROWNUM 1;我在測(cè)試環(huán)境跑過全表掃描加排序耗時(shí)接近 40 秒。這個(gè)結(jié)果不意外——排序本身要把 3000 萬行的 amount 字段全部讀出來放到臨時(shí)表空間排序性能瓶頸在 IO 和排序空間上。優(yōu)化思路有兩個(gè)方向。方向一把排序字段做成索引。如果amount上有索引Oracle 可以直接走索引的有序掃描從頭讀第一個(gè)索引條目就能拿到最大值。雖然還是 INDEX FULL SCAN但掃描到第一條就停了不會(huì)讀完整個(gè)索引CREATE INDEX idx_account_flow_amount ON account_flow(amount DESC); SELECT * FROM ( SELECT * FROM account_flow ORDER BY amount DESC ) WHERE ROWNUM 1;建了降序索引之后執(zhí)行計(jì)劃會(huì)變成 INDEX FULL SCAN (MIN/MAX) 類型的路徑執(zhí)行時(shí)間從 40 秒縮短到幾十毫秒級(jí)別。這里提醒一句索引建立后別忘了收集統(tǒng)計(jì)信息EXEC DBMS_STATS.GATHER_INDEX_STATS(USER, IDX_ACCOUNT_FLOW_AMOUNT);方向二如果業(yè)務(wù)只關(guān)心“最大/最小的某個(gè)字段值”而不是完整的一行數(shù)據(jù)直接用聚合函數(shù)更高效。比如只要最大金額是多少SELECT MAX(amount) FROM account_flow;Oracle 對(duì)MAX/MIN有專門的優(yōu)化路徑在普通 B 樹索引上做 MIN/MAX 掃描只需要讀兩個(gè)索引塊就能拿到結(jié)果連表數(shù)據(jù)都不用碰。這在高并發(fā)場(chǎng)景下是性價(jià)比最高的方案。再說一個(gè)容易忽略的執(zhí)行計(jì)劃細(xì)節(jié)。很多人以為嵌套子查詢里寫了ORDER BY子查詢就會(huì)把全部數(shù)據(jù)排完序再交給外層。實(shí)際上優(yōu)化器在特定條件下可以做排序消除sort elimination——如果排序字段本身就是索引的有序鍵優(yōu)化器會(huì)直接把排序操作省掉改用索引掃描的有序輸出。這也是為什么取首行時(shí)執(zhí)行計(jì)劃里到底有沒有SORT ORDER BY這一步很重要。用 EXPLAIN PLAN 看一眼EXPLAIN PLAN FOR SELECT * FROM ( SELECT * FROM account_flow ORDER BY amount DESC ) WHERE ROWNUM 1; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);如果執(zhí)行計(jì)劃里出現(xiàn)了SORT ORDER BY說明優(yōu)化器老老實(shí)實(shí)排了序如果顯示的是INDEX FULL SCAN (MIN/MAX)或者直接從索引取數(shù)說明走了優(yōu)化路徑。養(yǎng)成看執(zhí)行計(jì)劃的習(xí)慣比死記硬背優(yōu)化規(guī)則靠譜得多。另外涉及大表取首行時(shí)還要警惕熱塊競(jìng)爭(zhēng)。如果業(yè)務(wù)上高頻執(zhí)行“取最新一條”這類查詢所有人都去搶索引最右端那個(gè)葉塊就會(huì)產(chǎn)生 buffer busy wait。解決辦法通常是反向索引或者減少查詢頻率這屬于另一層級(jí)的優(yōu)化話題在這里先提一句供遇到性能問題的朋友排查時(shí)參考。5. 隨機(jī)行、分組首行、空表判斷幾個(gè)特殊場(chǎng)景前面講的都是“按規(guī)則取第一行”但實(shí)際開發(fā)中“取第一行”還有幾個(gè)容易被人問起、又容易寫錯(cuò)的變體我集中放到這一節(jié)講。5.1 隨機(jī)取一行如果業(yè)務(wù)需求是“從表里隨機(jī)抽一條”很多人會(huì)寫出SELECT * FROM orders ORDER BY DBMS_RANDOM.VALUE FETCH FIRST 1 ROW ONLY;這個(gè)寫法語義上完全沒問題大表上的性能就是另一回事了。DBMS_RANDOM.VALUE會(huì)給每一行生成一個(gè)隨機(jī)數(shù)然后全量排序代價(jià)極大。3000 萬行的大表跑一次這種查詢幾秒鐘是少不了的。大表隨機(jī)取行的優(yōu)化思路通常是先估算表行數(shù)隨機(jī)一個(gè)偏移量然后從中間位置取。但這是另一個(gè)話題了這里只想表達(dá)一個(gè)觀點(diǎn)ORDER BY 隨機(jī)函數(shù)的寫法只適合小表大表面試時(shí)答這個(gè)會(huì)被直接追問性能。5.2 分組取每組的第一行這是數(shù)據(jù)分析和報(bào)表里非常常見的需求——“每個(gè)客戶取最新一筆訂單”“每個(gè)商品分類取價(jià)格最低的一款”。很多人會(huì)用三層嵌套子查詢寫代碼又長(zhǎng)又難調(diào)試。最優(yōu)雅的做法是前面提到的 ROW_NUMBER()SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY create_time DESC) rn FROM orders t ) WHERE rn 1;PARTITION BY把數(shù)據(jù)按客戶分組組內(nèi)按時(shí)間倒序編號(hào)最后取每組編號(hào)為 1 的行。這個(gè)寫法配合ORDER BY create_time DESC的復(fù)合索引customer_id, create_time DESC能跑出不錯(cuò)的性能。順便對(duì)比一下老開發(fā)可能習(xí)慣用NOT EXISTS實(shí)現(xiàn)同樣的需求SELECT * FROM orders a WHERE NOT EXISTS ( SELECT 1 FROM orders b WHERE b.customer_id a.customer_id AND b.create_time a.create_time );語義是“找一張表里不存在比我更新的訂單”——也就是每組最新的一條。這個(gè)寫法在客戶數(shù)少、每人訂單多的情況下性能可以但如果客戶數(shù)量大關(guān)聯(lián)查詢的代價(jià)會(huì)成倍上漲。我從實(shí)測(cè)來看ROW_NUMBER() 復(fù)合索引是更穩(wěn)妥的選擇。5.3 判斷空表和取首行時(shí)的邊界處理還有一個(gè)經(jīng)常被忽略的細(xì)節(jié)表里沒有數(shù)據(jù)時(shí)“取第一行”會(huì)返回什么用FETCH FIRST 1 ROW ONLY查詢空表結(jié)果集是空的程序代碼里做fetch()會(huì)返回NO_DATA_FOUND。如果你是在 PL/SQL 里處理就要考慮這個(gè)異常分支BEGIN SELECT create_time INTO v_create_time FROM orders ORDER BY create_time DESC FETCH FIRST 1 ROW ONLY; EXCEPTION WHEN NO_DATA_FOUND THEN v_create_time : NULL; END;這種寫法在取最新時(shí)間戳?xí)r很常用但它有一個(gè)隱患如果create_time本身允許 NULL排序后第一條可能恰恰是 NULL。換句話說你取到了“存在但為 NULL”的時(shí)間跟“表里沒有數(shù)據(jù)”在 PL/SQL 里表現(xiàn)完全不一樣。寫代碼判斷空表時(shí)COUNT(*)或者EXISTS更直接SELECT COUNT(*) INTO v_cnt FROM orders WHERE ...; IF v_cnt 0 THEN -- 空表邏輯 END IF;如果你是在存儲(chǔ)過程里動(dòng)態(tài)拼 SQL 取首行記住動(dòng)態(tài) SQL 和靜態(tài) SQL 的 ROWNUM 行為一致但綁定變量和字面量的執(zhí)行計(jì)劃可能不同這在 11g 的綁定變量窺探bind peeking機(jī)制下尤其要注意。6. 我用ROWNUM踩過的兩個(gè)真實(shí)坑與驗(yàn)證方法理論講完說實(shí)踐。最后分享兩個(gè)我實(shí)際踩過的坑都跟“取第一行/取前幾行”有關(guān)希望能幫各位少走彎路。6.1 坑一PL/SQL 游標(biāo)里 ROWNUM 放錯(cuò)了層當(dāng)時(shí)要寫一個(gè)報(bào)表存儲(chǔ)過程邏輯是“從子表里取最近三條記錄然后循環(huán)處理”。我一開始寫的代碼是FOR rec IN ( SELECT * FROM child_table WHERE parent_id p_parent_id AND ROWNUM 3 ORDER BY create_time DESC ) LOOP ... END LOOP;一眼看過去覺得沒問題又是過濾又是排序。但實(shí)際跑出來的結(jié)果完全不對(duì)——取到的三條根本不是最新的三條。原因就是前面講的那個(gè)機(jī)制WHERE ROWNUM 3在ORDER BY之前執(zhí)行先把物理掃描的前三條抓走了然后才排序。正確寫法還是那招——嵌套子查詢FOR rec IN ( SELECT * FROM ( SELECT * FROM child_table WHERE parent_id p_parent_id ORDER BY create_time DESC ) WHERE ROWNUM 3 ) LOOP ... END LOOP;這個(gè)坑的問題在于它不像語法報(bào)錯(cuò)那樣直接暴露而是數(shù)據(jù)結(jié)果不對(duì)。數(shù)據(jù)量的變化也可能讓問題時(shí)隱時(shí)現(xiàn)——小表掃描順序碰巧和排序一致時(shí)結(jié)果是對(duì)的數(shù)據(jù)一多物理順序變了就出現(xiàn)偶發(fā)錯(cuò)誤。這類“偶爾錯(cuò)、偶爾對(duì)”的問題在排查時(shí)最難定位。6.2 坑二ORDER BY 的列沒進(jìn) SELECT 列表排序被優(yōu)化器陰了一把第二個(gè)坑更隱蔽。當(dāng)時(shí)有個(gè)分頁查詢外層是 ROWNUM 控制頁大小內(nèi)層子查詢排序。為了“精簡(jiǎn)結(jié)果集”內(nèi)層 SELECT 只選了業(yè)務(wù)要展示的字段排序字段在子查詢里沒出現(xiàn)在 SELECT 列表中SELECT * FROM ( SELECT order_id, order_amount, status FROM orders ORDER BY create_time DESC ) WHERE ROWNUM 20;Oracle 文檔里明確說明ORDER BY的列需要出現(xiàn)在 SELECT 列表中否則不保證排序結(jié)果。但實(shí)際執(zhí)行時(shí)它也不一定報(bào)錯(cuò)——優(yōu)化器可能會(huì)自行處理在某些執(zhí)行路徑下排序結(jié)果符合預(yù)期換了一種執(zhí)行計(jì)劃后結(jié)果就變了。我在 19c 上測(cè)試這種寫法在某些索引組合下會(huì)出現(xiàn)返回行亂序的情況排查了很久才定位到是排序字段被優(yōu)化器“優(yōu)化”掉了。解決辦法有兩個(gè)一是把create_time也放進(jìn)子查詢的 SELECT 列表二是設(shè)計(jì)復(fù)合索引(create_time DESC, order_id)讓排序完全走索引。6.3 驗(yàn)證寫法正確性的通用方法最后分享一個(gè)通用的驗(yàn)證思路。不管用哪種寫法寫完后先問三個(gè)問題SQL 的語義執(zhí)行順序是什么WHERE 過濾、排序、行數(shù)截?cái)嗄膫€(gè)先哪個(gè)后Oracle 里 WHERE 一定在 ORDER BY 之前窗口函數(shù)在 ORDER BY 之后別搞反。執(zhí)行計(jì)劃里有沒有多余的全表排序EXPLAIN PLAN 看有沒有 SORT ORDER BY有就說明排序躲不掉如果業(yè)務(wù)能接受沒排序的“第一行”直接 ROWNUM1 完事性能差著兩個(gè)數(shù)量級(jí)。結(jié)果是不是確定性的連續(xù)跑三次如果三次返回一樣的行才算穩(wěn)定。如果業(yè)務(wù)對(duì)“第一行”的定義模糊干脆把結(jié)果設(shè)為任意行并讓產(chǎn)品接受這個(gè)現(xiàn)實(shí)。這三個(gè)問題想明白基本上“取第一行”相關(guān)的 SQL 就不會(huì)再翻車了。最后再順手分享一個(gè)小筆記Oracle 的OFFSET ... FETCH語法其實(shí)從 12c 開始一直沿用到現(xiàn)在如果你開發(fā)環(huán)境是 21c 或 23ai可以放心用如果你要兼容 11g 的老生產(chǎn)環(huán)境嵌套子查詢 ROWNUM 才是那塊壓艙石。碰到取首行需求先問清楚業(yè)務(wù)意圖再選對(duì)應(yīng)的 SQL 形態(tài)這樣寫出來的查詢既高效又經(jīng)得起推敲。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲AV操| 欧美大片天天看| 亚洲欧洲国产综合av| 4虎在线观看| 狠狠搞 亚洲91| 中国探花熟女| 中国女人内射6XXXXX| 一二三区精品视频| av黄图片在线观看| 亚洲色图91| 国产精品第一页国产大屁股视频免费区i| 天天日天天舔天天喷天天射| 91精品久久综合熟女| 欧美黄页| 少妇无码999| 亚洲丝袜99| 嗯阿好爽好紧| 色性综合| 99精品在线观看| 亚洲日韩精品在线播放| 亚洲乱码国产乱码精网站| 国产黄色在线播放观看| 搡老女人老妇女AAA一VU麻豆| 超碰色老头| 国产精品色约约| 黑人中出21连凳花野真衣| 操操碰| 在线岛| 亚洲97成人在线观看| 美女诱惑久久| 欧美97爱| 天天噜| 日韩本不卡视频在线观看| 最新精品久久蜜桃| 无码视频一区二区| 黄色AV免费| 欧美色97| 98久久超碰| 精品日日人妻| 久久人妻熟女一区二区| 久久久久国色αv免费观看| 无码人妻系列少妇| 国偷自 一区| 天天日美女的B| 青青草大香蕉在线视频| 91高清日| 日韩情色一区二区| 日本性感人妻91| 毛片久久| 91香蕉视频在线观看免费| 1769成人国产精品视频| 男女激烈网站最新| 欧美一级特黄淫片在线观看| 欧美国产日韩高清在线| 色五月婷婷网| 一区二区三区日韩欧美| 久久九操在线观看| 精品免费囯产一区二区三区| 中日韩一区二区三区欧美| 91一区二区三区蜜桃| 日熟女| 日韩人妻播放| 久久激情网| 国产后入精品| 嫩草美女久久| 欧美日韩性爱操大逼| 婷婷视频网| 超碰79人人乐| 校园春色亚洲无码| 超碰吊日色| 久久久久久久久一区二区三区| 欧美性爱第一页久久| 国产精品网址| 九九色精品| 亚洲少妇诱惑| 91国产丝袜白虎| 日韩欧美女求操每天更新| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 巨爆乳肉感一区二区三区竹菊影视| 99激情视频| 亚洲成人一二三区| 78精品| 欧美日韩免费性爱| 丁香五月天久久精品视频一区二区三区| 粉嫩久久久久| 韩国一级做a久久久久| www.伪伪| 国产又大又粗又长视频在线| 嗯嗯嗯啊啊在线观看| 日韩无码人妻| 91强奸乱轮| 亚洲AV无码天美传媒一区| 色哟哟 日韩精品| 日本视频在线观看污污污| 亚洲老熟妇xxx| 粉嫩AV一区夜夜嗨| 日本国产亚洲一区在线观看| 国产女上位好爽在线| 超碰一区二区| 午夜视频好爽啊| 亚洲成人网站在线观看| 成人久久久精品| 人人么人人操| 顶级少妇BT天堂| 男人的天堂VA| 99超级碰免费视频| 日韩二区三四区五区六区在线看| 思思热在线视频免费| 久久性视频| 欧美亚洲清纯| xxx0国产在线播放| 久久久九九九九| 大学生美女口爆| 欧美黄色大香蕉一区二区| 五月天伊人| 91操熟女| 成人精品欧洲亚洲| 你懂得91| 天天影视综合色| av日韩在线观看电影| 啊啊啊com| 91人妻最真实刺激绿帽| 日本欧美色| 91P0RNY大屁股人妻| 五月激情综合网| 亚洲精品熟妇1区2区3区。| 国产亚洲精品av一区| 中日韩久久人妻一区二区| 国产精品高潮久久久无码| 麻豆久久久一区二区| 东北女人性交| 色五月网址| 色路综合| 亚洲丝袜二区| www熟女乱伦com| 成人老鸭窝人人在线视频| 日本精品五区| 色色99| yellow网站免费观看日韩高清无码| 台湾大香蕉99热| 日韩中文字幕视频| 97视频新免费| 色色婷婷丁香| 国产精品午夜AV完会免费 | 亚洲人精品午夜不卡| 日韩一区二区高清在线观看的| 先锋音影AV| 久久无码成人| 中文字幕av一区二区三区人妻少妇 | 51一区二区三区| 人妻五十路在线| 色综合色欲色综合色综合色综合| juliaann欧美丝袜办公室| 久久久蜜桃一区二区三区| 亚洲国产综合视频| 午夜福利 成人 91| 亚洲天堂另类| 中文字幕人乱码中文字的预防方法 | 熟女人妇一区二区三区| 精人妻一区二区三区| 夜夜嗨AV一区天天| 伊人久久在线视频观看| 欧美最婬乱婬爆婬牲视频| 爱射综合| 欧美性爱另类综合| 人人么人人操| 日韩情色一区二区| 国产丰满少妇久久久精品影院| 欧美日韩国产高清在线一二三区 | 国产精品日韩在线一区| 美女91网| 九九九热精品| 艾草av| 国产激情在线观看| 啪啪视频亚洲第一| 国产伦精品| 欧美日韩青操| 欧美熟妇视频| 五月丁香综合| 国产日韩欧美亚洲精品95 | 中文字幕第9页萱萱影音先锋 | 久久三| 综合夜夜| 97色欧洲| 最新9久久久9免费视频| 国产精品熟女AV中文字幕在线播放| 1000午夜黄色| 日韩在线视频1234| 中文激情网| 国产亚洲精品美女久久久久久2021| 最新制服中文第一页| 老女人碰碰在线碰碰视频| 欧美美女自慰一区二区三区| 婷婷六月色| 国产一级黄色片在线观看| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 日韩偷拍色图| 国产欧美精品日韩区二区麻豆天美| 黄色AAAAAAAAAAA大片| 99re免费视频精品全部| 91色图| 91国产丝袜白虎| 91热色| 少妇色欲综合网2| 九九九九97| 日韩精品电影| 人人澡综合涩| 亚洲丰满很很操| 骚女高跟AV在线| 亚洲AV不卡在线观看尤物| 国产白领连续中出在线观看| 艾草av| 性做久久久久久免费观看软件| 国产99999| 国产怡红院| 亚洲 欧美 中文 日韩超碰| 婷婷色播婷婷| 亚洲情色电影网| 99热这里都是精品| 91美女在线精品视频| 夜夜爽77777| 蜜臀久久一区二区| 98一区二区精品| 欧美日韩欧美| 青青在线视频免费| 伊人操| 东京热毛片177b2viP| 日骚逼视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 另类在线| 夜夜夜久久| JULIA人妻风俗店中出电影| 99国产精品在线观看| 大香蕉欧美伊| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 久久精品噜噜噜成人看免欧美大片| 超碰一区二区| 97超碰精品图片| 日躁天天爽爽| 亚洲阿v天堂无码z2018| 秋霞影音一区二区三区| 国产少妇肉丝在线观看| 欧美日韩婷婷中文| 九九九九九精品视频| 国产亚洲色停停久久99精品91| 一级@啪啪视频| 丁香五月天激情网站| 夜夜嗨一区二区| 91丝袜美女| 亚洲素人网| 91少妇人妻| 日韩人妻制服丝袜av| 免费的黄片wwwwww| 亚洲另类色图片| 久久久九精品| 久久中文字幕一区不卡| 欧美亚洲日韩人妻在线观看| 九九九精品一区二区无码| 国产嫩草精品A88AV| а√天堂资源官网在线资源| 精品 码产区一区二-1080P高清在线www-B029AV| 亚洲人精| 亚洲码和欧洲精品激情系列| 婷婷久久久精品| 亚洲?V高清一区二区三区尤物| 人人 操人人 操人人| 99热自拍| 白丝在线一区| 一区二区三区美女超清| 五月婷婷大香蕉| 热久久国产精品视频大陆精品| 国产精品成人无码av| www鬼畜国产男人的天堂| 久热大香蕉网站| 一二三区操逼国产91| 乱伦系列一区二区| 亚洲日韩欧美一区二区| 天天视频网站黄| 欧美亚洲综合色| 97少妇人妻中文字幕久久| 乱抡国产91| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产美女销魂在线观看不卡| 97天天摸天天碰| 成人久久久精品| 岛国黄片网站| 亚洲国产综合久久久性感熟妇| 人人操超碰在线| av无码精品久久久久| 青青草原综合久久大伊人精品| 偷拍综合网| 六月丁丁香| 亚洲久草AV色图| 可能人人看人人摸| 欧美一级专区免费大片| 日韩性爱视频在线免费观看 | 高潮精品| 抽查国产福利主播| 日日噜噜夜夜狠狠视频无| 久久夜嗨| 乱伦色图网址是多少| 国产男女无套97| 一中国女人毛片水真多| 男人天堂.AB| 国产v亚洲v日韩v欧美v片另类 | 热热色91| 美女91AV| 久极品在线观看| 色综合av综合久久| 中文字幕丝袜人妻| 国产精品自在线发布| 欧美一级专区免费大片| 欧美色综合影院| 中文字幕熟女人妻丝袜丝| 国产激情av女片自拍| 欧洲精品区| 99久久久久| 中文 人妻 制服| 99这里有精品| 一级日本牲交大片好爽在线看| 97干天天| 丁香五月天堂| 久久大黄片| 亚洲自拍欧美国产首页网曝 | 麻豆天美国美国产| 国产一区二区在线播放量| 青女在线| 天天爽夜夜操| 日逼视频日本| 好涩综合| 日本东京热大香蕉a片| 亚洲 日韩 丝袜 熟女 变态| 97伦综合| 亚洲 欧美 另类 日韩 人妻一区| 五月婷婷性爱| 亚洲国产精品无码AV久久久| 97超碰中文字幕| 久操大香蕉手机视频在线看| 日本 色 导航| 丰满人妻-区二区三区免费看| 九九九久千久久激情蜜桃在线看 | 亚洲大色堂| 丁香五月电影| 日韩熟女乱伦中出| 五月丁香婷婷综合网| 日韩小电影| 综合91网| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日韩中文字幕熟妇人妻 | 亚洲天堂电影网| 后X久久| A片 AV一级在线播放观看免费 | 久久天天摸| 国产精品制服丝袜清纯唯美| 人人操人人干xxx| 在线电影亚洲色图| 久久蜜色情在线视频xxx免费观看| 岛园激情| 欧美日韩免费性爱| 欧美v亚洲v综合v国产v妖精| 青青五月天| 加勒比伊人综合| 欧美日韩99精品麻豆传媒| 亚洲欧洲日韩国产自在线| 97视频免费在线观看| 久久9999| 97欧美久久久久久久| 色综合中文字幕不卡| www色婷婷| 伊人黄色视频免费观看| 在线欧美69V免费观看视频| 高清有码一区二区| 九九九九热| 男人的天堂com| 综合一区二区影视| wuyechaopeng| 婷婷精品久久av影视| 久久久男人的天堂| 日韩欧美资源| 夜夜操一区二区| 330Dv国产女人终合视频极品人与兽| 天堂av2019| 91国精产品| 久久大陆| 久久久久极品| 亚洲精品乱码久久久久久蜜桃麻豆| 熟女高潮合集-永久久久-成人AV | 欧美性夜| 欧美 亚洲| 91亚洲情色| 精品日日人妻| 校园春色五月天| 欧美91在线| 中文视频在线观看| 欧美成人免费在线观看| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 亚洲一区二区AV| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 丝袜美腿诱惑亚洲欧美视频在线观看| 色婷网| 婷婷伊人綜合中文字幕小说| 日本一区三级韩国| 欧洲乱码一区二区| 亚洲区限制级| 日本2020一区二区| 在线午夜成人无码视频| 八戒午夜福利理论片| 天天草夜夜草高潮片| 强奸乱伦中文字幕AV| 国产成人bd在线观看| 色婷网| 97网址www| 综合91网| 91麻豆天美传媒在线| 久久国产AⅤ| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 3028国产精品| 综合激情五月丁香| 亚洲欧美色综合| 亚洲色图综合网| 欲香欲色综合天天伊人| 欧美日韩*字幕一区| 人人操人人摸人人看人人干| 亚洲精品视频在线播放| 肉丝网站91| 精品一区99999| 日本乱人伦片中文三区| 99热这里只有精品地址| 欧美精品第四五页中文字幕在线观看| 久操av在线| 91老熟女| 久久五月丁香| 9999亚洲精品| 秋霞色色影院| 99热这里只有精品8| 国产传媒1234区| 色婷婷日韩精品一区二区三区| 91亚洲高清| 伊人激情五月天一区二区| 亚洲精品男人的天堂| 男人的天堂在线| 2020久久免费视频| 九九色逼| 乱色老一区二区三区的观看方式| 激情黄色片在线观看| 亚洲av乱伦色图网站| 欧美 日韩 国产传媒| 欧美性色欧美| 人妻乱仑一区二区三区| 国产精品欧美激在线| 日夜精品| 97香蕉碰碰人妻国产欧美| 欧天美中出| 天天看天天日天天操| 91美女视频直播| 女同女同恋久久级三级| 欧美日韩夜夜| 欧美综合另类| 色色丁香| 国产sv美女内射| 国产精品久久久久久久久AV大片| 亚洲九九视频在线观看| 欧美性爱1080p| 97精品国产手机| 无码免费在线观看黄色片| 97亚洲性爱| 老女人综合网| 91天美传媒精品| 亚洲无线观看久久| 超碰在线974| 黄色大片视频在线免费看| 亚洲中文字幕噜噜噜久久久| 亚洲人久久久久日| 久久久999日本大片| 欧美黑人熟妇精品91| 大香蕉AV在线| 久久精品久| 久操高青| 日本人妻伦在线中文字幕| 99热99re超碰精品| 欧美人人操人人插| 国产精品久久久九九九| 国产激情av女片自拍| 91综合天天看| 久操大香蕉手机视频在线看| 97在线看| 青草香蕉网| 国产黄片精品在线| 亚洲激情深爱文学小说网站| 久久九九综合| 操逼操2| 性色av一区二区| 久久综合亚洲色1080p| AV色五月天| 亚洲成av人片色午夜乱码| 久久久久久久| 亚洲色图美腿丝袜| 亚洲激情在线| 日韩综合成人免费视频| 天天干1区2区在线| 久久免费老司机精品| 中文字幕,人妻,日韩| 青青草久久在线| 大香交伊人网| 国产日韩在线播放av| 天天综合站| 亚洲欧美一区二区三区在钱蜜桃 | 激情丁香五月婷婷| 手机看片日韩人妻| 国语精品av| 欧美狠狠操| 国产67194| 13小男生GAY自慰脱裤子| 风月影院男女十八禁| 色色热| 国产熟女完整版中字| 亚洲人妻色图| 久久一二三四不卡| 国产刺激视频| 美女一区二区国产精品| 操逼网站网站| 天天夜夜rb| 99国产精品久久久在线播放| 国产精品一二三免费网站| 青青操综合网| 无码动漫av中文字幕| 欧美操逼录像国产黄色国产| 亚洲限制级| 97人肏| 色婷五月| 国产情侣自拍在线播放| 91在线秘 男同| 超碰九7| 久久精品综合| 色超碰综合| JULIA人妻风俗店中出电影| 国内毛片无码一级毛片| 亚洲精品无码久久AV| 大学生美女口爆| 中文字幕乱妇免费视频| 色亚州人久干视频在线观看免费版| 日本天天吊| 中文字幕 码 自拍 视频 区| 抽插无码高清一区| 欧美激情中文字幕另类小说| 强奸乱伦亚洲第一页| 亚洲不卡三级手机播放| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 日本幼女18+| 日韩av情韩国爱禁区av一区二区| 日韩精品人妻中文字幕久久久| 伊人影院在线理论播放 | 亚洲97在线| 99999国产精品| 91bbbbbb| 精品国产乱码久久久久久蜜臀| 淫穴高潮色图| 最新啪啪视频| 免费作爱一级视频| 亚洲欧美国产成人综合不卡| 视频分类 国内精品| 韩国三级理论在线| 亚洲天堂 视频你懂的| 911粉嫩人妻| 亚洲欧洲国产综合av| 中文字幕免费看大片| 美女被艹尤物视频| 欧美一级色| 婷婷色一区| 久久久不能久久久久| 99re69综合| 很很很很操| 欧美在线|亚洲| 夜夜久久久| 黄页av| 人人模人人看| 99国产在线 精品 视频| 福利视频一区二区微拍| av国产无码| 久久人妻丝袜一区二区三| 花野真衣| 97在线资源| 国产精品一区二区三区在线| 国产精品高潮久久久无码| 国产亚洲日韩欧| 秋霞无码av鲁丝片一区| 久久久婷婷婷| av午夜玫瑰| 国产丸一视频| 日韩一二三区| 国产精品亚洲高清在线| 色色色五月婷婷| 欧美最婬乱婬爆婬性视频 | 日韩偷拍一区二区三区| 国产小黄片在线免费观看| 欧美性爱五月天| 久久精品72| 亚洲丨在线| 日韩综合成人免费视频| 婷婷综合久久| 小骚逼被操的爽不爽| 加勒比综合在线| 日韩性爱免费观看视频| 久9热| 97超碰巨乳| 97干在线视频| 极品美女福利在线观看| 夜夜操老骚逼视频网站| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 欧美 日韩 国产传媒| 国产熟女精品区| 国产精品夜夜| 亚洲精品亚洲人成在线麻豆| 中文字幕丝袜美腿| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 色色热| 啊啊啊啊啊好舒服视频| 极品销魂美女一区二区| 天天做天天爱天天爽| 97爱碰| 亚洲高清无毛一区二区| 精品一区二区三区蜜桃臀赵总 | 国产一级高清免费观看| 日韩成人综合网| 丝袜加勒比| 老色鬼成人精品视频下载大在线观看| 久操不卡视频| 日本久久精品| 99在线啪| ..日韩av毛片精品久久久| 日韩国语字幕| 久久久91| 99热这里是精品| 日本熟妇自慰性高潮一区二区三区| 成年人网站在线免费观看| 九九在线精品| 78m成人视线| 国产树林里野战在线看| 超碰97首页| 亚洲精品一二区| 91熟女综合| 蜜乳Av成人片网站| 中文字幕78| 久久黄色性爱视频| 大香蕉综合在线| 精品久久久高清无码| WWW.加勒比人妻一区不卡.com| 囯产精品久久久久久久久久梁医生| 3571色综合一区二区二区| 97在线观| 97蜜桃综合| 欧美AAAA黄片| 久久亚洲熟妇在线视频| 国产av波波国产精品| 亚洲91网站| 韩国午夜理伦三级好看| 亚洲一二三四区在线免费看视频| 中文字幕日韩人妻视频一区二区三区 | 国产高清在线观看欧美| 中出后入| 五月丁香色情| 欧美在线91| 激情图片伦理国产一区二区日韩| 欧美人与动性人交a| 色天使大香蕉| 久久毛卡| 精品人妻一区二区三区鲁大师| 首页亚洲国产高跟丝袜诱惑视频| av影片在线观看不卡| 中文字幕一区二区三区人妻少妇在线| 香伊人在线| 久久亚洲色图中文字幕| 亚洲日韩精品在线播放| 日本阿v天堂在线观看| 综合网欧| 欧美精品自慰系列寂寞少妇 | 少妇高潮99p| 偷拍欧美激情| 久操操AV电影| 97视频免费在线| 天天综合91在线| 精品毛片av一区二区| 婷婷探花久久精品一区| 日本天天吊| 97精品熟女少妇一区| 日日97| 中文字幕在在线观看网站| 在线a v| 久久97超碰| 亚av顶级裸体一区二区三区四区五区| 亚洲欧美日韩综合在线尤物 | 亚洲精品国产精品乱码不99| 日本精品五区| 97爱啪| 极品粉嫩一区二区| 国产树林里野战在线看| 91综合色噜噜| 久久精品人妻一区二区三区| 免费看污网站| 大香蕉人妻| 性爱免费视频成人| 九九九九热| 久久人妻一区二区三区高清| 打av高清| 免费观看欧美日韩操逼视频| 亚洲成人性| 秋霞色色影院| 欧美一区二区| 色色青青久久| 欧美日韩青操| 欧美美女在线高潮999| 99碰碰| ?亚洲伊人伊成久久人综合网| 另类图片欧美激情综合| 嗯嗯啊啊啊好爽| 果冻传媒A片一二三区| 岛国人妻少妇av在线观看| 国产欧美精品日韩区二区麻豆天美| 郑州宾馆老熟女露脸啪啪| 呦呦影院| 九九九久久久| 亚洲天堂男人天堂网| 一区二区无码视频| 精品无码产区一区二| 青女在线| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 国产熟码AV| 国产成自自拍在线观看| 久久理论字幕视频| 亚洲日本加勒比在线| 91丨九色丨东北熟女| 999国产精品999| 亚洲色图日韩精品| 久久激情亚洲精品无码?V| 国产传媒操逼视频| 激情网色| 老司机免费视频在线91| 色狠人在线99| juliaann丝袜大战黑鬼| 久久97资源 网| 国产农村妇女精品1区二区| 99热超碰| 97国伦国色| 91国产大片| 艳尻美人妻| 国产一区二区久久| 久草精品一区| 九九九九九九免费视频| 亚洲第一男人天堂| 97精品在线视频| 超碰99re| 亚洲影院无码在线| 自怕偷自怕亚洲精品| 色黄色美女大长腿午夜视频| 国产精品女久久久久av爽| 日韩 欧美 另类 人妻| 在线看片国产精品每日更新| 亚洲操逼视频网站| 日本在线一二 | 一区二区中文| 日韩成人精品| 国产精品一区二区 尿失禁| 久久精品性| 伊人97超碰| 97爱爱影院| 亚洲国产中文字幕| 亚洲人妻日日日| 曰韩中文人妻视频| 91丨豆花丨熟女| 亚洲欧美激情在线视频| 超碰97爽| 日本黄页视频在线观看| 日韩一级二级三级| 极品欧美一区二区三区| 亚洲精品aa久久伊人| 日本大片日本一区二区免费高清| 国产自产91区13区| 影音资源男人日韩| 美女91| 色黄色美女大长腿午夜视频| 成片免费观看视频大全| 精品v1区| 欧洲亚洲人妻无码久久三区四区| 精品国产一区探花在线观看| 日韩亚洲中文字幕在线| 六九九九| 久久美国毛片| 思思热国产高清| 人人干人人操人人..com| 久热69九色熟妇97| 色香综合天天影视综合| 色激情综合网站| 久久精品三级影视| 日本中文字幕高跟| 亚洲 欧美 第一页| 操逼啊啊啊91| 亚州成人A√| 欧美色图另类图片| av无码av无码专区| 免費人妻夜夜爽天天爽爽一区| 操死我了啊啊啊| 精品国模无码| 97色色网| 亚洲干B| 99精品欧美一区二区三区桃色| 亚洲色鬼| 0755午夜福利视频| 日本一区二区三区四区免费观看| 国产天天骚| 欧美天天综合网版| 久久这里只精品99re66图| 加勒比av中文| 肉动漫无遮挡h在线观看| 九九色逼| 桑老女人九区| 无码WWW免费视频网站| 99999精品成人| 屁股久久久久久久久久| 色五月首页| 欧美激情黑人| 岛国AB视频| 色九九九综合| 先锋影音av先锋一区| 天美传媒av 在线| 欧美人妻制服| 激情网五月天| 大鸡巴久久| 国产麻豆一级精品视频| 男女性扦B| 欧美性爱www免费版| SUV一区二区在线看| 国产美女自拍AV| 99热在线不卡| 午夜精品久久久久久久久久蜜桃| 天天操天天射青青草| 91东北熟女| 99久久这里只有精品| 亚洲男人天堂AV| 夜夜操2028| 亚洲色图亚洲| 国产精品熟女AV中文字幕在线播放| 亚洲日韩电影| 女一区二区| 日逼逼免费看| 免费97视频| 91精品无码人妻系列| 俺去啦自拍| 亚洲色综合| 精…码一二三区| 国产欧美一区二区| 青青免费在线视频一区| 久久日本熟女精品一区| 亚洲第2页| 久久中文字幕人妻熟av女蜜柚| 色狠狠色| 国产在线播放成人免费| 午夜性| 啪啪资源网| 欧洲色综合| 射 色综合| 999精品国产高清一区二区| 欧美 亚洲 另类 综合| 亚洲国产午夜真人一级片中文字幕精品黄网站| 97久久天天综合色天天综合色电影| 九月丁香综合网| 强乱老妇中文字幕| 青青草原人妻| 成人亚欧免费视频| 美女性91| 久久久久久91香蕉国产| 操我无码| 精…码一二三区| 亚洲欧洲无码97久久精品| 成人网站 免费观看| 亚洲丝袜少妇在线| 少妇人妻无码| 人人透人人操| 无码人妻精品一区二区三区99不卡| 伦在线97| 9久综合网| 少妇无码av专区线| 久久嫩草| 日韩视频小说在线观看| 99这里有精品| 手机在线播放国产福利| 97超碰9| 狠狠亚洲| 99超碰色| 免费综合亚洲中文| 极品欧美一区二区三区| 日韩精品人妻中文字幕不卡乱码| 国产馆极品诱惑| 欧美特大黄一级片片免费| 97视频在线免费观看| 在线情色电影 91大 | 一二三区操逼国产91| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 欧美熟妇乱码在线一区| 国产AV无码AV| 在线中文字幕| 日韩啪啪视频| 精品二区久久| 精品人妻一区春色| 久无码| 久久综合婷婷| 成人网站 免费观看| 被窝影院午夜看片无码| 9久久精品| 丝袜狂射91| 青青草在线视频欧美| 校园春色综合| 91超级碰碰| 岛国黄色大片网站| 琪琪精品免费一区二区三区| 激情小说亚洲| 九九九九九九九九九国产精品| 香蕉免费一区二区三区不读| 97欧美精品综合| 淫淫总合网| 成人夜夜爽| 丁香六月啪啪| 狠狠操综合| 日本日皮视频逼| 日韩人妻播放| 金莲网址| 国产日韩区| 一个国产在线综合网站| 亚洲性爱成人| 欧美中文字幕日韩在线| J?P?NESEHD熟女熟妇伦| 国产精品96| 精品人妻一区二区免费蜜桃视频| 九九热av| 久久黄人人爽视频| 午夜一区| 在线97视频| 一区二区中文| 91在线免费精品视频| 日夜伊人网| 精品91| 日韩成人无码| 以及麻豆国产入口在线观看免费| 蜜乳中文字幕a在线| 久久久久久99AV无码免费网站| 欧美成人一级麻豆| 丁香婷婷五月| 成人97人人超碰人人| 岛国激情视频软件| 岛国视频免费在线观看| 激情接吻视频久久久久久| 久久精品国产72国产精品福利| 亚洲日韩国产欧美综合v| 乱伦熟女区| 婷婷五月天成人| 东北女人av| 国产午夜视频| 夜夜免费视频| 色色九区| 黄色AV免费| 欧美aaaaaaa| 2018色综合天天操| 亚洲性综合9| 自拍欧美| 美女上床网站| 亚洲另类天堂| 少妇人妻太紧太深av| 99久久精品国产高潮| 蜜臀国产AV中文字幕| 国产AV天美| 天天操天天7| 91色插| 国产精品ⅴ无码大片在线看.| 亚洲欧美中文一区二区三| 120分钟婬片免费看| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 欧亚乱色熟一区二区三四区| 高潮综合网| 欧美色九九| 四虎国产精品永久入口| 日本国产欧美高清在线| 欧美日韩超碰在线| 91黑丝美女| 日本大香蕉综合网| 国产精品久久久久无码A√| 91热爆在线| 骚逼一区二区| 天天久久| 日韩国产在线观看av| 亚洲另类综合欧美| 蜜桃一区二区三区| 亚洲欧美首页| 牛黄色久午久| 美骚妇av高清在线| 高清孕妇孕交 交| 99re国产精品视频| 婷婷亚洲中文字幕在线| AV色五月天| 午夜福利国产欧美日韩夜夜| 色丁香久久| 欧美大片天天看| 成年无码动漫av片无尽在线| 自拍大香蕉乱插| 国产乱弄免费在线视频。| 草久在线| 精品在线观看视频在线| 美女97超碰| 综合久久9| 国产精品秘 福利姬在线观看| 一区二区三区蜜桃成人撸久久东京热| 九九热国产| 蜜乳av首页| 久久成人午夜狠狠| 成人乱人伦一区二区| 天天操天天射青青草| 日日骚网站| 欧美丰满熟妇XXXX性ppX人交| 久久动漫精品视频这里只有精品| 国产女同在线观看视频| 亚州国产精品乱| 97超碰伊人| 亚洲成?V人片在线观看福利| 天天综合香 ld视频| 欧美色宗合| 夜夜爽77777| 亚洲精品91| 色五月亚洲| 国产又粗又长又大的视频| 婷婷午夜成人色中色| 欧美性爱一区二区三区四区| 亚洲人成网站7777| 97久久久久久久精| 久久东京热久久| 九九九九久久久| 91爱啪| 欧美性爱97超碰| 操东北女人| 在线女人91| 乱性AV| 无码视频一区二区| 亚洲欧美日韩免费电影| 中文幕97| 国产精品激情久久久久久久| 日本999精品| 国产三级多多影院2022国产AA一级毛片无码 | 国产高清26uuu| 99久久9| 亚洲AV无码久久久国产精品| 超碰97人人乐| 丁香婷婷久久 | 午夜男人av| 蜜桃臀AV在线| 国产精品自产拍在线观看社区| 9久9久9久9久视频网站| 色综合色综合网| 久久一区二区三区四区五区| 澳门人妻久久| 一二三四视频中文字幕在线看| 亚洲欧洲第二视频在线观看色图| 在线观看亚洲专区| 97视频一区| 久久大香蕉手机高清视频| 少妇一级无码精品| 亚洲一区二区 麻豆传媒| 97人人操人人摸| 老熟乱一区二区三区四区| 嗯嗯嗯好爽| 久久性爱精品一区| 亚洲综合另类色图| 日韩欧美视频青青| 欧美性爱第一页久久| 91欧美性| 91美女丝袜诱惑视频| 中文字幕第9页萱萱影音先锋| 亚洲诱惑| 婷婷在线视频| 综合伊人激情| 18禁久久| 乱理日韩中文| 九九探花视频在线观看| 亚洲色图欧洲| 蜜桃视频一区二区三区| 久久草大香蕉| 国产亚洲欧美每日在线| 欧美色吧综合| 午夜性| 五月婷婷啪啪| 国产乱伦性爱区| 蜜屁av| 日本男人插女人的逼黄色| 欧美在线干| 国产精品成人无码a v毛片| 9久9久9久9久视频网站| 中文字幕片| 日本日逼视频网| 操操逼视频| julia国产在线| 亚洲综合第一页| 亚洲色图欧美色图制服诱惑| 五月天色色色| 亚洲制服aⅴ中文字幕| 色97干| 亚欧洲一区二区视频| 成人AV素股で擦久久| 一级久久性爱视频| 秋霞一集毛片观看| 国产美女高潮视频| 欧美色图 人妻| 黑操B| 超碰91在线| 精品人体无圣光凹凸| 97在线观看| 国产农村妇女毛片精品久久| 久操在97| 丝袜喷水在线| 中文字幕 人妻不满 在线视频| 人人人人插| 久久国产熟女影院| 国产精品扒开腿做爽爽爽视频| 91青青在线视频| 久久久久ab| 亚洲AO在线| 美女露胸露尿口| 密桃99999| 九九aV| 色综合久| 欧美日本一区二区a人| av强奸乱轮| 极品欧美一区二区三区| 亚洲欧美高清| 超碰99re| 欧美色另类| 欧美色干| 青娱乐黄色录像| 欧美日本不卡在线| 亚洲自拍小说| 久肏视频字幕| 夜夜嗨一区二区三区三州加勒比| 久久精品国产久精国产| 丁香五月天久久精品视频一区二区三区| 国产欧美伊人| 国产精品一二三免费网站| 欧美日韩99| 婷婷五月天丁香| 99视频只有精品| 色色99| 操人妻丝袜高跟| 久久久久日本视| 熟妇视频一区二区三区在线观看| 欧美日韩超碰在线| 日韩偷拍色图| 色呦呦、国产精品| 夜夜高潮夜夜爽| 97日视频| 欧美精品三区| 国产精品乱码久久久、久久| 怡红院亚洲怡春院av| 欧美色图自拍| 91高清欧美| 亚洲精品久久久久毛片A片拉屎 |