午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁(yè) > 知識(shí)庫(kù) > Oracle中使用Rownum分頁(yè)詳細(xì)例子

Oracle中使用Rownum分頁(yè)詳細(xì)例子

熱門標(biāo)簽:高德地圖標(biāo)注公司名字大全 電渠外呼系統(tǒng) N個(gè)你智能電銷機(jī)器人 車瑪仕極限運(yùn)動(dòng)場(chǎng)所地圖標(biāo)注 七日殺a19.5全地圖標(biāo)注 廣東營(yíng)銷智能外呼系統(tǒng)商家 地圖標(biāo)注怎么保存 外呼電話系統(tǒng)用卡嗎 騰訊地圖標(biāo)注要費(fèi)用嗎

在MySQL中,我們通常都使用limit來(lái)完成數(shù)據(jù)集獲取的分頁(yè)操作,而在Oracle數(shù)據(jù)庫(kù)中,并沒有類似limit一樣的方便方法來(lái)實(shí)現(xiàn)分頁(yè),因此我們通常都是直接在SQL語(yǔ)句中完成分頁(yè),這里就需要借助于rownum偽列或row_number()函數(shù)了,本文將分別展示使用rownum偽列和row_number()分析函數(shù)來(lái)完成Oracle數(shù)據(jù)分頁(yè)操作的具體使用方法,并分析和比較兩者的性能優(yōu)劣。

一、初始化測(cè)試數(shù)據(jù)

首先測(cè)試數(shù)據(jù)我選取了數(shù)據(jù)字典all_objects表中的70000條數(shù)據(jù),創(chuàng)建步驟如下:

復(fù)制代碼 代碼如下:

-- 為了方便驗(yàn)證結(jié)果集以及避免不必要的排序,這里我直接使用了rownum來(lái)產(chǎn)生了有序的OBJECT_ID列
SQL> create table my_objects as
2 select rownum as OBJECT_ID,OBJECT_NAME,OBJECT_TYPE
3 from all_objects where rownum 70001;

Table created.

-- 對(duì)OJBECT_ID列建立主鍵
SQL> alter table my_objects add primary key (object_id);

Table altered.

SQL> select count(*) from my_objects;

COUNT(*)
----------
70000

-- 分析該表
SQL> exec dbms_stats.gather_table_stats(user,'my_objects',cascade => TRUE);

PL/SQL procedure successfully completed.

二、分頁(yè)數(shù)據(jù)獲取

為了完成分頁(yè),我們需要獲得該表中的第59991-60000條的10條記錄,這個(gè)工作我們分別使用rownum和rown_number()來(lái)實(shí)現(xiàn)

復(fù)制代碼 代碼如下:

-- 方法一,rownum偽列方式
SQL> select t.* from (select d.*,rownum num from my_objects d where rownum=60000) t where t.num>=59991;

OBJECT_ID OBJECT_NAME OBJECT_TYPE NUM
---------- ------------------------------ ------------------- ----------
59991 /585bb929_DicomRepos24 JAVA CLASS 59991
59992 /13a1874f_DicomRepos25 JAVA CLASS 59992
59993 /2322ccf0_DicomRepos26 JAVA CLASS 59993
59994 /6c82abc6_DicomRepos27 JAVA CLASS 59994
59995 /34be1a57_DicomRepos28 JAVA CLASS 59995
59996 /b7ee0c7f_DicomRepos29 JAVA CLASS 59996
59997 /bb1d935c_DicomRepos30 JAVA CLASS 59997
59998 /deb95b4f_DicomRepos31 JAVA CLASS 59998
59999 /9b5f55c0_DicomRepos32 JAVA CLASS 59999
60000 /572f1657_DicomRepos33 JAVA CLASS 60000

10 rows selected.

-- 方法二,row_number分析函數(shù)方式
SQL> select * from
2 (select t.*,row_number() over (order by t.OBJECT_ID) as num
3 from my_objects t)
4 where num between 59991 and 60000;

OBJECT_ID OBJECT_NAME OBJECT_TYPE NUM
---------- ------------------------------ ------------------- ----------
59991 /585bb929_DicomRepos24 JAVA CLASS 59991
59992 /13a1874f_DicomRepos25 JAVA CLASS 59992
59993 /2322ccf0_DicomRepos26 JAVA CLASS 59993
59994 /6c82abc6_DicomRepos27 JAVA CLASS 59994
59995 /34be1a57_DicomRepos28 JAVA CLASS 59995
59996 /b7ee0c7f_DicomRepos29 JAVA CLASS 59996
59997 /bb1d935c_DicomRepos30 JAVA CLASS 59997
59998 /deb95b4f_DicomRepos31 JAVA CLASS 59998
59999 /9b5f55c0_DicomRepos32 JAVA CLASS 59999
60000 /572f1657_DicomRepos33 JAVA CLASS 60000

10 rows selected.

可以看到這兩種方式都返回了正確的結(jié)果集;在rownum方法中,由于不可以直接使用rownum偽列執(zhí)行”大于“比較運(yùn)算,所以這里是先從子查詢中使用rownum來(lái)獲得前60000條數(shù)據(jù),然后在外層查詢中使用大于運(yùn)算去除不需要的行。而對(duì)于row_number()方法,row_number()分析函數(shù)以O(shè)BJECT_ID排序并為其生成了唯一的標(biāo)識(shí),然后通過(guò)between這種便于理解的方式來(lái)獲取區(qū)間數(shù)據(jù),那么實(shí)際的執(zhí)行是不是這樣的呢?我們來(lái)簡(jiǎn)單分析一下兩者的執(zhí)行細(xì)節(jié)。

三、分頁(yè)性能分析

首先還是看一下他們的執(zhí)行計(jì)劃:

復(fù)制代碼 代碼如下:

SQL> set autotrace traceonly
SQL> set linesize 200

-- rownum偽列分頁(yè)的執(zhí)行計(jì)劃
SQL> select t.* from (select d.*,rownum num from my_objects d where rownum=60000) t where t.num>=59991;

10 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 341064162

----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 60000 | 3164K| 103 (0)| 00:00:02 |
|* 1 | VIEW | | 60000 | 3164K| 103 (0)| 00:00:02 |
|* 2 | COUNT STOPKEY | | | | | |
| 3 | TABLE ACCESS FULL| MY_OBJECTS | 60000 | 2226K| 103 (0)| 00:00:02 |
----------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("T"."NUM">=59991)
2 - filter(ROWNUM=60000)

Statistics
----------------------------------------------------------
163 recursive calls
0 db block gets
399 consistent gets
0 physical reads
0 redo size
1030 bytes sent via SQL*Net to client
419 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
10 rows processed

-- row_number()分頁(yè)的執(zhí)行計(jì)劃
SQL> select * from
2 (select t.*,row_number() over (order by t.OBJECT_ID) as num
3 from my_objects t)
4 where num between 59991 and 60000;

10 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2942654422

----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 70000 | 3691K| 565 (1)| 00:00:07 |
|* 1 | VIEW | | 70000 | 3691K| 565 (1)| 00:00:07 |
|* 2 | WINDOW NOSORT STOPKEY | | 70000 | 2597K| 565 (1)| 00:00:07 |
| 3 | TABLE ACCESS BY INDEX ROWID| MY_OBJECTS | 70000 | 2597K| 565 (1)| 00:00:07 |
| 4 | INDEX FULL SCAN | SYS_C0011057 | 70000 | | 146 (0)| 00:00:02 |
----------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("NUM">=59991 AND "NUM"=60000)
2 - filter(ROW_NUMBER() OVER ( ORDER BY "T"."OBJECT_ID")=60000)

Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
490 consistent gets
0 physical reads
0 redo size
1030 bytes sent via SQL*Net to client
419 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
10 rows processed

從上面的執(zhí)行計(jì)劃中我們可以看出,rownum方法使用了全表掃描來(lái)獲得表中的前60000行,然后使用謂詞條件”T”.”NUM”>=59991來(lái)過(guò)濾掉了不需要的行;而row_number()方法雖然利用到了主鍵索引來(lái)省去了分析函數(shù)本身產(chǎn)生的window的排序操作,但它還是先獲取了表中的所有70000行數(shù)據(jù),然后再使用between關(guān)鍵字來(lái)過(guò)濾數(shù)據(jù)行,這個(gè)操作的很多資源都消耗在了數(shù)據(jù)讀取上了,所以上面的例子中,rownum偽列方法獲得了較好的性能,而實(shí)際上,在大多數(shù)情況下,第一種rownum方法都會(huì)獲得較好的性能。

可能有人會(huì)疑問,既然row_number()方法在數(shù)據(jù)讀取上面花費(fèi)了這么多的資源,為什么不直接讓它全表掃描呢,那么我們來(lái)看看使用全表掃描的情形:

復(fù)制代碼 代碼如下:

-- 直接禁用主鍵
SQL> alter table my_objects disable primary key;

Table altered.

SQL> select * from
2 (select t.*,row_number() over (order by t.OBJECT_ID) as num
3 from my_objects t)
4 where num between 59991 and 60000;

10 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 2855691782

-----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 70000 | 3691K| | 812 (1)| 00:00:10 |
|* 1 | VIEW | | 70000 | 3691K| | 812 (1)| 00:00:10 |
|* 2 | WINDOW SORT PUSHED RANK| | 70000 | 2597K| 3304K| 812 (1)| 00:00:10 |
| 3 | TABLE ACCESS FULL | MY_OBJECTS | 70000 | 2597K| | 120 (1)| 00:00:02 |
-----------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("NUM">=59991 AND "NUM"=60000)
2 - filter(ROW_NUMBER() OVER ( ORDER BY "T"."OBJECT_ID")=60000)

Statistics
----------------------------------------------------------
190 recursive calls
0 db block gets
450 consistent gets
0 physical reads
0 redo size
1030 bytes sent via SQL*Net to client
419 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
6 sorts (memory)
0 sorts (disk)
10 rows processed

可以看到這種全表掃描的情形發(fā)生WINDOW SORT PUSHED RANK方法,也就是說(shuō)這會(huì)cpu資源又花在了對(duì)object_id的排序上了,盡管在本例中object_id已經(jīng)有序了,性能上同樣不及rownum方式。

所以在寫程序的過(guò)程中,對(duì)于Oracle的分頁(yè)操作我還是傾向于使用如下的rownum的方式來(lái)完成,通常的寫法如下:

復(fù)制代碼 代碼如下:

-- 返回第20頁(yè)數(shù)據(jù),每頁(yè)10行
SQL> define pagenum=20
SQL> define pagerecord=10
SQL> select t.* from (select d.*,rownum num from my_objects d
2 where rownum=pagerecord*pagenum) t
3 where t.num>=(pagenum-1)*pagerecord +1;

old 2: where rownum=pagerecord*pagenum) t
new 2: where rownum=10*20) t
old 3: where t.num>=(pagenum-1)*pagerecord +1
new 3: where t.num>=(20-1)*10 +1

OBJECT_ID OBJECT_NAME OBJECT_TYPE NUM
---------- ------------------------------ ------------------- ----------
191 SQLOBJ$DATA_PKEY INDEX 191
192 SQLOBJ$AUXDATA TABLE 192
193 I_SQLOBJ$AUXDATA_PKEY INDEX 193
194 I_SQLOBJ$AUXDATA_TASK INDEX 194
195 OBJECT_USAGE TABLE 195
196 I_STATS_OBJ# INDEX 196
197 PROCEDURE$ TABLE 197
198 PROCEDUREINFO$ TABLE 198
199 ARGUMENT$ TABLE 199
200 SOURCE$ TABLE 200

10 rows selected.

備注:

在寫程序的時(shí)候?yàn)榱吮阌诶斫猓矔?huì)有人在rownum方法中使用between來(lái)限定數(shù)據(jù)行,寫法如下:

復(fù)制代碼 代碼如下:

select t.* from (select rownum num, d.* from my_objects d) t where t.num between 59991 and 60000;

在他們看來(lái),這樣寫返回的數(shù)據(jù)行和第一種rownum方法是一致的,Oracle會(huì)推進(jìn)謂詞between部分到子查詢內(nèi)部,同樣也不影響性能,而這種想法是完全錯(cuò)誤的,我們來(lái)看一下它的具體執(zhí)行計(jì)劃:

復(fù)制代碼 代碼如下:

SQL> select t.* from (select rownum num, d.* from my_objects d) t where t.num between 59991 and 60000;

10 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 1665864874

----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 70000 | 3691K| 120 (1)| 00:00:02 |
|* 1 | VIEW | | 70000 | 3691K| 120 (1)| 00:00:02 |
| 2 | COUNT | | | | | |
| 3 | TABLE ACCESS FULL| MY_OBJECTS | 70000 | 2597K| 120 (1)| 00:00:02 |
----------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("T"."NUM"=60000 AND "T"."NUM">=59991)

Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
423 consistent gets
0 physical reads
0 redo size
1030 bytes sent via SQL*Net to client
419 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
10 rows processed

可以非常醒目的看到這個(gè)查詢先發(fā)生了70000行的全表掃描,并非預(yù)想的60000行,原因還是rownum,在子查詢中使用rownum直接禁用了查詢轉(zhuǎn)換階段的謂語(yǔ)前推功能,所以上面的查詢只能先獲得所有的數(shù)據(jù)再應(yīng)用between來(lái)過(guò)濾了。可以參考我的這篇【CBO-查詢轉(zhuǎn)換探究】。

說(shuō)了這么多,其實(shí)也就是Oracle的分頁(yè)的三條SQL語(yǔ)句,對(duì)于數(shù)據(jù)量非常大的分頁(yè)問題,單純這樣做是不會(huì)獲得高效的,因此還需要借助于一些其他技術(shù),比如反范式化設(shè)計(jì),預(yù)先計(jì)算或者在應(yīng)用層建立適當(dāng)?shù)木彺鏅C(jī)制。

您可能感興趣的文章:
  • oracle 使用rownum的三種分頁(yè)方式
  • mysql類似oracle rownum寫法實(shí)例詳解
  • oracle中利用關(guān)鍵字rownum查詢前20名員工信息及rownum用法
  • Oracle數(shù)據(jù)庫(kù)rownum和row_number的不同點(diǎn)
  • oracle中rownum和row_number()
  • Oracle查詢語(yǔ)句中rownum與rowid的不同之處分析
  • 隨機(jī)獲取oracle數(shù)據(jù)庫(kù)中的任意一行數(shù)據(jù)(rownum)示例介紹
  • oracle的rownum深入解析
  • ORACLE數(shù)據(jù)庫(kù)中Rownum用法詳解

標(biāo)簽:大興安嶺 來(lái)賓 贛州 玉樹 蘇州 長(zhǎng)沙 棗莊 遼寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle中使用Rownum分頁(yè)詳細(xì)例子》,本文關(guān)鍵詞  Oracle,中,使用,Rownum,分頁(yè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle中使用Rownum分頁(yè)詳細(xì)例子》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Oracle中使用Rownum分頁(yè)詳細(xì)例子的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩国产欧美精品在线 | 国产高潮国产高潮久久久91| 精品人妻伦一区二区三区久久| 色婷婷综合久久久中文字幕| 久久99久久99精品免观看粉嫩 | 欧美美女黄视频| 91精品国产免费久久综合| 亚洲石原莉奈一区二区在线观看| 国产精品伦子伦免费视频| 色综合久久久888| 欧美一级大片视频| www.久久av| 国产污污视频在线观看| 天堂久久久久va久久久久| 午夜精品久久久久久久第一页按摩 | 精品一区在线播放| 天堂久久久久久| 人人超碰91尤物精品国产| 欧美卡1卡2卡| 精品国产污污免费网站入口| 亚洲欧美激情另类校园| 热久久免费视频精品| 奇米4444一区二区三区| 国产日韩在线播放| 成年人黄色片视频| 欧美 日韩 国产 成人 在线| 久久嫩草精品久久久久| 欧美性大战久久久久久久蜜臀| 亚洲国产一区二区三区四区| 色偷偷88888欧美精品久久久| 99电影网电视剧在线观看| www.玖玖玖| 久久免费少妇高潮99精品| 日韩一级免费视频| 狠狠色丁香久久婷婷综合_中| 国产亲近乱来精品视频| 亚洲国产成人va在线观看天堂| 亚洲国产成人av| 欧美日韩不卡合集视频| 国产女人18毛片水真多18| 国产av一区二区三区| 久久久不卡网国产精品二区| 精品国产乱码久久久久久天美| 欧洲一区二区三区免费视频| 久久久久日韩精品久久久男男| 亚洲最大av在线| 国产一区 在线播放| 日日噜噜夜夜狠狠视频欧美人| 精品国产在天天线2019| 91在线免费看网站| 青春草国产视频| 成人免费黄色av| 国产一级片免费视频| 不卡的电视剧免费网站有什么| 久久av老司机精品网站导航| 亚洲成av人影院| 日韩中文视频免费在线观看| 自拍另类欧美| 国产v在线观看| 欧美日韩精品中文字幕| 成人国产精品久久久| 小早川怜子一区二区三区| 久久久久久久久久久久91| 一区二区精品视频在线观看| 欧美日韩一区二区免费在线观看| 精品91一区二区三区| 天天射,天天干| 深夜福利亚洲导航| 欧美在线观看一区| 国产欧美久久久久久| 日本一极黄色片| 一区不卡在线观看| 欧美午夜无遮挡| 亚洲精品国产精品国自产观看浪潮| 国产91成人在在线播放| 午夜精品久久久久99蜜桃最新版| 国产99久久久国产精品免费看| 亚洲精品资源在线| 久久综合久久网| 久久亚洲AV成人无码国产野外| 天天色天天操天天射| 日韩一区二区高清| 最新av免费在线观看| 国产欧美日本一区视频| 亚洲成人在线视频网站| 日韩精品电影在线观看| 日韩欧美一级特黄在线播放| 波多野结衣久草一区| 亚洲精品天堂网| 成人高清av在线| 亚洲人高潮女人毛茸茸| 国产suv精品一区二区| 黑森林福利视频导航| 国产精品伦理一区二区| 91精品国产高清久久久久久91裸体 | 亚洲香蕉伊在人在线观| 国产小视频91| 玖玖爱在线观看| 亚洲一区在线观看免费| www.xxx麻豆| 久久综合五月| 欧美酷刑日本凌虐凌虐| 国产日韩亚洲欧美| 亚洲av无码一区二区三区人 | 国产欧美精品一二三| 美女100%露胸无遮挡| 国产福利91精品一区二区三区| 国产三区精品| 久久久久久久欧美精品| 日韩精品一区二区三区三区免费| 欧美一级特黄aaaaaa在线看片| 91在线精品入口| 国产精品自产自拍| 亚洲最大福利网站| 国产精品高清无码| 欧洲s码亚洲m码精品一区| www.精品视频| 精品综合在线| 国产99久久久国产精品免费看| 五月天色婷婷综合| 国产精品一区不卡| 日本精品久久电影| 国产ts丝袜人妖系列视频| 国产欧美日韩视频一区二区| 亚洲综合精品伊人久久| 五月婷婷开心网| 久久久久久久综合| 欧美亚洲伦理www| 在线观看国产精品视频| 日韩av电影手机在线观看| 日本性高潮视频| 欧美视频一区在线| xxx中文字幕| 91资源在线视频| 夜夜嗨av色综合久久久综合网 | 国产在线无码精品| 亚洲另类色综合网站| 蜜桃精品成人影片| 日韩av综合网| a在线视频播放观看免费观看| 亚洲精品一区二区精华| 三级黄色片免费看| 91麻豆蜜桃一区二区三区| 国内视频一区| 日日夜夜精品免费视频| 2018中文字幕一区二区三区| a在线观看免费视频| 狠狠久久亚洲欧美| 亚洲国产欧美不卡在线观看| 久久久久久日产精品| 国产噜噜噜噜久久久久久久久| 免费在线观看黄网站| 日韩有码在线视频| 蜜桃av久久久亚洲精品| 国产美女精品人人做人人爽| 一区二区精品在线| 国产精品一级在线| 久久久久久中文字幕| 亚洲一级视频在线观看| 97精品一区二区视频在线观看| 黄色一级片免费播放| 在线视频你懂得一区二区三区| 久久精品国产亚洲AV无码男同| 成人情趣片在线观看免费| 日本一区二区三级电影在线观看 | 中文字幕99| 成人毛片视频免费看| 欧美做爰性生交视频| 久久免费在线观看视频| 精品国产一区二区三区久久狼黑人 | 日韩亚洲欧美中文三级| 日韩成人毛片视频| 在线播放中文字幕一区| 国产1区2区在线观看| 中国日韩欧美久久久久久久久| 亚洲欧美激情网| 国产精品美女久久久久久久久| 欧美另类videosbestsex日本| 亚洲免费观看高清完整版在线| 尤物在线免费视频| 国产一区二区免费电影| 高跟丝袜一区二区三区| 黄色片视频网站| 国产免费一区二区三区| 亚洲乱码一区二区三区在线观看| 欧美成人高潮一二区在线看| 91一区二区三区在线观看| 两根大肉大捧一进一出好爽视频| 久久精品一区蜜桃臀影院| 精品www久久久久奶水| 国精产品一区一区三区mba桃花| www.成人av.com| 极品尤物av久久免费看| 无码人妻一区二区三区一| 亚洲欧美另类人妖| 日韩和一区二区| 欧美制服第一页| 久久精品123| 国产亚洲美女精品久久久| 国产精品久久久国产盗摄| 国产精品久在线观看| 日本一区二区三区视频视频| 欧美激情图片小说| 污视频在线免费观看一区二区三区| 欧美大片拔萝卜| 久久婷婷激情| 中国特级黄色大片| 亚洲网站视频福利| 一本色道久久综合无码人妻| 国产在线精品播放| 丁香亚洲综合激情啪啪综合| 国产三级三级三级看三级| 91精品婷婷国产综合久久| 久久午夜精品视频| 日韩欧美国产一二三区| 九九热在线免费观看| 亚洲一卡二卡三卡| 亚洲第一网中文字幕| 久久久综合久久久| 国产精品天天狠天天看| 久久一区二区三区国产精品| 成人羞羞视频免费| 成人久久视频在线观看| 97公开免费视频| 一区国产精品视频| 国产精品国产三级国产a| 久久精品视频久久| 乱妇乱女熟妇熟女网站| 久久久久久久久久亚洲| 国产精品麻豆一区二区| 久久久免费高清视频| 欧美激情www| 一区二区三区中文免费| aaaaaav| 日韩av色综合| 成年人午夜久久久| 成人免费无遮挡无码黄漫视频| 精品国产乱码久久久久久图片| 天天综合网入口| 国产欧美一区二区三区视频| 一区二区三区 在线观看视频| 久久久免费高清视频| 色乱码一区二区三区熟女| 色综合一个色综合| 亚洲性猛交富婆| 9色porny| 久久久久久久综合日本| 熟妇人妻久久中文字幕| 午夜精品久久久久久久99热| 久久久久国产精品麻豆| b站大片免费直播| 成人美女免费网站视频| 中文在线资源观看网站视频免费不卡 | 亚洲欧美另类综合偷拍| 日本视频在线免费| 日本欧美一级片| 久久一区国产| av观看免费在线| 午夜精品蜜臀一区二区三区免费| 亚洲高清三级视频| 三级视频在线看| 亚洲色图38p| 日本一区二区三区四区视频| 色婷婷激情一区二区三区| 无码av免费精品一区二区三区| 国产成人精品综合| 亚洲国产精品一区二区尤物区| 亚洲自拍一区在线观看| 免费不卡av网站| www.69av| 国产精品日韩欧美一区二区三区 | 国产成人精品无码片区在线| 蜜臀精品一区二区| 国产精品免费网站| 91久久线看在观草草青青| 免费看精品久久片| 天天操,天天操| 3d动漫精品啪啪1区2区免费| 奇米一区二区三区| 999精彩视频| 国产脚交av在线一区二区| 久久久久久久久久电影| 少妇按摩一区二区三区| 国产精品对白刺激| 日韩一级片在线播放| 亚洲444eee在线观看| 精品一区二区久久| 国产精品一二三区在线观看| 国产精品一区在线播放| 亚洲欧美综合另类中字| 热久久国产精品| 欧美一级特黄aaaaaa在线看片| 久久综合免费视频影院| 亚洲国产精品久久久久秋霞影院| 蜜桃久久av| 国产美女永久免费| 日韩精品一区二区在线播放| 少妇特黄一区二区三区| 日韩av影视大全| 日韩精品在线视频免费观看| 亚洲精选一区二区| 欧美日韩午夜影院| 国产精品影视天天线| 国产精彩视频在线观看| 黄色免费高清视频| 国产做受高潮69| 欧美日韩亚洲成人| 蜜桃久久av| 久久艹精品视频| 一区在线电影| 日韩精品免费综合视频在线播放| 成人深夜福利app| 精品国产乱子伦| 福利一区二区三区四区| 国产黄色录像视频| cao在线观看| 日韩av电影手机在线观看| 日韩欧美色电影| 亚洲婷婷在线视频| 亚洲中文字幕一区二区| 婷婷视频在线播放| 欧美精品在线免费| 欧美亚洲高清一区| 99re在线精品| 日本不卡一二三区黄网| 中文字幕在线播放不卡| 欧美成人一二三区| 密臀av一区二区三区| 热草久综合在线| 夜夜揉揉日日人人青青一国产精品| 日本不卡一区二区三区高清视频| 2018中文字幕第一页| 亚洲已满18点击进入在线看片| 日韩午夜在线观看视频| 国产高清不卡一区| 久久国产精品波多野结衣av| 中文字幕第80页| 黄色一级在线视频| 青春草国产视频| 亚欧洲精品在线视频免费观看| 亚洲欧美一区二区激情| 欧美性猛交xxxx免费看| 91丨九色丨蝌蚪丨老版| 国产综合成人久久大片91| 私库av在线播放| ijzzijzzij亚洲大全| 国产伦精品一区二区三区视频免费| 中文字幕综合在线| 91影院在线免费观看| 国产三级欧美三级日产三级99| 国产精品网站在线播放| 中文字幕不卡在线| 国产精品午夜久久| 精品免费在线视频| 色综合久久99| 色婷婷一区二区| 午夜精品福利一区二区蜜股av | 久久午夜精品视频| 一区二区三区入口| 国产美女主播在线| 国产精品视频一二三四区| 成人三级在线| 日本韩国欧美精品大片卡二| 精品视频9999| 在线综合亚洲欧美在线视频| 一区二区三区欧美视频| 美美哒免费高清在线观看视频一区二区 | 国产精品久久久久久久久搜平片| 亚洲免费av高清| 久久亚洲欧美国产精品乐播 | av av在线| 日韩精品人妻中文字幕有码| 精品久久免费观看| 国产精品成人观看视频国产奇米| 亚洲午夜av久久乱码| 亚洲国产精品久久久久| 91麻豆精品国产自产在线观看一区 | 成人片黄网站色大片免费毛片| 国产在线观看欧美| 亚洲成人自拍视频| 国产精品免费一区二区三区观看| 久久这里只有精品99| 久久久久国产精品一区| 亚洲欧美一区二区三区在线| 欧美性受xxxx黑人xyx性爽| 97精品久久久午夜一区二区三区| 成人av电影在线网| 久久综合资源网| 亚洲精品乱码久久久久久久久| 欧美日韩亚洲网| 欧美视频一区二区| 日韩精品一区二区三区视频| 日韩三级av在线播放| 日韩精品在线观看视频| 精品国产第一区二区三区观看体验 | 国产精品高清一区二区三区| 国产综合 伊人色| avove在线观看| 欧美视频第一区| 亚洲久久久久久| 久久久久亚洲天堂| 欧美性受xxx黑人xyx性爽| 欧美成人三级在线观看| 国产无套内射又大又猛又粗又爽| 伊人在线视频观看| 国产精品成人免费观看| 波多野结衣亚洲色图| 91黑人精品一区二区三区| 国内精品久久久久久久久久| 亚洲 美腿 欧美 偷拍|