精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL中一條查詢語句的執行全過程是怎樣的?

開發 前端 MySQL
執行計劃是我們進行sql優化的依賴。通過里面各個字段的信息我們能得到優化結論,其中有些字段的含義需要我們有一些底層基礎比如Extra列,這一列會告訴我們當前查詢是否走了索引,是否用了臨時表,如何進行排序,有什么算法進行join,這些可能需要我們去了解排序原理,聯表原理等等。這樣才能對sql的調優做到游刃有余。

mysql作為最常用的關系型數據庫,無論是在應用還是在面試中都是必須掌握的技能。

要印在腦子里面的東西

DDL:數據定義,它用來定義數據庫對象,包括庫,表,列,通過ddl我們可以創建,刪除,修改數據庫和表結構;

DML:數據操作語言,增加刪除修改數據表中的記錄;

DCL:數據控制語言,定義訪問權限和安全級別;

DQL:數據查詢語言,用它來查詢想要的記錄。

SQL執行順序:

  1. from;
  2. join
  3. on
  4. where;
  5. group by;
  6. avg,sum.... 使用聚集函數進行計算;
  7. having;
  8. select;
  9. distinct;
  10. order by;
  11. limit;

今天我們一起討論下如何查看mysql的執行計劃。

Explain是mysql中sql調優的重要工具,它可以模擬mysql優化器執行sql語句,并通過可視化說明分析出查詢語句的執行信息,有助于我們分析出sql語句的性能瓶頸。

使用示例:

explain select * from t where name='123'

在查詢sql語句前面加explain關鍵字,mysql就會在查詢的時候設置一個標記,mysql在處理的時候就不會去真正執行這條sql語句,而是返回這條語句的執行計劃。但是如果from中有子查詢,子查詢會真正的執行,并且會將結果先放入臨時表中。

1準備

我們準備幾個表先,如果下面有需要案例來說明的內容,我們就用這幾個表為例。

DROP TABLE IF EXISTS `actor`;
 CREATE TABLE `actor` (
 `id` INT ( 11 ) NOT NULL,
 `name` VARCHAR ( 45 ) DEFAULT NULL,
 `update_time` datetime DEFAULT NULL,
  PRIMARY KEY ( `id` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO `actor` ( `id`, `name`, `update_time` )
VALUES
 ( 1, 'a', NOW() ),
 ( 2, 'b', NOW() ),
 ( 3, 'c', NOW() );
 
DROP TABLE IF EXISTS `film`;
CREATE TABLE `film` (
 `id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
 `name` VARCHAR ( 10 ) DEFAULT NULL,
  PRIMARY KEY ( `id` ),
 KEY `idx_name` ( `name` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO `film` ( `id`, `name` )
VALUES
 ( 3, 'film0' ),
 ( 1, 'film1' ),
 ( 2, 'film2' );
 
DROP TABLE IF EXISTS `film_actor`;
 CREATE TABLE `film_actor` (
 `id` INT ( 11 ) NOT NULL,
 `film_id` INT ( 11 ) NOT NULL,
 `actor_id` INT ( 11 ) NOT NULL,
 `remark` VARCHAR ( 255 ) DEFAULT NULL,
 PRIMARY KEY ( `id` ),
 KEY `idx_film_actor_id` ( `film_id`, `actor_id` ) 
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

INSERTINTO `film_actor` ( `id`, `film_id`, `actor_id` )
VALUES
 ( 1, 1, 1 ),
 ( 2, 1, 2 ),
 ( 3, 2, 1 );

2Explain字段說明

執行 explain select * from actor; 可以看到結果如下

圖片圖片

通過上圖中我們看下每個字段代表的含義

id列

id列的編號是select的序列號,有幾個select就有幾個id,并且id的順序是按select出現的順序增長的。id列越大執行優先級越高,id相同則從上往下執行,id為NULL最后執行。

select_type

select_type表示對應行是簡單查詢還是復雜的查詢。這個字段有五個值,分別代表不同的含義

通過一個查詢例證來說明:

首先執行下面的語句用來關閉mysql5.7新特性對衍生表的合并優化:

set session optimizer_switch='derived_merge=off'

然后執行下面語句看執行過程的select_type列:

explain select (select 1 from actor where id=1) from (select * from film where id=1) t

圖片圖片

  • simple表示簡單查詢,查詢不包含子查詢和union
  • primary:復雜查詢中最外層的select
  • subquery:包含在select中的子查詢(不在from子句中)
  • derived:包含在from子句中的子查詢。MySQL會將結果存放在一個臨時表中,也稱為派生表
  • union:在union中的第二個和隨后的select
    關于union,我們通過下面語句來理解
explain select 1 union all select 1

圖片

table列

這一列表示explain的一行正在訪問哪個表。

當from子句中有子查詢時,table列是< derivenN > 格式,表示當前查詢依賴id=N的查詢,于是先執行id=N的查詢。

當有union時,UNION RESULT的table列的值為<union1,2>,1和2表示參與union的select行id。

type

這一列表示關聯類型或訪問類型,即MySQL決定如何查找表中的行,查找數據行記錄的大概范圍依次從最優到最差分別為:system>const>eq_ref>ref>range>index>ALL一般來說,得保證查詢達到range級別,最好達到ref

列為空是因為mysql能夠在優化階段分解查詢語句,在執行階段用不著再訪問表或索引。例如:在索引列中選取最小值,可以單獨查找索引來完成,不需要再進行回表訪問。

const:這個類型最快,當查詢通過優化器優化后可以走主鍵索引或者唯一索引(primarykey或uniquekey)的時候,這種情況只需要掃描1條數據,mysql能夠迅速定位到數據。

system:system是特殊的const類型,即當const類型查詢的表里面恰好只有一條數據的時候,這種概率很小,可以忽略,而且有時候即便是表里面只有一條數據執行計劃中看到的也是const類型,這個不用太糾結。

舉個例子看下:

explain select * from (select * from actor where id = 1) t;

圖片圖片

eq_ref:上面的兩種類型是主鍵索引或者唯一索引(primarykey或uniquekey)查詢,并且最多只有一條記錄匹配,而eq_ref類型說的是同樣是主鍵索引或者唯一索引(primarykey或uniquekey)查詢,但是返回的是多條數據,比如下面例子:聯表查詢的時候

explain select * from film_actor left join film on film_actor.film_id=film.id

圖片圖片

這是一種主鍵索引或者唯一索引來進行聯表的方式。也在const之外最好的聯接類型了,簡單的select查詢不會出現這種type

ref:相比eq_ref,不使用唯一索引,而是使用普通索引或者唯一性索引的部分前綴,索引要和某個值相比較,可能會找到多個符合條件的行。

1.簡單select查詢,name是普通索引(非唯一索引)

explain select * from film where name='film1';

圖片圖片

2.關聯表查詢,idx_film_actor_id是film_id和actor_id的聯合索引,這里使用到了film_actor的左邊前綴film_id部分

explain select film_id from film left join film_actor on film.id=film_actor.film_id

圖片圖片

range:索引范圍掃描,通常出現在in(),between,>,<,>=等操作中。使用一個索引來檢索給定范圍的行

explain select * from actor where id>1

index:全索引掃描就能拿到結果,一般是掃描某個二級索引,這種掃描不會從索引樹根節點開始快速查找,而是直接對二級索引的葉子節點遍歷和掃描,速度還是比較慢的,這種查詢一般為使用覆蓋索引,二級索引一般比較小,所以這種通常比ALL快一些。

ALL:即全表掃描,掃描你的聚簇索引的所有葉子節點。這是最慢的一種查詢類型,通常情況下這需要增加索引來進行優化了。

possible_keys列

這一列顯示查詢可能使用哪些索引來查找。explain時可能出現possible_keys有列,而key顯示NULL的情況,這種情況是因為表中數據不多,mysql認為索引對此查詢幫助不大,選擇了全表查詢。如果該列是NULL,則沒有相關的索引。

key列

這一列顯示mysql實際采用哪個索引來優化對該表的訪問。如果沒有使用索引,則該列是NULL。如果想強制mysql使用或忽視possible_keys列中的索引,在查詢中使用forceindex、ignoreindex

key_len列

這一列顯示了mysql在索引里使用的字節數,通過這個值可以算出具體使用了索引中的哪些列。

舉例來說,film_actor的聯合索引idx_film_actor_id由film_id和actor_id兩個int列組成,并且每個int是4字節。通過結果中的key_len=4可推斷出查詢使用了第一個列:film_id列來執行索引查找。

explain select * from film_actor  where film_id=2;

圖片圖片

key_len計算規則如下:

  • 字符串,char(n)和varchar(n),5.0.3以后版本中,n均代表字符數,而不是字節數,如果是utf-8,一個數字或字母占1個字節,一個漢字占3個字節。

char(n):如果存漢字長度就是3n字節

varchar(n):如果存漢字則長度是3n+2字節,加的2字節用來存儲字符串長度,因為varchar是變長字符串

  • 數值類型

tinyint:1字節

smallint:2字節

int:4字節

bigint:8字節

  • 時間類型

date:3字節

timestamp:4字節

datetime:8字節

  • 如果字段允許為NULL,需要1字節記錄是否為NULL,索引最大長度是768字節,當字符串過長時,mysql會做一個類似左前綴索引的處理,將前半部分的字符提取出來做索引。

ref列

這一列顯示了在key列記錄的索引中,表查找值所用到的列或常量,常見的有:const(常量),字段名(例:film.id)

rows列

這一列是mysql估計要讀取并檢測的行數,不一定是最終查詢所要掃描的行數,更不是結果集里的行數。

這里順便說一下rows數值是怎么得到的

MySQL在真正開始執行語句之前,并不能精確地知道滿足這個條件的記錄有多少條,而只能根據統計信息來估算記錄數。這個統計信息就是索引的“區分度”。顯然,一個索引上不同的值越多,這個索引的區分度就越好。而一個索引上不同的值的個數,我們稱之為“基數”。也就是說,這個基數越大,索引的區分度越好。那么這個基數是怎么來的呢?這個基數是通過采樣統計來的,為什么要采樣統計呢?因為把整張表取出來一行行統計,雖然可以得到精確的結果,但是代價太高了,所以只能選擇采樣,采樣統計的時候,InnoDB默認會選擇N個數據頁,統計這些頁面上的不同值,得到一個平均值,然后乘以這個索引的頁面數,就得到了這個索引的基數。然后再根據這個基數得到預估行數。

但是數據表是會持續更新的,索引統計信息也不會固定不變。所以,當變更的數據行數超過1/M的時候,會自動觸發重新做一次索引統計。在MySQL中,有兩種存儲索引統計的方式,可以通過設置參數innodb_stats_persistent的值來選擇:

設置為on的時候,表示統計信息會持久化存儲。這時,默認的N是20,M是10。

設置為off的時候,表示統計信息只存儲在內存中。這時,默認的N是8,M是16。

由于是采樣統計,所以不管N是20還是8,這個基數都是很容易不準的。

總之,基數小,區分度小,掃描行數就相對多,基數大,區分度大,掃描行數就相對少。

Extra列

這一列展示的是額外信息。常見的重要值如下:

1.Using index:使用覆蓋索引

mysql執行計劃explain結果里的key有使用索引,如果select后面查詢的字段都可以從這個索引的樹中獲取,這種情況一般可以說是用到了覆蓋索引,extra里一般就會有using index。

覆蓋索引一般針對的是輔助索引,整個查詢結果只通過輔助索引就能拿到結果,不需要通過輔助索引樹找到主鍵,再通過主鍵去主鍵索引樹里獲取其它字段值。

explain select film_id from film_actor where film_id=1;

圖片圖片

2.Using where:使用where語句來處理結果,并且查詢的列未被索引覆蓋

explain select * from actor where name='a'

圖片圖片

3.Using index condition:查詢的列不完全被索引覆蓋,where條件中是一個前導列的范圍

就是應用了索引的最左前綴原則

explain select * from film_actor where film_id>1

4.Using temporary:mysql需要創建一張臨時表來處理查詢。

出現這種情況一般是要進行優化的,首先是想到用索引來優化。

actor.name沒有索引,此時創建了張臨時表來distinct

explain select distinct name from actor;

5.Using filesort:將用外部排序而不是索引排序

數據較小時從內存排序,否則需要在磁盤完成排序。這種情況下一般也是要考慮使用索引來優化的。

1.actor.name未創建索引,會瀏覽actor整個表,保存排序關鍵字name和對應的id,然后排序name并檢索

explain select * from actor order by name;

圖片

6.Using join buffer(Block Nested Loop):join語句相關

當join語句中的被驅動表沒有索引時候會走Block Nested Loop算法,這種情況就會把驅動表的數據全部放入join buffer內存中,然后進行匹配,后面我們會詳細介紹join原理

7.Using MRR:這是一種回表優化

mysql在做查詢的時候,我們知道當應用到二級索引的時候會存在回表現象,你想一下,索引是有序的,當我們通過二級索引查到主鍵,再根據主鍵去主鍵索引樹查找數據的時候,用主鍵索引在主鍵樹查找的這個動作是隨機讀,我們知道隨機讀肯定沒有順序讀快,因此MRR算法就是解決這個問題的。這個我們后續會詳細講解。

3總結

執行計劃是我們進行sql優化的依賴。通過里面各個字段的信息我們能得到優化結論,其中有些字段的含義需要我們有一些底層基礎比如Extra列,這一列會告訴我們當前查詢是否走了索引,是否用了臨時表,如何進行排序,有什么算法進行join,這些可能需要我們去了解排序原理,聯表原理等等。這樣才能對sql的調優做到游刃有余。

責任編輯:武曉燕 來源: 碼農本農
相關推薦

2024-12-17 06:20:00

MySQLSQL語句數據庫

2023-11-01 16:50:58

2022-02-11 14:43:53

SQL語句C/S架構

2024-07-29 09:49:00

SQLMySQL執行

2021-06-07 08:37:03

SQL 查詢語句

2020-07-03 07:39:45

查詢語句

2011-04-18 15:56:10

軟件測試

2021-08-03 08:41:18

SQLMysql面試

2011-02-22 10:46:02

Samba配置

2024-07-16 08:31:41

2021-08-30 05:47:12

MySQL SQL 語句數據庫

2010-06-11 13:15:07

UML軟件

2017-04-25 18:03:11

Caffe深度學習框架

2024-09-09 08:15:20

2009-12-08 17:56:16

WCF配置

2011-09-06 15:38:20

QT安裝

2009-04-13 12:37:18

2011-01-21 17:51:52

2009-02-20 10:25:54

UML軟件設計例程

2011-08-15 09:19:22

點贊
收藏

51CTO技術棧公眾號

亚洲精品一区二区三区av| 日韩写真欧美这视频| 国产欧美 在线欧美| 国产精品日日摸夜夜爽| 国产小视频在线观看| 久久久久久久久久久妇女| 亚洲国产精品精华液网站| 国产精品久久久久免费a∨大胸| 五月天国产视频| 粉嫩av在线播放| 雨宫琴音一区二区在线| 欧美剧情片在线观看| 精选一区二区三区四区五区| 日本黄色小说视频| 巨胸喷奶水www久久久免费动漫| 国产精品996| www.日韩视频| 日本在线观看免费视频| 天堂网av2014| 激情久久综合| 日韩手机在线导航| 国产系列第一页| 国产三级理论片| 四虎5151久久欧美毛片| 无吗不卡中文字幕| 国产精品一区二区三区在线| 加勒比婷婷色综合久久| 香蕉久久一区| 亚洲国产精品成人综合| 国产精品69久久| 波多野结衣办公室33分钟| 1024在线看片你懂得| 国产很黄免费观看久久| 久久视频国产精品免费视频在线| 欧美一级特黄a| 国产九九在线| 日韩影院在线观看| 在线观看精品自拍私拍| 黄色av免费在线播放| 欧美捆绑视频| 亚洲美洲欧洲综合国产一区| 亚洲丁香婷深爱综合| 韩国无码av片在线观看网站| 精品国产18久久久久久| 欧美激情第10页| 日韩欧美三级在线| 青青草国产免费| 欧美性猛交 xxxx| 亚洲另类自拍| 亚洲国语精品自产拍在线观看| 欧美 日韩 国产 高清| 日韩精品123| 欧美亚洲一区| 中文字幕欧美日韩| www.色就是色.com| 欧美黑人猛交的在线视频| 不卡的电视剧免费网站有什么| 午夜精品一区二区三区av| 日本一卡二卡在线| 丝袜美腿一区| 国产精品久久久久aaaa| 亚洲直播在线一区| 黄色激情视频在线观看| 亚洲宅男一区| 欧美精品丝袜中出| 久久亚洲a v| 日韩av成人| 免费看精品久久片| 精品自在线视频| 强迫凌虐淫辱の牝奴在线观看| 欧美极度另类| 亚洲青青青在线视频| 国产欧美日本在线| 国产精品成人久久久| 欧美另类女人| 亚洲人av在线影院| 青娱乐国产精品视频| 玖玖在线播放| 中文字幕一区二区三区四区不卡| 97超级碰碰| 国产一区二区视频网站| 久久久久免费av| 日韩成人小视频| 免费一区二区三区在线观看 | 亚洲国产精品99| 成人午夜激情av| 超碰免费公开在线| 久久精品亚洲国产奇米99 | 成人盗摄视频| 精品视频在线看| 日韩免费一级视频| 成人午夜在线影视| 国产欧美精品一区aⅴ影院| 国产高清一区视频| 亚洲综合五月天婷婷丁香| 9国产精品视频| 久久综合色影院| 亚洲а∨天堂久久精品2021| 超碰97久久国产精品牛牛| 欧美日韩国产首页在线观看| av免费观看网| 毛片在线导航| 亚洲视频在线观看三级| 日韩欧美电影一区二区| 婷婷av一区二区三区| 国产裸体歌舞团一区二区| 国产精品久久久久久久久久三级 | 成人亚洲激情网| 无码人妻丰满熟妇区bbbbxxxx| 国产精品啊啊啊| 日韩在线视频观看正片免费网站| 日韩一级视频在线观看| 久久男人av| 精品捆绑美女sm三区| 特级西西444www| 久久免费影院| 欧洲人成人精品| 凹凸国产熟女精品视频| 男女在线视频| 亚洲午夜羞羞片| 男女激烈动态图| 国产人成网在线播放va免费| 国产精品国产自产拍高清av| 日韩精品av一区二区三区| 欧美精品久久久久久久久久丰满| 99精品国产一区二区三区不卡| 懂色一区二区三区av片| 成 人 免费 黄 色| 国产精品一二三四五| 91传媒免费看| www.成人精品| 国产aⅴ综合色| www日韩av| 欧美视频一二区| kk眼镜猥琐国模调教系列一区二区 | 日本三级中国三级99人妇网站| 日本天堂在线| 国产欧美精品日韩区二区麻豆天美| 免费在线成人av电影| 免费国产在线视频| 欧美经典一区二区| 一区二区三区欧美在线| 黄网站免费在线播放| 最新热久久免费视频| 国产卡一卡二在线| 激情在线视频播放| 疯狂蹂躏欧美一区二区精品| 99色精品视频| 黄页免费欧美| 欧美一区中文字幕| 成人免费福利在线| 人人爽人人爽人人片av| 日韩精品亚洲一区| 国产在线久久久| 国产女人爽到高潮a毛片| 狠狠狠色丁香婷婷综合久久五月| 国产精品精品一区二区三区午夜版 | 国产激情久久久久| 一级久久久久久久| 国产在线播放一区| 99精品国产一区二区| 亚洲色欧美另类| 国产日韩精品一区二区三区| 日本成人性视频| 国产第一页在线| 日本韩国视频一区二区| 亚洲天堂伊人网| 国产精品极品| 亚洲三级av在线| 亚洲一级二级片| 亚洲黄色在线| 国产精品十八以下禁看| 亚洲a视频在线观看| 国产午夜精品在线观看| 久久久久久久免费视频| 亚洲优女在线| 91精品国产综合久久精品性色| 91九色蝌蚪porny| 成人羞羞动漫| 97国产精品视频人人做人人爱| 日韩三级一区二区| 国产一区二区久久| 麻豆亚洲一区| 在线观看男女av免费网址| 欧美日韩亚洲激情| 午夜诱惑痒痒网| 亚洲人成网站77777在线观看| 久久精品成人一区二区三区| 五月婷婷亚洲综合| 国产精品伊人色| 日韩国产美国| 激情国产在线| 欧美一级日韩不卡播放免费| 中文字幕第4页| 国内激情久久| 91久久精品视频| 国产一级片在线| 亚洲动漫第一页| 欧美污在线观看| 精品一区二区三区的国产在线观看| 欧美极品欧美精品欧美视频 | 日本电影一区二区三区| 草莓视频丝瓜在线观看丝瓜18| 4438x亚洲最大成人网| 国产亚洲精品熟女国产成人| 日韩香蕉视频| 肥熟一91porny丨九色丨| 蜜芽在线免费观看| 欧美丝袜丝交足nylons| 深夜福利国产精品| 日韩一区二区a片免费观看| 亚洲清纯自拍| av免费精品一区二区三区| 日本中文字幕在线播放| 欧洲精品中文字幕| 日韩精品无码一区二区三区久久久| 国产精品mv在线观看| 亚洲va久久久噜噜噜| 调教视频免费在线观看| 色婷婷精品大视频在线蜜桃视频| 国产激情视频网站| 亚洲国产午夜| 国产私拍一区| 欧美一级鲁丝片| 日韩经典中文字幕| 日韩毛片一区二区三区| 成人黄色一级视频| 精品国产一区三区| 丝袜久久网站| 国产精品久久久久久久电影 | 99久久99久久精品免费观看| 国产不卡一区二区视频| 久久中文资源| 668精品在线视频| 粉嫩av一区二区三区免费观看| 国产最新视频在线观看| 在线区一区二视频| 国产精品一区二区亚洲| 久久精品国产一区二区三| 一区二区三区四区在线视频| 成人自拍视频网| www.日韩av.com| 免费观看的毛片| 精品久久久久久| 一级片视频免费看| 久久国产三级精品| 天天想你在线观看完整版电影免费| 精品久久亚洲| 国内精品久久久久久久久| 色播色播色播色播色播在线| 在线免费观看日本欧美| 美国一级片在线观看| 国产91在线观看丝袜| 亚洲精品无码久久久久久| 精品一区二区三区在线 | 一区二区三区日韩视频| 9l视频自拍九色9l视频成人| 98精品国产高清在线xxxx天堂| 日韩大胆人体| 99这里只有精品视频| 视频一区视频二区国产精品| 99久久免费国产精精品| 午夜电影网亚洲视频| 一区二区伦理片| 国产精品一区2区| 欧美aⅴ在线观看| 影视一区二区| 欧美久久久久久久| 男人亚洲天堂| 1769国产精品| 黄视频在线观看网站| 亚洲国产中文字幕在线观看| 中文字幕一区二区三区四区视频| 一区二区三区av电影| 久久久视频6r| 不卡av免费在线观看| 中文av一区二区三区| 日韩亚洲国产精品| 色乱码一区二区三区熟女| 九色丨蝌蚪丨成人| 成人午夜在线视频一区| 国产超碰精品| 久久久久久综合网天天| 97电影在线观看| 亚洲电影成人av99爱色| 亚洲资源在线播放| 欧美午夜久久久| 久草视频免费播放| 中文字幕中文字幕一区| 成年人在线观看av| 国产丶欧美丶日本不卡视频| 国产区二区三区| 美女国产一区| 亚洲午夜精品久久久久久人妖| 欧美久久久久| 国产免费内射又粗又爽密桃视频| 狠狠做六月爱婷婷综合aⅴ| 精品视频在线观看| 中文字幕一区日韩精品| 成人免费视频网址| 精品国产黄a∨片高清在线| 国产v综合ⅴ日韩v欧美大片| 精精国产xxxx视频在线播放| 久操成人在线视频| 怡红院在线观看| 久久999免费视频| h片在线免费| 欧美刺激性大交免费视频| 成人a在线视频免费观看| 久久视频国产精品免费视频在线| 免费成人黄色| 欧美成人四级hd版| 伊人手机在线| 欧美精品电影免费在线观看| 色黄网站在线观看| 久久久久久久久爱| 51漫画成人app入口| 性欧美在线看片a免费观看 | 91精品国产91久久久久| av有码在线观看| 久久久久久亚洲精品中文字幕 | 日韩av免费在线观看| 久久精品女人天堂av免费观看 | 日本一级在线观看| 色素色在线综合| jizz国产在线观看| 欧美日韩国产色| 黄色录像一级片| 尤物av一区二区| 永久av免费网站| 国产精品欧美久久久久一区二区 | 国产美女撒尿一区二区| 亚洲一区二区在线播放| 欧美成人家庭影院| 成人黄色免费网站在线观看| 日本久久久久| 国产欧美一区二区三区久久人妖| 91国产一区| 成人欧美一区二区三区在线| 青娱乐极品盛宴一区二区| 91成人伦理在线电影| 亚洲一区二区三区在线免费| 91在线免费看网站| 超碰精品在线| 精品一区二区三区视频日产| 女同一区二区三区| 日韩激情视频| **女人18毛片一区二区| 日本一区二区免费高清视频| 欧美在线视屏| 国产色一区二区三区| 日韩二区在线观看| 免费看涩涩视频| 国产一区久久久| 欧美做受喷浆在线观看| 国产午夜精品美女毛片视频| 貂蝉被到爽流白浆在线观看| 亚洲欧美欧美一区二区三区| 久久国产精品波多野结衣| 亚洲国产婷婷综合在线精品| 黄色污污网站在线观看| 制服丝袜亚洲播放| 亚洲精品无码久久久| 在线视频亚洲欧美| 制服丝袜在线播放| 欧美性在线视频| 国产视频一区二区在线播放| 国产精品一级久久久| 美女一区2区| 一区二区视频在线播放| 国内在线观看一区二区三区| 精品无码国产一区二区三区av| 久久亚洲风情| 伊人免费视频二| av一二三不卡影片| 成人小视频免费看| 亚洲免费伊人电影| 国产主播第一页| 日韩精品中文字幕一区二区三区 | 另类视频在线观看| 第四色日韩影片| 国产精品video| 精品成人自拍视频| 亚洲欧洲日韩精品| 中文在线一区| 亚洲欧美手机在线| 国产在线精品一区二区三区不卡| 国精产品一区一区三区免费视频| 亚洲欧洲国产日本综合| 69精品久久久| 欧美tickling网站挠脚心| 成人高清网站| 国产www精品| 久久影院资源站| 日韩video| 国产美女精品一区二区三区| 亚洲区免费视频| 亚洲综合丁香婷婷六月香| 国产又大又粗又长| 国产午夜精品一区二区三区|