成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > postgreSQL 非count方法算記錄數(shù)操作

postgreSQL 非count方法算記錄數(shù)操作

熱門標(biāo)簽:合肥公司外呼系統(tǒng)運營商 打電話智能電銷機器人授權(quán) 地圖標(biāo)注和圖片名稱的區(qū)別 漯河外呼電話系統(tǒng) 美容工作室地圖標(biāo)注 重慶自動外呼系統(tǒng)定制 辦公外呼電話系統(tǒng) 海豐有多少商家沒有地圖標(biāo)注 外呼調(diào)研系統(tǒng)

一般方法

select count(1) from table_name;

全量掃描一遍表,記錄越多,查詢速度越慢

新法

PostgreSQL 還真提供了一個這樣的途徑,那就是系統(tǒng)表 pg_class,這個系統(tǒng)表里頭,存儲著每個表的統(tǒng)計信息,其中 reltuples 就是對應(yīng)的表的統(tǒng)計行,統(tǒng)計行的數(shù)據(jù)是pg有個獨立進程,定期掃描不同的表,收集這些表的統(tǒng)計信息,保存在系統(tǒng)表里頭。

方法如下:

select 
 reltuples::int as total 
from 
 pg_class 
where 
 relname = 'table_name' 
 and relnamespace = (select oid from pg_namespace where nspname = 'schema');

新方法不是通用的,如果要求特精確還是使用select count(1),如果是類似分頁的,且分頁數(shù)量超過比較多的,也不是要求特別精準(zhǔn)的,這就是一個好方法!

count(1) over 計算記錄數(shù)

select count(1) over(), * from table_name;

補充

count 是最常用的聚集函數(shù)之一,看似簡單,其實還是有坑的,如:

1、count(*):返回結(jié)果集的行數(shù),是null也統(tǒng)計

2、count(1):和count(*)基本沒區(qū)別,pg92之前都是掃描全表的,pg92之后增加了index only scan一般會變成掃主鍵索引,如果沒有主鍵或者是表的列很多的情況下,count(1)快一些,因為不會考慮表的全部字段

3、count(field):返回數(shù)據(jù)表中指定字段值不等于null的行數(shù)

拓展:理解 PostgreSQL 的 count 函數(shù)的行為

關(guān)于 count 函數(shù)的使用一直存在爭議,尤其是在 MySQL 中,作為流行度越來越高的 PostgreSQL 是否也有類似的問題呢,我們通過實踐來理解一下 PostgreSQL 中 count 函數(shù)的行為。

構(gòu)建測試數(shù)據(jù)庫

創(chuàng)建測試數(shù)據(jù)庫,并創(chuàng)建測試表。測試表中有自增 ID、創(chuàng)建時間、內(nèi)容三個字段,自增 ID 字段是主鍵。

create database performance_test;

create table test_tbl (id serial primary key, created_at timestamp, content varchar(512));

生成測試數(shù)據(jù)

使用 generate_series 函數(shù)生成自增 ID,使用 now() 函數(shù)生成 created_at 列,對于 content 列,使用了 repeat(md5(random()::text), 10) 生成 10 個 32 位長度的 md5 字符串。使用下列語句,插入 1000w 條記錄用于測試。

performance_test=# insert into test_tbl select generate_series(1,10000000),now(),repeat(md5(random()::text),10); INSERT 0 10000000 Time: 212184.223 ms (03:32.184)

由 count 語句引發(fā)的思考

默認(rèn)情況下 PostgreSQL 不開啟 SQL 執(zhí)行時間的顯示,所以需要手動開啟一下,方便后面的測試對比。

\timing on

count(*) 和 count(1) 的性能區(qū)別是經(jīng)常被討論的問題,分別使用 count(*) 和 count(1) 執(zhí)行一次查詢。

performance_test=# select count(*) from test_tbl;
 count
----------
 10000000
(1 row)
 
Time: 115090.380 ms (01:55.090)
 
performance_test=# select count(1) from test_tbl;
 count
----------
 10000000
(1 row)
 
Time: 738.502 ms

可以看到兩次查詢的速度差別非常大,count(1) 真的有這么大的性能提升?接下來再次運行查詢語句。

performance_test=# select count(*) from test_tbl;
 count
----------
 10000000
(1 row)
 
Time: 657.831 ms
 
performance_test=# select count(1) from test_tbl;
 count
----------
 10000000
(1 row)
 
Time: 682.157 ms

可以看到第一次查詢時候會非常的慢,后面三次速度非??觳⑶視r間相近,這里就有兩個問題出現(xiàn)了:

為什么第一次查詢速度這么慢?

count(*) 和 count(1) 到底存不存在性能差別?

查詢緩存

使用 explain 語句重新執(zhí)行查詢語句

explain (analyze,buffers,verbose) select count(*) from test_tbl;

可以看到如下輸出:

Finalize Aggregate (cost=529273.69..529273.70 rows=1 width=8) (actual time=882.569..882.570 rows=1 loops=1)
  Output: count(*)
  Buffers: shared hit=96 read=476095
  -> Gather (cost=529273.48..529273.69 rows=2 width=8) (actual time=882.492..884.170 rows=3 loops=1)
     Output: (PARTIAL count(*))
     Workers Planned: 2
     Workers Launched: 2
     Buffers: shared hit=96 read=476095
     -> Partial Aggregate (cost=528273.48..528273.49 rows=1 width=8) (actual time=881.014..881.014 rows=1 loops=3)
        Output: PARTIAL count(*)
        Buffers: shared hit=96 read=476095
        Worker 0: actual time=880.319..880.319 rows=1 loops=1
         Buffers: shared hit=34 read=158206
        Worker 1: actual time=880.369..880.369 rows=1 loops=1
         Buffers: shared hit=29 read=156424
        -> Parallel Seq Scan on public.test_tbl (cost=0.00..517856.98 rows=4166598 width=0) (actual time=0.029..662.165 rows=3333333 loops=3)
           Buffers: shared hit=96 read=476095
           Worker 0: actual time=0.026..661.807 rows=3323029 loops=1
            Buffers: shared hit=34 read=158206
           Worker 1: actual time=0.030..660.197 rows=3285513 loops=1
            Buffers: shared hit=29 read=156424
 Planning time: 0.043 ms
 Execution time: 884.207 ms

注意里面的 shared hit,表示命中了內(nèi)存中緩存的數(shù)據(jù),這就可以解釋為什么后面的查詢會比第一次快很多。接下來去掉緩存,并重啟 PostgreSQL。

service postgresql stop
echo 1 > /proc/sys/vm/drop_caches
service postgresql start

重新執(zhí)行 SQL 語句,速度慢了很多。

 Finalize Aggregate (cost=529273.69..529273.70 rows=1 width=8) (actual time=50604.564..50604.564 rows=1 loops=1)
  Output: count(*)
  Buffers: shared read=476191
  -> Gather (cost=529273.48..529273.69 rows=2 width=8) (actual time=50604.508..50606.141 rows=3 loops=1)
     Output: (PARTIAL count(*))
     Workers Planned: 2
     Workers Launched: 2
     Buffers: shared read=476191
     -> Partial Aggregate (cost=528273.48..528273.49 rows=1 width=8) (actual time=50591.550..50591.551 rows=1 loops=3)
        Output: PARTIAL count(*)
        Buffers: shared read=476191
        Worker 0: actual time=50585.182..50585.182 rows=1 loops=1
         Buffers: shared read=158122
        Worker 1: actual time=50585.181..50585.181 rows=1 loops=1
         Buffers: shared read=161123
        -> Parallel Seq Scan on public.test_tbl (cost=0.00..517856.98 rows=4166598 width=0) (actual time=92.491..50369.691 rows=3333333 loops=3)
           Buffers: shared read=476191
           Worker 0: actual time=122.170..50362.271 rows=3320562 loops=1
            Buffers: shared read=158122
           Worker 1: actual time=14.020..50359.733 rows=3383583 loops=1
            Buffers: shared read=161123
 Planning time: 11.537 ms
 Execution time: 50606.215 ms

shared read 表示沒有命中緩存,通過這個現(xiàn)象可以推斷出,上一小節(jié)的四次查詢中,第一次查詢沒有命中緩存,剩下三次查詢都命中了緩存。

count(1) 和 count(*) 的區(qū)別

接下來探究 count(1) 和 count(*) 的區(qū)別是什么,繼續(xù)思考最開始的四次查詢,第一次查詢使用了 count(*),第二次查詢使用了 count(1) ,卻依然命中了緩存,不正是說明 count(1) 和 count(*) 是一樣的嗎?

事實上,PostgreSQL 官方對于 is there a difference performance-wise between select count(1) and select count(*)? 問題的回復(fù)也證實了這一點:

Nope. In fact, the latter is converted to the former during parsing.[2]

既然 count(1) 在性能上沒有比 count(*) 更好,那么使用 count(*) 就是更好的選擇。

sequence scan 和 index scan

接下來測試一下,在不同數(shù)據(jù)量大小的情況下 count(*) 的速度,將查詢語句寫在 count.sql 文件中,使用 pgbench 進行測試。

pgbench -c 5 -t 20 performance_test -r -f count.sql

分別測試 200w - 1000w 數(shù)據(jù)量下的 count 語句耗時

數(shù)據(jù)大小 count耗時(ms)
200w 738.758
300w 1035.846
400w 1426.183
500w 1799.866
600w 2117.247
700w 2514.691
800w 2526.441
900w 2568.240
1000w 2650.434

繪制成耗時曲線

曲線的趨勢在 600w - 700w 數(shù)據(jù)量之間出現(xiàn)了轉(zhuǎn)折,200w - 600w 是線性增長,600w 之后 count 的耗時就基本相同了。使用 explain 語句分別查看 600w 和 700w 數(shù)據(jù)時的 count 語句執(zhí)行。

700w:

Finalize Aggregate (cost=502185.93..502185.94 rows=1 width=8) (actual time=894.361..894.361 rows=1 loops=1)
  Output: count(*)
  Buffers: shared hit=16344 read=352463
  -> Gather (cost=502185.72..502185.93 rows=2 width=8) (actual time=894.232..899.763 rows=3 loops=1)
     Output: (PARTIAL count(*))
     Workers Planned: 2
     Workers Launched: 2
     Buffers: shared hit=16344 read=352463
     -> Partial Aggregate (cost=501185.72..501185.73 rows=1 width=8) (actual time=889.371..889.371 rows=1 loops=3)
        Output: PARTIAL count(*)
        Buffers: shared hit=16344 read=352463
        Worker 0: actual time=887.112..887.112 rows=1 loops=1
         Buffers: shared hit=5459 read=118070
        Worker 1: actual time=887.120..887.120 rows=1 loops=1
         Buffers: shared hit=5601 read=117051
        -> Parallel Index Only Scan using test_tbl_pkey on public.test_tbl (cost=0.43..493863.32 rows=2928960 width=0) (actual time=0.112..736.376 rows=2333333 loops=3)
           Index Cond: (test_tbl.id  7000000)
           Heap Fetches: 2328492
           Buffers: shared hit=16344 read=352463
           Worker 0: actual time=0.107..737.180 rows=2344479 loops=1
            Buffers: shared hit=5459 read=118070
           Worker 1: actual time=0.133..737.960 rows=2327028 loops=1
            Buffers: shared hit=5601 read=117051
 Planning time: 0.165 ms
 Execution time: 899.857 ms

600w:

Finalize Aggregate (cost=429990.94..429990.95 rows=1 width=8) (actual time=765.575..765.575 rows=1 loops=1)
  Output: count(*)
  Buffers: shared hit=13999 read=302112
  -> Gather (cost=429990.72..429990.93 rows=2 width=8) (actual time=765.557..770.889 rows=3 loops=1)
     Output: (PARTIAL count(*))
     Workers Planned: 2
     Workers Launched: 2
     Buffers: shared hit=13999 read=302112
     -> Partial Aggregate (cost=428990.72..428990.73 rows=1 width=8) (actual time=763.821..763.821 rows=1 loops=3)
        Output: PARTIAL count(*)
        Buffers: shared hit=13999 read=302112
        Worker 0: actual time=762.742..762.742 rows=1 loops=1
         Buffers: shared hit=4638 read=98875
        Worker 1: actual time=763.308..763.308 rows=1 loops=1
         Buffers: shared hit=4696 read=101570
        -> Parallel Index Only Scan using test_tbl_pkey on public.test_tbl (cost=0.43..422723.16 rows=2507026 width=0) (actual time=0.053..632.199 rows=2000000 loops=3)
           Index Cond: (test_tbl.id  6000000)
           Heap Fetches: 2018490
           Buffers: shared hit=13999 read=302112
           Worker 0: actual time=0.059..633.156 rows=1964483 loops=1
            Buffers: shared hit=4638 read=98875
           Worker 1: actual time=0.038..634.271 rows=2017026 loops=1
            Buffers: shared hit=4696 read=101570
 Planning time: 0.055 ms
 Execution time: 770.921 ms

根據(jù)以上現(xiàn)象推斷,PostgreSQL 似乎在 count 的數(shù)據(jù)量小于數(shù)據(jù)表長度的某一比例時,才使用 index scan,通過查看官方 wiki 也可以看到相關(guān)描述:

It is important to realise that the planner is concerned with minimising the total cost of the query. With databases, the cost of I/O typically dominates. For that reason, "count(*) without any predicate" queries will only use an index-only scan if the index is significantly smaller than its table. This typically only happens when the table's row width is much wider than some indexes'.[3]

根據(jù) Stackoverflow 上的回答,count 語句查詢的數(shù)量大于表大小的 3/4 時候就會用使用全表掃描代替索引掃描[4]。

結(jié)論

不要用 count(1) 或 count(列名) 代替 count(*)

count 本身是非常耗時的

count 可能是 index scan 也可能是 sequence scan,取決于 count 數(shù)量占表大小的比例

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 在postgresql數(shù)據(jù)庫中判斷是否是數(shù)字和日期時間格式函數(shù)操作
  • PostgreSQL 實現(xiàn)將多行合并轉(zhuǎn)為列
  • postgresql 實現(xiàn)sql多行語句合并一行
  • Postgresql自定義函數(shù)詳解
  • PostgreSQL刪除更新優(yōu)化操作
  • Postgresql排序與limit組合場景性能極限優(yōu)化詳解
  • postgresql通過索引優(yōu)化查詢速度操作
  • postgresql rank() over, dense_rank(), row_number()用法區(qū)別

標(biāo)簽:珠海 衡陽 株洲 來賓 烏海 晉城 錦州 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《postgreSQL 非count方法算記錄數(shù)操作》,本文關(guān)鍵詞  postgreSQL,非,count,方法,算,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《postgreSQL 非count方法算記錄數(shù)操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于postgreSQL 非count方法算記錄數(shù)操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    8x福利精品第一导航| 成人国产精品久久久久久亚洲| 日韩精品――中文字幕| 自拍偷拍亚洲欧美日韩| 中文字幕在线免费看| 五月天亚洲综合情| 黄色网zhan| 中日韩美女免费视频网站在线观看| 青青草手机在线视频| 国产精品久久久久久久无码| 成人在线视频观看| 精品国产乱码一区二区三| 先锋a资源在线看亚洲| 亚洲av无码一区二区三区性色| 精品视频久久久久| 色狮一区二区三区四区视频| 伊人久久国产精品| 欧美一区二不卡视频| 忘忧草在线www成人影院| 中文字幕日韩在线播放| 亚洲丝袜精品| 午夜欧美精品久久久久久久| 欧美丝袜美腿| 久久久精品日韩| 成品人视频ww入口| 国产欧美一区二区在线观看| 精产国品一区二区| 香蕉网在线播放| 日本黄色福利视频| 影音先锋男人在线| 日韩综合在线观看| 国产精品伦理| 国产黄a三级三级三级| 亚洲一区二区观看| 亚洲第一精品电影| 欧美艳星brazzers| 久久久久亚洲av无码专区桃色| 欧美在线观看视频免费| 青青草av专区| 欧美日韩一二区| 成人免费观看在线| 岛国精品视频在线播放| 国产精品99久久99久久久| 成人激情视频在线| 男人天堂亚洲二区| 亚洲精品久久久久久久蜜桃臀| 亚洲精品日韩久久久| 久久99高清| 天天天综合网| 一级特黄妇女高潮| 亚洲国产精彩中文乱码av| 欧美日韩免费一区二区| 亚洲色图另类小说| 青青草原综合久久大伊人精品优势| 免费观看日韩av| 思思久久精品视频| 国产精品久久777777| 香蕉久久99| 亚洲成人第一页| 最近中文字幕mv在线一区二区三区四区| wwwxxx免费| 日本中文字幕久久| 欧美国产视频在线观看| 国产精品.www| 国产精品三级美女白浆呻吟| 欧美性jizz18性欧美| 免费观看的成年网址| 风间由美中文字幕在线看视频国产欧美| 性欧美视频videos6一9| 芒果视频成人app| 国产精品亚洲综合久久| 欧美大片在线看| 国产综合久久久久影院| 91高清国产| av在线免费观看国产| 电影一区二区三区| 乳奴隷乳フ辱julia在线观看| 3d动漫啪啪精品一区二区免费| 欧美日韩情趣电影| 黑人巨大精品| 亚州av中文字幕在线免费观看| 日日躁夜夜躁人人揉av五月天| 狠狠激情五月综合婷婷俺| 日韩国产在线播放| 国产一区二区视频免费在线观看| 精品网站aaa| 久久久精品人妻无码专区| xvideos国产在线视频| 国产精品中文字幕在线观看| 日韩中文在线视频| 91欧洲在线视精品在亚洲| 8x8x国产| www天堂在线| 超碰在线caoporen| 欧美精品日本| 久久久久久久久久国产精品| 亚洲欧美激情在线| 国产熟妇一区二区三区四区| 一级日本不卡的影视| 美女色狠狠久久| jizz中国女人| 91 在线视频观看| 一本色道婷婷久久欧美| 成年人福利视频| 欧美国产一区二区三区| 日韩精品一区二区三区中文不卡| 高清日韩电视剧大全免费| 久久爱av电影| 素人fc2av清纯18岁| av一级在线观看| 成人久久视频在线观看| 999久久久久| 免费亚色电影在线观看| 久草在线青青草| 青青久久av北条麻妃黑人| 日本中文字幕久久| 印度美女freesex性hd| 国产日韩欧美三级| 深夜福利视频在线观看| 一区二区亚洲| 热re99久久精品国产66热| 亚洲精品一区三区三区在线观看| 欧美在线日韩精品| 一区二区三区不卡在线视频| www.91视频.com| 日韩在线观看精品| 欧美日韩视频专区在线播放| 日韩美脚连裤袜丝袜在线| 超污网站在线观看| 日韩理论电影大全| 久久久国产影院| 国产性做久久久久久| 在线国产日本| 久久久久久久久久国产精品| 被陌生人带去卫生间啪到腿软| 中文字幕先锋av影音资源网| 久草手机在线视频| 国产精品免费视频观看| 成人午夜在线观看| 97香蕉超级碰碰久久免费软件| 99福利在线观看| 国产精品沙发午睡系列| 亚洲福利一二三区| 欧美精品久久久| 国产精品免费一区二区三区观看| 欧美综合77777色婷婷| 国产99对白在线播放| 最近中文字幕在线mv视频在线| 在线视频一区二区三区四区| 91国在线视频| 香蕉网站在线观看| 女女同性女同一区二区三区91| 天天插综合网| 精品日本美女福利在线观看| 国内精品免费在线观看| 人人干人人视频| 男人用嘴添女人下身免费视频| 亚洲欧美一区二区在线观看| 久久精品在线观看视频| 日韩欧美中文字幕一区| 国产精品婷婷午夜在线观看| 日韩欧美一级特黄在线播放| 麻豆av免费在线观看| 国产精品免费久久久| 国产精品直播网红| 波多野结衣一二区| 欧洲精品一区色| 亚洲激情成人| 蜜桃极品自拍av| 蘑菇福利视频一区播放| 国产一区二区波多野结衣| 国产又粗又猛又色| 亚洲黄色小说视频| 国产精品麻豆视频| 亚洲日本一区二区三区| 国内自拍亚洲| 欧美一区二区三区人| 北条麻妃99精品青青久久| 一区二区三区在线观看网站| 91sese| 亚洲香蕉成人av网站在线观看| 黄色网页在线观看| 精品一区二区三区视频在线播放| 午夜在线视频免费| 性欧美大战久久久久久久免费观看| 国产在线欧美在线| 91av资源在线| 伊人久久大香线蕉av超碰演员| 免费a级毛片在线播放| 在线观看色网站| 亚洲男女自偷自拍图片另类| 超碰91人人草人人干| 国产91免费视频| 91国偷自产一区二区开放时间| 香蕉视频污视频| 91情侣在线视频| 91国拍精品国产粉嫩亚洲一区| 亚洲国产精品精华素| 美女任你摸久久| 亚洲国产欧美另类丝袜| 青青在线免费观看视频| 亚洲熟妇一区二区三区| 欧美一级在线观看| 二区三区四区视频| 一色道久久88加勒比一| 日韩国产欧美视频| a毛片在线看免费观看| 亚洲成人一区二区在线观看| 精品国产一区二区三区av片| 亚洲电影在线观看| 性欧美xxxx视频在线观看| 97精品国产aⅴ7777| 日韩欧美视频| 亚洲人成电影在在线观看网色| 里番在线播放| 久久国产综合视频| 亚洲色图丝袜美腿| 尤物网在线观看| 天堂久久久久久| 亚洲网站在线免费观看| 国产日本欧美视频| 欧美裸身视频免费观看| 国产精品三区www17con| 国产精品成人av性教育| 日韩人妻精品中文字幕| 91插插插插插插| 一本大道五月香蕉| 久久先锋影音av鲁色资源网| 日韩三级一区| 在线亚洲a色| 免费人成黄页在线观看忧物| 视频在线91| 国产自产视频一区二区三区| 男男gaygays亚洲| 在线观看天堂av| 日韩av资源在线播放| 欧美视频一区| av动漫在线观看| 国产精品成人国产乱一区| 电影中文字幕一区二区| 午夜免费播放观看在线视频| 热国产热中文视频二区| 在线播放免费视频| 91在线精品一区二区三区| 男人的天堂va在线| 91短视频版在线观看www免费| 亚洲人与黑人屁股眼交| 亚洲aaa精品| 国产精品无码专区| 欧美xxxxxx| 污污污污污污www网站免费| 3751色影院一区二区三区| 国精品一区二区三区| 久久蜜桃av一区精品变态类天堂| 孩娇小videos精品| 日韩一级特黄毛片| 在线观看理论片| 无码国产69精品久久久久同性| 久久99国内| 亚洲啪啪综合av一区二区三区| 蜜桃传媒一区二区亚洲| 99久久夜色精品国产亚洲| 成人两性免费视频| av免费网站观看| www.久久色.com| 天堂av免费在线观看| 九九亚洲精品| 欧美性视频网站| 26uuuu精品一区二区| 在线视频亚洲一区| 欧美大片免费| 日韩欧美二区三区| 在线观看精品国产视频| 激情一区二区| 福利精品视频在线| 色偷偷888欧美精品久久久| 中文字幕一区二区久久人妻| 91精品国产66| 日韩欧美高清一区| 日本福利视频网站| 国产成人亚洲综合无码| 97在线视频精品| 国产91精品在线观看| 精品国产在天天线2019| 国色天香一二三期区别大象| 婷婷综合激情| 国产三级精品网站| 欧洲美熟女乱又伦| 在线观看精品视频一区二区三区| 国产精品伦一区二区三区级视频频| 欧美aaa一级片| 亚洲人成网www| 日本一区二区三区免费看| 成人性生交大片免费看中文视频| 丝袜a∨在线一区二区三区不卡| 欧美一二三四在线| 亚洲美女av网站| 裸体在线国模精品偷拍| 久久av红桃一区二区禁漫| 亚洲日本成人| 岛国精品在线播放| 在线免费观看羞羞视频一区二区| 91亚洲精品久久久蜜桃网站| 色综合久久久久久久久五月| 不卡视频在线观看| 日韩亚洲欧美一区二区三区| 国偷自拍第113页| 亚洲日本国产| 国产一级片免费观看| 成人线上播放| 青娱乐91视频| 亚洲黄色毛片| 国产美女视频免费观看下载软件| 色综合久久久久久久久五月| 成人在线丰满少妇av| 国产吞精囗交久久久| 亚洲综合在线一区二区| 4hu四虎永久在线影院成人| 九九热最新视频| 色婷婷**av毛片一区| 亚洲女同性videos| 91精品999| 免费男女羞羞的视频网站中文字幕妖精视频| 日本另类视频| 91丨国产丨九色丨pron| 91tv精品福利国产在线观看| 97超碰人人干| 国产精品99一区二区|