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

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

postgreSQL 非count方法算記錄數操作

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

一般方法

select count(1) from table_name;

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

新法

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

方法如下:

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),如果是類似分頁的,且分頁數量超過比較多的,也不是要求特別精準的,這就是一個好方法!

count(1) over 計算記錄數

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

補充

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

1、count(*):返回結果集的行數,是null也統計

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

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

拓展:理解 PostgreSQL 的 count 函數的行為

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

構建測試數據庫

創建測試數據庫,并創建測試表。測試表中有自增 ID、創建時間、內容三個字段,自增 ID 字段是主鍵。

create database performance_test;

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

生成測試數據

使用 generate_series 函數生成自增 ID,使用 now() 函數生成 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 語句引發的思考

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

\timing on

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

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

可以看到第一次查詢時候會非常的慢,后面三次速度非常快并且時間相近,這里就有兩個問題出現了:

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

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

查詢緩存

使用 explain 語句重新執行查詢語句

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,表示命中了內存中緩存的數據,這就可以解釋為什么后面的查詢會比第一次快很多。接下來去掉緩存,并重啟 PostgreSQL。

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

重新執行 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 表示沒有命中緩存,通過這個現象可以推斷出,上一小節的四次查詢中,第一次查詢沒有命中緩存,剩下三次查詢都命中了緩存。

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

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

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

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

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

sequence scan 和 index scan

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

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

分別測試 200w - 1000w 數據量下的 count 語句耗時

數據大小 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 數據量之間出現了轉折,200w - 600w 是線性增長,600w 之后 count 的耗時就基本相同了。使用 explain 語句分別查看 600w 和 700w 數據時的 count 語句執行。

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

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

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]

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

結論

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

count 本身是非常耗時的

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

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

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

標簽:珠海 衡陽 株洲 來賓 烏海 晉城 錦州 蚌埠

巨人網絡通訊聲明:本文標題《postgreSQL 非count方法算記錄數操作》,本文關鍵詞  postgreSQL,非,count,方法,算,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgreSQL 非count方法算記錄數操作》相關的同類信息!
  • 本頁收集關于postgreSQL 非count方法算記錄數操作的相關信息資訊供網民參考!
  • 推薦文章
    国产在线观看欧美| 精产国品一区二区| 日韩电影免费观看中文字幕| 欧美日韩高清一区二区不卡| 在线成人免费观看| 久久久久亚洲AV成人无码国产| 精品免费视频一区二区| 男人的天堂久久久| 国模吧一区二区三区| 成人免费视频国产免费观看| 欧美国产日韩一区二区| 亚洲av无码乱码国产精品久久| 国产精品青青在线观看爽香蕉| 免费在线看成人av| 色撸撸在线观看| 亚洲自拍偷拍图区| 一区二区三区四区免费| 久热99视频在线观看| 亚洲av无码一区二区乱子伦 | 91麻豆桃色免费看| 成人久久久精品乱码一区二区三区| 一二三四视频社区在线| 欧美日韩一区二区不卡| 麻豆91精品91久久久| 国产精品九九久久久久久久| 日韩国产高清在线| 性欧美.com| 一二三四社区欧美黄| 91成人在线免费视频| 97久久超碰福利国产精品…| 天堂在线视频网站| 色噜噜一区二区| 亚洲成av人影院| 影音先锋男人资源在线观看| 欧美中在线观看| 成人美女视频在线看| 亚洲视频一二区| 欧美日韩不卡合集视频| 免费观看毛片网站| 久久久成人精品一区二区三区| 日本大香伊一区二区三区| 国产在线一二区| 好看的日韩精品| 精品免费在线观看| 蜜臀视频一区二区三区| 国产美女精品视频国产| 欧美激情导航| 日韩欧美国产成人| 日韩色图在线观看| 欧美激情专区| 在线一区二区三区| 91麻豆精品在线| 先锋影音欧美| 欧美日韩精品一区二区| 秋霞毛片久久久久久久久| 精品久久久国产精品999| 欧美黄色一区二区三区| 高清视频一区| 欧美三级欧美成人高清www| 日韩乱码人妻无码中文字幕| 久久综合给合久久狠狠色| 色婷婷亚洲综合| 亚洲网站免费观看| 日韩精品在线中文字幕| 亚洲奶大毛多的老太婆| 久久丁香综合五月国产三级网站| 超碰成人在线播放| 欧美极品在线播放| 久久精品夜色噜噜亚洲a∨| 成人黄色a级片| 91丨九色丨国产| 日韩欧美一区二区三区久久| 中文字幕制服诱惑| 国产av国片精品| 日韩视频免费大全中文字幕| 不卡视频免费播放| 国产一级淫片久久久片a级| 国产精品国产精品国产专区不卡| 性做久久久久久久久| 69视频免费看| 国产精品久久..4399| 日韩中文字幕在线观看| 99视频在线精品| 乱老熟女一区二区三区| 欧美一区二区三区在线播放| 日韩欧美国产电影| 麻豆精品精品国产自在97香蕉| 亚洲精品成人无码毛片| 国产精品永久免费| 在线日韩一区二区| 亚洲 欧美 自拍偷拍| 日本成人在线免费观看| 国产免费久久av| 欧美在线视频日韩| 久热re这里精品视频在线6| 人妻体体内射精一区二区| 国产精品精品一区二区三区午夜版| 亚洲小说欧美激情另类| 99久久久国产精品无码网爆| 岛国毛片在线播放| 国产福利成人在线| 在线免费观看日韩欧美| 石原莉奈在线亚洲三区| 91中文字幕永久在线| 欧美不卡1区2区3区| 亚洲福利视频二区| 91亚洲精品一区二区乱码| 国产精品999久久久| 日本中文字幕在线视频观看| 午夜精品久久久久久久99黑人| 亚洲国产精品久久不卡毛片| 狠狠躁夜夜躁av无码中文幕| 香港三日本8a三级少妇三级99| 国产精品亚洲不卡a| 亚洲国产精品字幕| 久久久国产精品午夜一区ai换脸| 国产一级片毛片| 波多野结衣作品集| 国产精品丝袜高跟| 日韩免费观看高清完整版 | 中文日韩在线视频| 成人欧美一区二区三区白人| 国产视频一二三四区| 26uuu国产| 久久久久久国产精品免费免费| 日韩精品在线观看网站| 中文字幕不卡一区| av免费观看在线| av在线网站观看| 亚洲在线不卡| 亚洲香蕉中文网| 欧美一级午夜免费电影| 丰满放荡岳乱妇91ww| 久久婷婷综合国产| 色欲av无码一区二区人妻| 国产精品一区二区三区免费视频| 日韩欧美一区二区视频| 91亚洲精品久久久蜜桃| 中国一级特黄视频| 精品人妻一区二区三区日产| 亚洲欧洲三级| 91极品视频在线| 欧美精品自拍偷拍| 久久综合久久综合九色| 97超碰中文字幕| 欧美做受xxxxxⅹ性视频| 亚洲欧美色图视频| 久久一区免费| 欧美成人手机在线| 欧美性猛交xxxx乱大交退制版| 国产精品99久久久久久久女警 | 国产男男gay网站| 制服丝袜第二页| 欧美一级爱爱视频| 成人信息集中地欧美| 亚洲视频在线看| 色综合天天综合在线视频| 大陆成人av片| 国产xxxx在线观看| 丝袜 亚洲 另类 欧美 重口| 五月天视频在线观看| 五月天综合网| 国产欧美久久一区二区| 神马国产精品影院av| 在线国产电影不卡| 中文字幕第一区| 蜜芽一区二区三区| 一区二区视频免费| 亚洲一二三四视频| jizz18女人| 只有这里有精品| 91在线免费观看网站| 久久精品中文字幕电影| 日韩欧美成人精品| 中文字幕av在线一区二区三区| 日韩av电影天堂| 欧美激情按摩在线| 精品免费在线观看| 久久午夜电影网| 人人超碰91尤物精品国产| 无码任你躁久久久久久久| 精品一区二区三区蜜桃在线| 日韩一级免费片| 超碰10000| 含羞草久久爱69一区| 日韩免费不卡av| 日韩视频一区在线| 亚洲成人精品视频| 91黄色小视频| 一区二区视频在线| 2020国产精品| 国产一区二区在线影院| 成人午夜免费在线观看| 男人天堂av在线播放| 欧洲美女女同性互添| 精品熟女一区二区三区| 草草草在线视频| 神马午夜伦理影院| 欧美日韩一区综合| 91久久精品一区二区别| 国产精品99久久久久久人| 久久影院资源网| 亚洲欧美中文字幕| 日韩精品一区二区三区老鸭窝| 欧美日韩免费区域视频在线观看| 国产精品国产成人国产三级| 91尤物视频在线观看| 国产酒店精品激情| 蜜臀a∨国产成人精品| 国产 欧美 自拍| 国产精品系列视频| 伊人成年综合网| 国产一级免费视频| 精国产品一区二区三区a片| 伊人影院综合网| 国产精品1000部啪视频| 美女伦理水蜜桃4| 午夜影院免费观看视频| 久久黄色片网站| 亚洲五月天综合| 久久久久免费精品| 欧美牲交a欧美牲交aⅴ免费下载| 国产视频在线观看网站| 欧美 国产 精品| 国产欧美综合一区| 黄色污污在线观看| 中国一级黄色录像| 法国空姐在线观看免费| 正在播放精油久久| 免费国产成人看片在线| 一级全黄肉体裸体全过程| 亚洲一区二区三区精品视频| 亚洲成人一区二区三区| 亚洲一区二区三区免费观看| 亚洲一区在线直播| 亚洲欧美日韩国产成人综合一二三区| 色婷婷精品国产一区二区三区| 日本一区二区视频| 夜夜爽99久久国产综合精品女不卡 | 亚洲高清免费观看高清完整版在线观看 | 午夜免费激情视频| 亚洲熟女www一区二区三区| 欧美三级日本三级| 国产成人愉拍精品久久| 无码视频在线观看| 亚洲系列在线观看| 亚洲精品97久久中文字幕无码| 韩国av电影在线观看| 丝瓜av网站精品一区二区 | 5278欧美一区二区三区| 国产精品第100页| 成人激情在线播放| 91九色蝌蚪成人| 国产综合精品一区二区三区| 欧美一区二区三区在线免费观看 | 日韩三区在线观看| 亚洲第一精品福利| 亚洲色图av在线| 欧美成人免费网| 日本成熟性欧美| 国产日韩在线看| 国产综合动作在线观看| 在线视频91| 国产午夜福利视频在线观看| 国产成人美女视频| av小说在线观看| 妺妺窝人体色www婷婷| 最近中文在线观看| 五月婷婷丁香网| 国产精一区二区三区| 91麻豆国产自产在线观看| 中文字幕一区二区三区不卡| 亚洲成a人v欧美综合天堂| 欧美日韩一级片网站| 日韩精品在线私人| 久久久这里只有精品视频| 国产美女直播视频一区| 欧美日韩一区二| 99热亚洲精品| 中文字幕一区二区三区人妻在线视频| 久久久久久成人网| 亚洲 日本 欧美 中文幕| 香蕉视频黄色片| 91色porny在线视频| 亚洲成人av中文| 日韩欧美www| 欧美精品一本久久男人的天堂| 国产精品日韩久久久久| 亚洲黄色成人久久久| 三级4级全黄60分钟| 李宗瑞91在线正在播放| caoporn国产| 六月婷婷色综合| 一区在线观看视频| 欧美一区二区在线播放| 成人444kkkk在线观看| 亚洲伊人第一页| 色一情一乱一乱一区91| 中文写幕一区二区三区免费观成熟| 亚洲人与黑人屁股眼交| 国产一区二区网站| 国产成人精品三级麻豆| 亚洲猫色日本管| 欧美精品一区二区久久婷婷| 久久久午夜视频| 久久精品国产精品国产精品污| 亚洲午夜精品久久久久久人妖| 亚洲国产第一区| 国产精品久久久久久久久夜色| 日韩高清不卡一区| 国产精品国产三级国产普通话三级| 欧美日韩精品欧美日韩精品 | 亚洲人成亚洲人成在线观看图片| 5566中文字幕一区二区电影| 欧美日韩成人网| 久久久久久欧美精品色一二三四| 国产淫片av片久久久久久| 亚洲国产精品一区二区久久hs| 国产免费不卡av| 97se狠狠狠综合亚洲狠狠| 色综合久久天天| 久久精品91久久久久久再现| 99在线观看| 日韩av播放器| 久久久久黄色片| 蜜臀国产一区二区三区在线播放| 一区二区欧美国产| 亚洲视频专区在线| 97自拍视频| 国产高潮免费视频| 日韩黄色在线视频| 国产精品一区免费视频| 日本高清不卡一区| 高清在线视频日韩欧美| 椎名由奈jux491在线播放| 手机免费看av片| 亚洲天堂自拍偷拍| 欧美激情一区三区| 国产丝袜一区二区三区免费视频| 91中文字幕一区| jizz欧美性11| 天堂网一区二区| 91亚洲男人天堂| 亚洲精品wwwww| 99se婷婷在线视频观看| 91日韩精品视频| 亚洲系列在线观看| 国产精品久久看| 在线观看日韩欧美| 日本精品一区二区三区高清 久久| 无码人妻一区二区三区在线| 99久久精品免费看国产交换| 亚洲欧洲精品天堂一级 | 自拍偷拍欧美精品| 在线观看日韩av| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品久久AV无码| 欧美 日韩 综合| 午夜成人免费电影| 91禁国产网站| 噜噜噜久久亚洲精品国产品麻豆| 国产网友自拍视频| 91香蕉视频污| 亚洲男人天堂古典| 欧美日韩免费精品| 亚洲精品国产一区黑色丝袜 | 亚洲午夜精品在线| 久久躁日日躁aaaaxxxx| 国产av第一区| 国产在线视频在线观看| 97久久久精品综合88久久| 亚洲精品视频在线观看视频| 国内不卡一区二区三区| 欧美精品黑人猛交高潮| 久久资源在线| 欧美一级精品在线| 国产在线一区二区三区播放| b站大片免费直播| 国产一区二区在线视频| 精品国产一区二区国模嫣然| 国产综合精品一区二区三区| 亚洲综合欧美综合| 国产风韵犹存在线视精品| 亚洲乱码国产乱码精品精| 性欧美大战久久久久久久免费观看| 在线观看亚洲网站| 91在线视频免费91| 国产一区二区av| 成人黄色大片网站| 中文字幕一区二区在线视频| 一区av在线播放| 国产成人jvid在线播放| 手机在线观看日韩av| 日韩国产精品久久| 亚洲成色777777在线观看影院| 日韩精品另类天天更新| 九九热视频精品| 国产精品三级视频| 午夜精品久久久久久久99热| 在线看免费毛片| 久久久成人网| 欧美成人免费网站| 新呦u视频一区二区| av中文在线播放| 亚洲午夜视频在线| 91九色综合久久| 手机av在线不卡| 中日韩av电影| 欧美亚洲国产视频小说| 欧美日韩理论片|