亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > PostgreSQL > 正文

PostgreSQL教程(八):索引詳解

2020-03-12 23:53:12
字體:
供稿:網(wǎng)友
這篇文章主要介紹了PostgreSQL教程(八):索引詳解,本文講解了索引的類型、復(fù)合索引、組合多個索引、唯一索引、表達(dá)式索引、部分索引等內(nèi)容,需要的朋友可以參考下
 

一、索引的類型:

    PostgreSQL提供了多  種索引類型:B-Tree、Hash、GiST和GIN,由于它們使用了不同的算法,因此每種索引類型都有其適合的查詢類型,缺省時,CREATE INDEX命令將創(chuàng)建B-Tree索引。
    
    1. B-Tree:
 

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

    CREATE TABLE test1 (
        id integer,
        content varchar
    );
    CREATE INDEX test1_id_index ON test1 (id); 
 

    B-Tree索引主要用于等于和范圍查詢,特別是當(dāng)索引列包含操作符" <、<=、=、>=和>"作為查詢條件時,PostgreSQL的查詢規(guī)劃器都會考慮使用B-Tree索引。在使用BETWEEN、IN、IS NULL和IS NOT NULL的查詢中,PostgreSQL也可以使用B-Tree索引。然而對于基于模式匹配操作符的查詢,如LIKE、ILIKE、~和 ~*,僅當(dāng)模式存在一個常量,且該常量位于模式字符串的開頭時,如col LIKE 'foo%'或col ~ '^foo',索引才會生效,否則將會執(zhí)行全表掃描,如:col LIKE '%bar'。 
    
    2. Hash:
 
復(fù)制代碼代碼如下:

    CREATE INDEX name ON table USING hash (column);
 

    散列(Hash)索引只能處理簡單的等于比較。當(dāng)索引列使用等于操作符進(jìn)行比較時,查詢規(guī)劃器會考慮使用散列索引。
    這里需要額外說明的是,PostgreSQL散列索引的性能不比B-Tree索引強,但是散列索引的尺寸和構(gòu)造時間則更差。另外,由于散列索引操作目前沒有記錄WAL日志,因此一旦發(fā)生了數(shù)據(jù)庫崩潰,我們將不得不用REINDEX重建散列索引。
    
    3. GiST:
    GiST索引不是一種單獨的索引類型,而是一種架構(gòu),可以在該架構(gòu)上實現(xiàn)很多不同的索引策略。從而可以使GiST索引根據(jù)不同的索引策略,而使用特定的操作符類型。 
    
    4. GIN:
    GIN索引是反轉(zhuǎn)索引,它可以處理包含多個鍵的值(比如數(shù)組)。與GiST類似,GIN同樣支持用戶定義的索引策略,從而可以使GIN索引根據(jù)不同的索引策略,而使用特定的操作符類型。作為示例,PostgreSQL的標(biāo)準(zhǔn)發(fā)布中包含了用于一維數(shù)組的GIN操作符類型,如:<@、@>、=、&&等。

 

二、復(fù)合索引:

    PostgreSQL中的索引可以定義在數(shù)據(jù)表的多個字段上,如:
 

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

    CREATE TABLE test2 (
        major int,
        minor int,
        name varchar
    }
    CREATE INDEX test2_mm_idx ON test2 (major, minor);
 

    在當(dāng)前的版本中,只有B-tree、GiST和GIN支持復(fù)合索引,其中最多可以聲明32個字段。
    1. B-Tree類型的復(fù)合索引:
    在B-Tree類型的復(fù)合索引中,該索引字段的任意子集均可用于查詢條件,不過,只有當(dāng)復(fù)合索引中的第一個索引字段(最左邊)被包含其中時,才可以獲得最高效率。
    
    2. GiST類型的復(fù)合索引:
    在GiST類型的復(fù)合索引中,只有當(dāng)?shù)谝粋€索引字段被包含在查詢條件中時,才能決定該查詢會掃描多少索引數(shù)據(jù),而其他索引字段上的條件只是會限制索引返回的條目。假如第一個索引字段上的大多數(shù)數(shù)據(jù)都有相同的鍵值,那么此時應(yīng)用GiST索引就會比較低效。

 

    3. GIN類型的復(fù)合索引:
    與B-Tree和GiST索引不同的是,GIN復(fù)合索引不會受到查詢條件中使用了哪些索引字段子集的影響,無論是哪種組合,都會得到相同的效率。

    使用復(fù)合索引應(yīng)該謹(jǐn)慎。在大多數(shù)情況下,單一字段上的索引就已經(jīng)足夠了,并且還節(jié)約時間和空間。除非表的使用模式非常固定,否則超過三個字段的索引幾乎沒什么用處。

三、組合多個索引:

    PostgreSQL可以在查詢時組合多個索引(包括同一索引的多次使用),來處理單個索引掃描不能實現(xiàn)的場合。與此同時,系統(tǒng)還可以在多個索引掃描之間組成AND和OR的條件。比如,一個類似WHERE x = 42 OR x = 47 OR x = 53 OR x = 99的查詢,可以被分解成四個獨立的基于x字段索引的掃描,每個掃描使用一個查詢子句,之后再將這些掃描結(jié)果OR在一起并生成最終的結(jié)果。另外一個例子是,如果我們在x和y上分別存在獨立的索引,那么一個類似WHERE x = 5 AND y = 6的查詢,就會分別基于這兩個字段的索引進(jìn)行掃描,之后再將各自掃描的結(jié)果進(jìn)行AND操作并生成最終的結(jié)果行。

    為了組合多個索引,系統(tǒng)掃描每個需要的索引,然后在內(nèi)存里組織一個BITMAP,它將給出索引掃描出的數(shù)據(jù)在數(shù)據(jù)表中的物理位置。然后,再根據(jù)查詢的需要,把這些位圖進(jìn)行AND或者OR的操作并得出最終的BITMAP。最后,檢索數(shù)據(jù)表并返回數(shù)據(jù)行。表的數(shù)據(jù)行是按照物理順序進(jìn)行訪問的,因為這是位圖的布局,這就意味著任何原來的索引的排序都將消失。如果查詢中有ORDER BY子句,那么還將會有一個額外的排序步驟。因為這個原因,以及每個額外的索引掃描都會增加額外的時間,這樣規(guī)劃器有時候就會選擇使用簡單的索引掃描,即使有多個索引可用也會如此。    

    
四、唯一索引:

    目前,只有B-Tree索引可以被聲明為唯一索引。
 

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

    CREATE UNIQUE INDEX name ON table (column [, ...]);
 

    如果索引聲明為唯一索引,那么就不允許出現(xiàn)多個索引值相同的行。我們認(rèn)為NULL值相互間不相等。
    
五、表達(dá)式索引:

 

    表達(dá)式索引主要用于在查詢條件中存在基于某個字段的函數(shù)或表達(dá)式的結(jié)果與其他值進(jìn)行比較的情況,如:
 

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

    SELECT * FROM test1 WHERE lower(col1) = 'value';
 

    此時,如果我們僅僅是在col1字段上建立索引,那么該查詢在執(zhí)行時一定不會使用該索引,而是直接進(jìn)行全表掃描。如果該表的數(shù)據(jù)量較大,那么執(zhí)行該查詢也將會需要很長時間。解決該問題的辦法非常簡單,在test1表上建立基于col1字段的表達(dá)式索引,如:
    CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));
    如果我們把該索引聲明為UNIQUE,那么它會禁止創(chuàng)建那種col1數(shù)值只是大小寫有區(qū)別的數(shù)據(jù)行,以及col1數(shù)值完全相同的數(shù)據(jù)行。因此,在表達(dá)式上的索引可以用于強制那些無法定義為簡單唯一約束的約束?,F(xiàn)在讓我們再看一個應(yīng)用表達(dá)式索引的例子。
 
復(fù)制代碼代碼如下:

    SELECT * FROM people WHERE (first_name || ' ' || last_name) = 'John Smith';
 

    和上面的例子一樣,盡管我們可能會為first_name和last_name分別創(chuàng)建獨立索引,或者是基于這兩個字段的復(fù)合索引,在執(zhí)行該查詢語句時,這些索引均不會被使用,該查詢能夠使用的索引只有我們下面創(chuàng)建的表達(dá)式索引。
 
復(fù)制代碼代碼如下:

    CREATE INDEX people_names ON people ((first_name || ' ' || last_name));
 

    CREATE INDEX命令的語法通常要求在索引表達(dá)式周圍書寫圓括弧,就像我們在第二個例子里顯示的那樣。如果表達(dá)式只是一個函數(shù)調(diào)用,那么可以省略,就像我們在第一個例子里顯示的那樣。

 

    從索引維護(hù)的角度來看,索引表達(dá)式要相對低效一些,因為在插入數(shù)據(jù)或者更新數(shù)據(jù)的時候,都必須為該行計算表達(dá)式的結(jié)果,并將該結(jié)果直接存儲到索引里。然而在查詢時,PostgreSQL就會把它們看做WHERE idxcol = 'constant',因此搜索的速度等效于基于簡單索引的查詢。通常而言,我們只是應(yīng)該在檢索速度比插入和更新速度更重要的場景下使用表達(dá)式索引。 
    
六、部分索引:

    部分索引(partial index)是建立在一個表的子集上的索引,而該子集是由一個條件表達(dá)式定義的(叫做部分索引的謂詞)。該索引只包含表中那些滿足這個謂詞的行。
    由于不是在所有的情況下都需要更新索引,因此部分索引會提高數(shù)據(jù)插入和數(shù)據(jù)更新的效率。然而又因為部分索引比普通索引要小,因此可以更好的提高確實需要索引部分的查詢效率。見以下三個示例:
    1. 索引字段和謂詞條件字段一致:
 

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

    CREATE INDEX access_log_client_ip_ix ON access_log(client_ip)
        WHERE NOT (client_ip > inet '192.168.100.0' AND client_ip < inet '192.168.100.255');

    下面的查詢將會用到該部分索引:
 
復(fù)制代碼代碼如下:

    SELECT * FROM access_log WHERE url = '/index.html' AND client_ip = inet '212.78.10.32';
 

    下面的查詢將不會用該部分索引:
    一個不能使用這個索引的查詢可以是∶
 
復(fù)制代碼代碼如下:

    SELECT * FROM access_log WHERE client_ip = inet '192.168.100.23';

    2. 索引字段和謂詞條件字段不一致:
    PostgreSQL支持帶任意謂詞的部分索引,唯一的約束是謂詞的字段也要來自于同樣的數(shù)據(jù)表。注意,如果你希望你的查詢語句能夠用到部分索引,那么就要求該查詢語句的條件部分必須和部分索引的謂詞完全匹配。 準(zhǔn)確說,只有在PostgreSQL能夠識別出該查詢的WHERE條件在數(shù)學(xué)上涵蓋了該索引的謂詞時,這個部分索引才能被用于該查詢。
 
復(fù)制代碼代碼如下:

    CREATE INDEX orders_unbilled_index ON orders(order_nr) WHERE billed is not true;
 

    下面的查詢一定會用到該部分索引:
 
復(fù)制代碼代碼如下:

    SELECT * FROM orders WHERE billed is not true AND order_nr < 10000;
 

    那么對于如下查詢呢?
 
復(fù)制代碼代碼如下:

    SELECT * FROM orders WHERE billed is not true AND amount > 5000.00;
 

    這個查詢將不像上面那個查詢這么高效,畢竟查詢的條件語句中沒有用到索引字段,然而查詢條件"billed is not true"卻和部分索引的謂詞完全匹配,因此PostgreSQL將掃描整個索引。這樣只有在索引數(shù)據(jù)相對較少的情況下,該查詢才能更有效一些。

 

    下面的查詢將不會用到部分索引。
 

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

    SELECT * FROM orders WHERE order_nr = 3501;
 

    
    3. 數(shù)據(jù)表子集的唯一性約束:
 
復(fù)制代碼代碼如下:

    CREATE TABLE tests (
        subject text,
        target text,
        success boolean,
        ...
    );
    CREATE UNIQUE INDEX tests_success_constraint ON tests(subject, target) WHERE success;
 

    該部分索引將只會對success字段值為true的數(shù)據(jù)進(jìn)行唯一性約束。在實際的應(yīng)用中,如果成功的數(shù)據(jù)較少,而不成功的數(shù)據(jù)較多時,該實現(xiàn)方法將會非常高效。
     
七、檢查索引的使用:

 

    見以下四條建議:
    1. 總是先運行ANALYZE。
    該命令將會收集表中數(shù)值分布狀況的統(tǒng)計。在估算一個查詢返回的行數(shù)時需要這個信息,而規(guī)劃器則需要這個行數(shù)以便給每個可能的查詢規(guī)劃賦予真實的開銷值。如果缺乏任何真實的統(tǒng)計信息,那么就會使用一些缺省數(shù)值,這樣肯定是不準(zhǔn)確的。因此,如果還沒有運行ANALYZE就檢查一個索引的使用狀況,那將會是一次失敗的檢查。 
    2. 使用真實的數(shù)據(jù)做實驗。
    用測試數(shù)據(jù)填充數(shù)據(jù)表,那么該表的索引將只會基于測試數(shù)據(jù)來評估該如何使用索引,而不是對所有的數(shù)據(jù)都如此使用。比如從100000行中選1000行,規(guī)劃器可能會考慮使用索引,那么如果從100行中選1行就很難說也會使用索引了。因為100行的數(shù)據(jù)很可能是存儲在一個磁盤頁面中,然而沒有任何查詢規(guī)劃能比通過順序訪問一個磁盤頁面更加高效了。與此同時,在模擬測試數(shù)據(jù)時也要注意,如果這些數(shù)據(jù)是非常相似的數(shù)據(jù)、完全隨機的數(shù)據(jù),或按照排序順序插入的數(shù)據(jù),都會令統(tǒng)計信息偏離實際數(shù)據(jù)應(yīng)該具有的特征。    
    3. 如果索引沒有得到使用,那么在測試中強制它的使用也許會有些價值。有一些運行時參數(shù)可以關(guān)閉各種各樣的查詢規(guī)劃。
    4. 強制使用索引用法將會導(dǎo)致兩種可能:一是系統(tǒng)選擇是正確的,使用索引實際上并不合適,二是查詢計劃的開銷計算并不能反映現(xiàn)實情況。這樣你就應(yīng)該對使用和不使用索引的查詢進(jìn)行計時,這個時候EXPLAIN ANALYZE命令就很有用了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
喷白浆一区二区| 五月天激情国产综合婷婷婷| 日韩综合在线观看| 一区二区三区四区欧美日韩| 16—17女人毛片毛片| 欧美精品v国产精品v日韩精品| 日韩成人一级大片| 麻豆91免费| 超碰在线视屏| 秘密基地免费观看完整版中文| 无码人妻精品一区二区蜜桃百度| 无码精品一区二区三区在线| 99re热久久这里只有精品34| 免费日韩中文字幕| 欧美一级手机免费观看片| 国产成人亚洲精品播放器下载| 中文字幕一二三区在线观看| 中文字幕av观看| 九九热青青草| 日韩av免费在线看| 成人欧美色图| 一区二区蜜桃| 国产一区av在线| 18成人免费观看网站下载| 国产欧美精品日韩区二区麻豆天美| 中文乱码字幕午夜无线观看| 久操免费在线| 在线免费毛片| 欧美三级黄网| 免费观看特级毛片| 全部av―极品视觉盛宴亚洲| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲精品一区二三区不卡| 国产一级av毛片| 91av在线影院| 黄页网站在线看| www国产在线| 日本福利小视频| 熟女少妇在线视频播放| 亚洲夫妻av| 欧美一区二区三| 日产精品99久久久久久| 亚洲s色大片| 国产精品日韩久久久| 欧美婷婷六月丁香综合色| 免费观看30秒视频久久| 少妇视频在线| 亚洲综合精品久久| 免费观看成人在线| 狠狠入ady亚洲精品经典电影| julia中文字幕一区二区99在线| 日本欧美黄网站| 一区二区三区天堂av| 精品久久久久久亚洲国产300| 天堂在线中文网官网| 亚洲第一精品夜夜躁人人躁| 成人在线观看视频app| 久久国产精品精品国产色婷婷| 欧美日韩免费网站| 欧美日韩岛国| 天天干天天骑| 78色国产精品| 国产精品视频3p| 在线播放av更多| 成人做爰www看视频软件| 国产剧情麻豆剧果冻传媒视频免费| 亚洲永久激情精品| 先锋a资源在线看亚洲| 亚洲国产裸拍裸体视频在线观看乱了| 久久免费少妇高潮99精品| 国产乱码一区二区三区| 一不卡在线视频| 色一情一乱一乱一区91av| 99亚洲一区二区| 亚洲一区二区人妻| 亚洲精品自在在线观看| 视频一区视频二区中文字幕| 成人国产电影网| 久久只精品国产| 国产乱淫av片免费| 青青草社区视频| 成人性色生活片免费看爆迷你毛片| av网址在线免费观看| 国产天堂资源| 婷婷中文字幕在线观看| 精品一区二区三区免费观看| 日本成人三级| 麻豆系列在线观看| 国产三级精品三级观看| 在线毛片网站| 毛片在线网址播放| 制服丨自拍丨欧美丨动漫丨| 五月婷婷亚洲| 亚洲AV无码国产成人久久| 久久国产综合视频| 久久99久久久久久久久久久| 91中文字幕在线视频| 日本xxxx高清色视频| 日韩美女毛片| 曰韩少妇与小伙激情| 国产在线视频一区| 欧美美女视频| 女人丝袜激情亚洲| 午夜日本精品| 日本泡妞xxxx免费视频软件| 国产精品久久久久无码av色戒| 香蕉视频在线观看网站| 草b视频在线观看| 中文字幕有码视频| 蜜臀av性久久久久av蜜臀妖精| 国产精品美女午夜爽爽| 中文字幕视频在线免费欧美日韩综合在线看| 色综合咪咪久久网| 日韩成人在线视频观看| 日韩精品看片| 国产视频福利在线| 国产精品普通话对白| 亚洲午夜精品一区 二区 三区| 免费看国产片在线观看| 91成人免费电影| 中文字幕欧美激情一区| 国产成人久久| 极品在线视频| 国产精品无码一区二区在线| 欧美影院在线播放| 国产精品99精品| 国产精品精品视频| 很黄的网站在线观看| 麻豆一区二区三| 波多野结衣一区二区三区在线| 欧美国产乱视频| 在线不卡中文字幕播放| 亚洲国产日韩欧美在线动漫| 欧美另类69精品久久久久9999| 波多结衣在线观看| 欧美做暖暖视频| 国产美女一区| 亚洲视频一区二区三区| 在线精品播放av| 黄色三级生活片| 欧美激情视频在线免费观看 欧美视频免费一| 美女做暖暖视频免费在线观看全部网址91| 国产精品suv一区| 国产精品亚洲一区二区三区| 91美女主播在线视频| a毛片在线播放| 精品一区二区三区高清免费不卡| 欧美暴力调教| 57pao成人永久免费| 国产精品毛片高清在线完整版| 第一会所sis001亚洲| 久久精品综合一区| 伊人色综合久久天天| xxxx69·hdxxxxx| 久一视频在线观看| 成人欧美一区二区三区黑人孕妇| 亚洲欧美在线一区| av日韩在线播放| 婷婷福利视频导航| 成人h动漫精品一区二区下载| 蜜桃麻豆影像在线观看| 日韩不卡在线| 亚洲qvod图片区电影| 日韩综合精品| 国产夫妻自拍一区| 久久国产精品免费一区二区三区| 天堂网av2014| 国产乱精品一区二区三区| 综合网日日天干夜夜久久| 亚洲一区二区三区视频在线播放| 久久露脸国语精品国产91| 久久一区激情| 欧美三电影在线| 日日干天天草| 中文字幕一区二区三区免费看| 粉嫩久久99精品久久久久久夜| 欧美黄色小视频| 天天色天天射天天综合网| 奇米777在线| 欧美va亚洲va在线观看蝴蝶网| 影音先锋中文资源站| 中文字幕人妻一区二区| 天天久久人人| 欧美日韩一区不卡| 国产一区二区不卡在线| 91麻豆国产香蕉久久精品| 中文字幕在线视频一区二区三区| 久久av高潮av无码av喷吹| a级毛片免费观看在线| 91超碰国产精品| 精品国产sm最大网站| 永久免费网站在线| 亚洲va久久久噜噜噜久久| 色婷婷狠狠18禁久久| 婷婷久久国产对白刺激五月99| 女人黄色一级片| 国产精品初高中害羞小美女文| 蜜桃av在线免费观看| av资源网在线观看| 成人全视频在线观看在线播放高清| 18禁男女爽爽爽午夜网站免费| wwwwww国产| 国内精品卡一卡二卡三| 波多野结衣精品在线| av免费网站在线观看| 色婷五月综激情亚洲综合| 国产毛片一区| 久久成人在线视频| 欧美三级电影在线播放| 日本免费在线视频| 国产日韩欧美综合一区| 麻豆久久久久久| 国产性网软件大全| 欧美激情按摩在线| 中文文字幕一区二区三三| 翔田千里一区| 99re8这里有精品热视频免费| 最近免费中文字幕在线第一页| 欧美韩日一区二区三区四区| 精品熟妇无码av免费久久| 国产精品国产三级国产专区51| 久久精品视频6| 99久久夜色精品国产网站| 老司机免费视频一区二区三区| 免费久久99精品国产自| 亚洲欧美国产精品专区久久| 日本三级2019| 日韩精品电影网站| av动漫在线免费观看| 一道精品视频一区二区三区男同| 黄色一级一级片| 18被视频免费观看视频| 8x拔播拔播x8国产精品| 裸体女人亚洲精品一区| 久久av电影| 亚洲熟妇无码一区二区三区| 久久99精品久久久久婷婷| 亚洲色图另类色图| 亚洲欧美日韩一区在线| 色又黄又爽网站www久久| 成午夜精品一区二区三区软件| 99久久精品国产亚洲精品| 在线免费观看成人| 欧美亚州在线观看| 天天综合日日夜夜精品| 99久久免费精品| 婷婷五月综合缴情在线视频| 国产欧美日韩一区二区三区在线观看| 成人污网站在线观看| 韩日中文字幕第一页| 欧美影院视频| 8x8x8国产精品| 亚洲视频手机在线观看| 9191成人精品久久| 四虎影院一区二区三区| 成人三级网址| 午夜av免费在线观看| 精品国产中文字幕第一页| 裸体一区二区三区| 日本精品在线中文字幕| 看黄色录像一级片| 免费在线观看污网站| 国产精品极品美女粉嫩高清在线| 日本免费精品视频| 国模精品一区二区三区色天香| 亚洲日本一区二区三区在线不卡| 日韩欧美国产三级电影视频| 99久久精品免费看国产一区二区三区| 91免费精品国自产拍在线不卡| 操欧美女人视频| 欧美激情第二页| 伦理一区二区三区| 97久久精品人人澡人人爽缅北| 114国产精品久久免费观看| 91精品国产色综合久久ai换脸| 天天射—综合中文网| 国产极品粉嫩福利姬萌白酱| 欧美美女黄色| 亚洲美女性生活视频| 欧美精品久久久久久久小说| 黑人欧美xxxx| 国产熟女高潮视频| 你懂的在线观看网站| 青青青国内视频在线观看软件| 亚洲在线中文字幕| 国产精品久久久久久久久久辛辛| 亚洲欧洲精品一区| 国产中文字幕一区二区三区| 日日干天天干| 久久成人高清| 91超碰这里只有精品国产| 成人在线免费| 男人天堂2020| 国产丰满美女做爰| 天堂网在线.www天堂在线视频| 一本—道久久a久久精品蜜桃| 日韩欧美一区三区| 中文字幕一区二区三区乱码图片| eeuss影院www在线观看手机| 91嫩草亚洲精品| www.88av| 日韩一级中文字幕| 中文字幕乱码人妻无码久久| 国产精品每日更新在线播放网址| 亚洲人成网站在线在线观看| 欧美第一区第二区| 亚洲人成网站精品片在线观看| 欧美私模裸体表演在线观看| 亚洲三级在线| 日本福利一区二区| 欧美一区二区三区免费大片| 91美剧网在线播放| 91影院在线播放| 波多野结衣在线播放一区| 欧美精品www在线观看| 在线观看污网站| 韩国女主播成人在线| 欧美色图亚洲图片| 尤蜜粉嫩av国产一区二区三区| www在线观看播放免费视频日本| 日韩国产一区二| 男人操女人动态图| 国产一区二区黑人欧美xxxx| www.成人69.com| 在线观看免费视频高清游戏推荐| 国产成人在线播放视频| 日韩国产亚洲欧美| 久久爱www成人|