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

這次終于懂了,InnoDB的七種鎖

開發 開發工具 SQL Server
MySQL是目前世界上最流行的數據庫,InnoDB是MySQL最流行的存儲引擎,它在大數據量高并發量的業務場景下,有著非常良好的性能表現,之所以如此,是和InnoDB的鎖機制相關。

MySQL是目前世界上最流行的數據庫,InnoDB是MySQL最流行的存儲引擎,它在大數據量高并發量的業務場景下,有著非常良好的性能表現,之所以如此,是和InnoDB的鎖機制相關。

總的來說,InnoDB共有七種類型的鎖:

(1)自增鎖(Auto-inc Locks);

(2)共享/排它鎖(Shared and Exclusive Locks);

(3)意向鎖(Intention Locks);(4)插入意向鎖(Insert Intention Locks);

(5)記錄鎖(Record Locks);

(6)間隙鎖(Gap Locks);

(7)臨鍵鎖(Next-key Locks);

今天和大家來逐一介紹。

文章較長,案例較多,請大家提前收藏,點贊,轉發,再看。

第一種,自增鎖(Auto-inc Locks)

【案例說明】

MySQL,InnoDB,默認的隔離級別(RR),假設有數據表:

  1. t(id AUTO_INCREMENT, name); 

數據表中有數據:

  • shenjian
  • zhangsan
  • lisi

事務A先執行,還未提交:

  1. insert into t(name) values(xxx); 

事務B后執行:

  1. insert into t(name) values(ooo); 

問:事務B會不會被阻塞?

【案例分析】

InnoDB在RR隔離級別下,嘗試解決幻讀問題,上面這個案例中:

(1)事務A先執行insert,會得到一條(4, xxx)的記錄,由于是自增列,故不用顯示指定id為4,InnoDB會自動增長,注意此時事務并未提交;

(2)事務B后執行insert,假設不會被阻塞,那會得到一條(5, ooo)的記錄;

此時,并未有什么不妥,但如果,

(3)事務A繼續insert:

  1. insert into t(name) values(xxoo); 

會得到一條(6, xxoo)的記錄。

(4)事務A再select:

  1. select * from t where id>3; 

得到的結果是:

  1. 4, xxx 
  2. 6, xxoo 

畫外音:不可能查詢到5的記錄,在RR的隔離級別下,不可能讀取到還未提交事務生成的數據。

這對于事務A來說,就很奇怪了,AUTO_INCREMENT的列,連續插入了兩條記錄,一條是4,接下來一條變成了6,就像莫名其妙的幻影。

【自增鎖】

自增鎖是一種特殊的表級別鎖(table-level lock),專門針對事務插入AUTO_INCREMENT類型的列。

最簡單的情況,如果一個事務正在往表中插入記錄,所有其他事務的插入必須等待,以便第一個事務插入的行,是連續的主鍵值。

畫外音:官網是這么說的

An AUTO-INC lock is a special table-level lock taken by transactions inserting into tables with AUTO_INCREMENT columns. In the simplest case, if one transaction is inserting values into the table, any other transactions must wait to do their own inserts into that table, so that rows inserted by the first transaction receive consecutive primary key values.

與此同時,InnoDB提供了innodb_autoinc_lock_mode配置,可以調節與改變該鎖的模式與行為。

【假如不是自增列】

上面的案例,假設不是自增列,又會是什么樣的情形呢?

  1. t(id unique PK, name); 

數據表中有數據:

  1. 10, shenjian 
  2. 20, zhangsan 
  3. 30, lisi 

事務A先執行,在10與20兩條記錄中插入了一行,還未提交:

  1. insert into t values(11, xxx); 

事務B后執行,也在10與20兩條記錄中插入了一行:

  1. insert into t values(12, ooo); 

這里,便不再使用自增鎖,那:

  • 會使用什么鎖?
  • 事務B會不會被阻塞呢?

先賣個關子,下文再解答。

第二種,共享/排它鎖(Shared and Exclusive Locks)

InnoDB并發如此高,原因竟然在這?》一文介紹了通用的共享/排它鎖,在InnoDB里當然也實現了標準的行級鎖(row-level locking),共享/排它鎖:

  • 事務拿到某一行記錄的共享S鎖,才可以讀取這一行;
  • 事務拿到某一行記錄的排它X鎖,才可以修改或者刪除這一行;

其兼容互斥表如下:

即:

  • 多個事務可以拿到一把S鎖,讀讀可以并行;
  • 而只有一個事務可以拿到X鎖,寫寫/讀寫必須互斥;

共享/排它鎖的潛在問題是,不能充分的并行,解決思路是數據多版本,具體思路在《InnoDB并發如此高,原因竟然在這?》介紹過,這里不再深入展開。

第三種,意向鎖(Intention Locks)

InnoDB支持多粒度鎖(multiple granularity locking),它允許行級鎖與表級鎖共存,實際應用中,InnoDB使用的是意向鎖。

意向鎖是指,未來的某個時刻,事務可能要加共享/排它鎖了,先提前聲明一個意向。

意向鎖有這樣一些特點:

(1)首先,意向鎖,是一個表級別的鎖(table-level locking);

(2)意向鎖分為:

  • 意向共享鎖(intention shared lock, IS),它預示著,事務有意向對表中的某些行加共享S鎖
  • 意向排它鎖(intention exclusive lock, IX),它預示著,事務有意向對表中的某些行加排它X鎖

舉個例子:

  • select ... lock in share mode,要設置IS鎖;
  • select ... for update,要設置IX鎖;

(3)意向鎖協議(intention locking protocol)并不復雜:

  • 事務要獲得某些行的S鎖,必須先獲得表的IS鎖
  • 事務要獲得某些行的X鎖,必須先獲得表的IX鎖

(4)由于意向鎖僅僅表明意向,它其實是比較弱的鎖,意向鎖之間并不相互互斥,而是可以并行,其兼容互斥表如下:

(5)額,既然意向鎖之間都相互兼容,那其意義在哪里呢?它會與共享鎖/排它鎖互斥,其兼容互斥表如下:

畫外音:排它鎖是很強的鎖,不與其他類型的鎖兼容。這也很好理解,修改和刪除某一行的時候,必須獲得強鎖,禁止這一行上的其他并發,以保障數據的一致性。

第四種,插入意向鎖(Insert Intention Locks)

對已有數據行的修改與刪除,必須加強互斥鎖X鎖,那對于數據的插入,是否還需要加這么強的鎖,來實施互斥呢?插入意向鎖,孕育而生。

插入意向鎖,是間隙鎖(Gap Locks)的一種(所以,也是實施在索引上的),它是專門針對insert操作的。

畫外音:有點尷尬,間隙鎖下文才會介紹,暫且理解為,它是一種實施在索引上,鎖定索引某個區間范圍的鎖。

它的玩法是:多個事務,在同一個索引,同一個范圍區間插入記錄時,如果插入的位置不沖突,不會阻塞彼此。

畫外音:官網的說法是

Insert Intention Lock signals the intent to insert in such a way that multiple transactions inserting into the same index gap need not wait for each other if they are not inserting at the same position within the gap.

這樣,之前挖坑的例子,就能夠解答了。 在MySQL,InnoDB,RR下:

  1. t(id unique PK, name); 

數據表中有數據:

  1. 10, shenjian 
  2. 20, zhangsan 
  3. 30, lisi 

事務A先執行,在10與20兩條記錄中插入了一行,還未提交:

  1. insert into t values(11, xxx); 

事務B后執行,也在10與20兩條記錄中插入了一行:

  1. insert into t values(12, ooo); 
  • 會使用什么鎖?
  • 事務B會不會被阻塞呢?

回答:雖然事務隔離級別是RR,雖然是同一個索引,雖然是同一個區間,但插入的記錄并不沖突,故這里:

  • 使用的是插入意向鎖;
  • 并不會阻塞事務B;

【思路小結】

  • InnoDB使用共享鎖,可以提高讀讀并發;
  • 為了保證數據強一致,InnoDB使用強互斥鎖,保證同一行記錄修改與刪除的串行性;
  • InnoDB使用插入意向鎖,可以提高插入并發;

【另一個案例】

假設不是插入并發,而是讀寫并發,又會是什么樣的結果呢?

MySQL,InnoDB,默認的隔離級別(RR)。

  1. t(id unique PK, name); 

數據表中有數據:

  1. 10, shenjian 
  2. 20, zhangsan 
  3. 30, lisi 

事務A先執行,查詢了一些記錄,還未提交:

  1. select * from t where id>10; 

事務B后執行,在10與20兩條記錄中插入了一行:

  1. insert into t values(11, xxx); 

這里:

  • 會使用什么鎖?
  • 事務B會不會被阻塞呢?

繼續賣關子,下文解答。

【繼續插入,知識鋪墊】

InnoDB的細粒度鎖,是實現在索引記錄上的,如果查詢沒有命中索引,也將退化為表鎖。

【InnoDB的索引】

InnoDB的索引有兩類索引,聚集索引(Clustered Index)與普通索引(Secondary Index)。

InnoDB的每一個表都會有聚集索引:

  • 如果表定義了PK,則PK就是聚集索引;
  • 如果表沒有定義PK,則第一個非空unique列是聚集索引;
  • 否則,InnoDB會創建一個隱藏的row-id作為聚集索引;

為了方便說明,后文都將以PK說明。

索引的結構是B+樹,這里不展開B+樹的細節,說幾個結論:

(1)在索引結構中,非葉子節點存儲key,葉子節點存儲value;

(2)聚集索引,葉子節點存儲行記錄(row);

畫外音:所以,InnoDB索引和記錄是存儲在一起的,而MyISAM的索引和記錄是分開存儲的。

(3)普通索引,葉子節點存儲了PK的值;

畫外音:所以,InnoDB的普通索引,如果未滿足索引覆蓋,實際上會掃描兩遍:

  • 第一遍,由普通索引找到PK;
  • 第二遍,由PK找到行記錄;

索引結構,InnoDB/MyISAM的索引結構,如果大家感興趣,未來撰文詳述。

舉個例子,假設有InnoDB表:

  1. t(id PK, name KEY, sex, flag); 

表中有四條記錄:

  1. 1, shenjian, m, A 
  2. 3, zhangsan, m, A 
  3. 5, lisi, m, A 
  4. 9, wangwu, f, B 

可以看到:

  • 第一幅圖,id PK的聚集索引,葉子存儲了所有的行記錄;
  • 第二幅圖,name上的普通索引,葉子存儲了PK的值;

對于:

  1. select * from t where name=’shenjian’; 
  • 會先在name普通索引上查詢到PK=1;
  • 再在聚集索引上查詢到(1,shenjian, m, A)的行記錄;

有了上面的鋪墊,下文繼續介紹InnoDB剩下三種鎖:

  • 記錄鎖(Record Locks);
  • 間隙鎖(Gap Locks);
  • 臨鍵鎖(Next-Key Locks);

為了方便講述,如無特殊說明,后文中,默認的事務隔離級別為可重復讀(Repeated Read, RR)。

第五種,記錄鎖(Record Locks)

記錄鎖,它封鎖索引記錄,例如:

  1. select * from t where id=1 for update; 

它會在id=1的索引記錄上加鎖,以阻止其他事務插入,更新,刪除id=1的這一行。

需要說明的是:

  1. select * from t where id=1

是快照讀(SnapShot Read),它并不加鎖,具體在《InnoDB并發如此高,原因竟然在這?》中做了詳細闡述。

第六種,間隙鎖(Gap Locks)

間隙鎖,它封鎖索引記錄中的間隔,或者第一條索引記錄之前的范圍,又或者最后一條索引記錄之后的范圍。

依然是上面的例子,InnoDB,RR:

  1. t(id PK, name KEY, sex, flag); 

表中有四條記錄:

  1. 1, shenjian, m, A 
  2. 3, zhangsan, m, A 
  3. 5, lisi, m, A 
  4. 9, wangwu, f, B 

這個SQL語句

  1. select * from t  
  2.     where id between 8 and 15  
  3.     for update; 

會封鎖區間,以阻止其他事務id=10的記錄插入。

畫外音:

為什么要阻止id=10的記錄插入?

如果能夠插入成功,頭一個事務執行相同的SQL語句,會發現結果集多出了一條記錄,即幻影數據。

間隙鎖的主要目的,就是為了防止其他事務在間隔中插入數據,以導致“不可重復讀”。

如果把事務的隔離級別降級為讀提交(Read Committed, RC),間隙鎖則會自動失效。

第七種,臨鍵鎖(Next-Key Locks)

臨鍵鎖,是記錄鎖與間隙鎖的組合,它的封鎖范圍,既包含索引記錄,又包含索引區間。

更具體的,臨鍵鎖會封鎖索引記錄本身,以及索引記錄之前的區間。

如果一個會話占有了索引記錄R的共享/排他鎖,其他會話不能立刻在R之前的區間插入新的索引記錄。

畫外音:原文是說

If one session has a shared or exclusive lock on record R in an index, another session cannot insert a new index record in the gap immediately before R in the index order.

依然是上面的例子,InnoDB,RR:

  1. t(id PK, name KEY, sex, flag); 

表中有四條記錄:

  1. 1, shenjian, m, A 
  2. 3, zhangsan, m, A 
  3. 5, lisi, m, A 
  4. 9, wangwu, f, B 

PK上潛在的臨鍵鎖為:

  1. (-infinity, 1] 
  2. (1, 3] 
  3. (3, 5] 
  4. (5, 9] 
  5. (9, +infinity) 

臨鍵鎖的主要目的,也是為了避免幻讀(Phantom Read)。如果把事務的隔離級別降級為RC,臨鍵鎖則也會失效。

畫外音:關于事務的隔離級別,以及幻讀,之前的文章一直沒有展開說明,如果大家感興趣,后文詳述。

【總結】

(1)自增鎖(Auto-inc Locks):表級鎖,專門針對事務插入AUTO_INC的列,如果插入位置沖突,多個事務會阻塞,以保證數據一致性;

(2)共享/排它鎖(Shared and Exclusive Locks):行級鎖,S鎖與X鎖,強鎖;

(3)意向鎖(Intention Locks):表級鎖,IS鎖與IX鎖,弱鎖,僅僅表明意向;

(4)插入意向鎖(Insert Intention Locks):針對insert的,如果插入位置不沖突,多個事務不會阻塞,以提高插入并發;

(5)記錄鎖(Record Locks):索引記錄上加鎖,對索引記錄實施互斥,以保證數據一致性;

(6)間隙鎖(Gap Locks):封鎖索引記錄中間的間隔,在RR下有效,防止間隔中被其他事務插入;

(7)臨鍵鎖(Next-key Locks):封鎖索引記錄,以及索引記錄中間的間隔,在RR下有效,防止幻讀;

InnoDB的鎖,與索引類型,事務的隔離級別相關,更多更復雜更有趣的案例,后續和大家介紹。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文 

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2021-04-12 10:52:10

InnoDB索引數據庫

2025-05-13 08:20:58

2025-01-21 08:00:00

限流微服務算法

2020-01-14 08:00:00

.NET緩存編程語言

2022-05-10 08:08:01

find命令Linux

2016-12-27 19:19:51

2010-10-15 10:02:01

Mysql表類型

2017-08-31 14:57:53

數據庫MySQLJOIN

2017-06-02 09:52:50

2010-08-31 10:57:36

2021-07-16 09:55:46

數據工具軟件

2017-06-14 16:44:15

JavaScript原型模式對象

2019-09-06 09:00:00

開發技能代碼

2013-01-07 10:14:06

JavaJava枚舉

2025-01-15 10:46:23

開發JavaScript集合

2020-01-14 11:09:36

CIO IT技術

2021-03-07 16:11:26

Redis分布式

2023-12-22 14:27:30

2011-03-14 10:46:03

2010-06-08 09:49:45

UML元件
點贊
收藏

51CTO技術棧公眾號

久久久久亚洲av无码网站| 国产成人精品免费看在线播放| 老熟妇仑乱一区二区av| 三级在线播放| 久久精品五月| 久久久精品一区二区| www.555国产精品免费| 三上悠亚激情av一区二区三区| 亚洲人成网站在线| 蜜桃999成人看片在线观看| 亚洲一卡二卡在线观看| 亚洲天堂偷拍| 久久精品成人欧美大片| 黄色短视频在线观看| www久久久| 天天色综合av| 亚洲精品进入| 日韩丝袜美女视频| 久久久精品麻豆| 99热99re6国产在线播放| 国产欧美日产一区| 国产色综合一区二区三区| 在线免费观看中文字幕| 性伦欧美刺激片在线观看| 不卡av电影在线观看| 成人性生交大片免费看无遮挡aⅴ| 极品尤物一区| 日韩免费看网站| 国产美女18xxxx免费视频| 国模冰冰炮一区二区| 调教+趴+乳夹+国产+精品| 久久国产精品免费观看| av一本在线| 国产日韩欧美精品综合| 欧美日韩电影一区二区| 香蕉久久一区二区三区| 成人在线一区二区三区| 亚洲一区二区三区视频播放| 亚洲一区中文字幕在线| 日韩二区在线观看| 国产成人极品视频| 青青青国产在线| 在线一区欧美| 97婷婷大伊香蕉精品视频| 久久国产在线观看| 午夜国产精品视频| 欧美成人精品激情在线观看| 精品一区二区在线观看视频| 欧美三级三级| 国产一区二区美女视频| 日韩毛片无码永久免费看| 综合综合综合综合综合网| 国产视频久久久| 亚洲精品乱码久久久久久不卡| 精品在线网站观看| 亚洲第一精品自拍| 少妇一级淫免费观看| 国产主播性色av福利精品一区| 日韩欧美视频在线| aaa黄色大片| 免费观看成人www动漫视频| 亚洲福利在线播放| 99久久人妻精品免费二区| 性欧美xxxx免费岛国不卡电影| 亚洲精品大尺度| 女人被狂躁c到高潮| 猛男gaygay欧美视频| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 欧美激情在线观看视频| 久久香蕉精品视频| 国产欧美精品| 日本午夜人人精品| 中文字幕一二区| 激情五月激情综合网| 国产 高清 精品 在线 a| 高清乱码毛片入口| 91香蕉视频污在线| 亚洲一区二区三区精品视频 | 日韩美女视频一区| 日韩精品一区二区在线视频| aaa在线播放视频| 在线观看日韩电影| 男女视频在线观看网站| 精品视频在线你懂得| 中文字幕国产精品| 久草中文在线视频| 视频在线观看91| 亚洲aⅴ日韩av电影在线观看 | 在线观看日韩www视频免费| 亚洲精品久久久久久国| 在线欧美三区| 国产精品偷伦免费视频观看的 | 国产亚洲xxx| 日韩激情综合网| 夜久久久久久| 国产日韩在线看片| 天天色综合久久| 亚洲四区在线观看| 免费黄色福利视频| 午夜视频在线观看精品中文| 亚洲欧洲一区二区三区在线观看 | 欧美先锋影音| 国产精品久久久av久久久| 国产成人精品av在线观| 久久久久国产精品人| 97碰在线视频| 久久免费资源| 精品偷拍一区二区三区在线看| 丝袜美腿小色网| 久久夜色精品| 国产精品毛片一区视频| 在线免费av网站| 一本一本大道香蕉久在线精品| 色黄视频免费看| 欧美极品在线观看| 97精品一区二区视频在线观看| 亚洲图片在线播放| 91视频免费观看| 男人添女人下部视频免费| 成人精品动漫| 亚洲人成网站777色婷婷| 日产欧产va高清| 国产一区二区0| 一区二区三区四区五区精品| 中文字幕色婷婷在线视频| 精品日韩在线观看| 成熟的女同志hd| 蜜桃久久精品一区二区| 青娱乐一区二区| 亚洲涩涩在线| 亚洲国产精品高清久久久| 青娱乐91视频| 国产一区二区在线免费观看| 一本一道久久a久久精品综合 | 欧美一区在线视频| 少妇的滋味中文字幕bd| 免费人成黄页网站在线一区二区| 欧美成人综合一区| 久久男人天堂| 亚洲国产成人91精品| 久久久久久久久久久网| 国产成人一区二区精品非洲| 国产成人免费高清视频| 欧美精品三级在线| 欧美成人sm免费视频| 99久久久国产精品无码免费| 亚洲视频免费观看| 亚洲精品在线网址| 牛牛国产精品| 国产高清自拍一区| av在线播放资源| 日韩国产高清污视频在线观看| 日韩手机在线观看| 91美女在线观看| 激情婷婷综合网| 菠萝蜜一区二区| 91美女福利视频高清| 中中文字幕av在线| 精品999久久久| 国产精品100| 国产性色一区二区| 小明看看成人免费视频| 中文字幕一区二区三三| 国产精品免费一区二区三区在线观看 | 国产精品白丝av嫩草影院| 午夜精品久久久久久久白皮肤| 天天干天天摸天天操| 91福利国产成人精品照片| 精品人妻中文无码av在线| 久久99久久99| www精品久久| 自拍偷拍一区| 91精品久久久久久久久| 国产在线拍揄自揄拍视频| 亚洲精品国产精品国自产观看浪潮 | 免费在线观看av| 日韩欧美在线综合网| 日韩av一二三区| 91丨porny丨首页| 在线观看岛国av| 亚洲欧美一区在线| 欧美二区三区| 国产精品亚洲欧美日韩一区在线 | 日日夜夜综合| 欧美国产精品日韩| 日本福利在线观看| 欧美日韩国产123区| 国产欧美日韩另类| 国产精品入口麻豆九色| 佐佐木明希电影| 日本视频一区二区三区| 国产精品igao激情视频| 久久综合欧美| 国产精品精品软件视频| 日韩在线短视频| 久久久久在线观看| av在线第一页| 日韩精品视频免费| 国产乱淫片视频| 色狠狠桃花综合| 久久高清无码视频| 国产精品免费久久久久| 亚洲一区二区三区黄色| 久久激情五月婷婷| 人妻少妇被粗大爽9797pw| 最新精品国产| 午夜老司机精品| 美女一区二区在线观看| 成人免费视频免费观看| 鲁片一区二区三区| 日韩最新av| 国产欧美日韩精品在线观看| 中文字幕21页在线看| 欧美激情网友自拍| 草莓福利社区在线| 中文字幕久热精品视频在线| 艳母动漫在线看| 精品国产网站在线观看| 国产欧美熟妇另类久久久 | 4438全国成人免费| 色呦呦视频在线观看| 日韩综合视频在线观看| 精品一二三区视频| 日韩激情片免费| 免费观看a视频| 日韩视频不卡中文| 999av视频| 欧美精品久久久久久久久老牛影院| 黄瓜视频在线免费观看| 欧美日韩激情美女| 日韩精品视频免费看| 一区二区三区精品视频| 国产a免费视频| 亚洲欧美色图小说| 精品一区在线观看视频| 亚洲色图都市小说| www日韩在线| 亚洲同性同志一二三专区| 美女网站视频色| 国产精品色哟哟| 精品伦精品一区二区三区视频密桃| 久久精品一区二区三区不卡| av中文字幕免费观看| 久久久青草青青国产亚洲免观| 醉酒壮男gay强迫野外xx| 久久综合狠狠综合| 大地资源二中文在线影视观看| 91在线精品秘密一区二区| 亚洲国产欧美视频| 国产欧美久久久精品影院| 欧美丰满老妇熟乱xxxxyyy| 国产精品情趣视频| 九九精品视频免费| 一区二区三区成人| 国产精品成人久久| 精品国产成人av| 中文字幕日韩免费| 欧美日韩一区国产| 国产高清不卡视频| 99色在线观看| x99av成人免费| 91精选在线| 97国产在线观看| 88xx成人永久免费观看| 国产精品日日做人人爱| 国产精品一区二区三区四区在线观看| 91在线观看网站| 欧美在线导航| 亚洲欧洲精品在线| 欧美在线91| 少妇无码av无码专区在线观看 | 污视频网站观看| 国产精品123| 影音先锋黄色资源| 中文字幕乱码亚洲精品一区| 国产中文av在线| 亚洲国产婷婷综合在线精品| 免费看毛片网站| 91精品国产综合久久精品app| 亚洲女人18毛片水真多| 亚洲欧美制服另类日韩| xvideos国产在线视频| 午夜精品一区二区三区在线视频 | 欧美撒尿777hd撒尿| 国产片在线播放| 亚洲国产成人91精品| 日本在线人成| 91成人在线播放| 国产电影一区二区| 欧美lavv| 欧美三级特黄| 手机看片福利盒子久久| 丰满亚洲少妇av| www中文在线| 欧美日韩国产一中文字不卡| 国产精品久久久久久久免费看| 亚洲毛茸茸少妇高潮呻吟| 国产精品久久久久久福利| 国产91精品久久久| 欧美久久亚洲| 亚洲精品一区二区三区蜜桃久| 亚洲精一区二区三区| 亚洲高清视频免费| 久久久亚洲精品石原莉奈| 国产一级特黄毛片| 911国产精品| av大片在线播放| 2018日韩中文字幕| 91精品国产自产精品男人的天堂| 亚洲精品在线观看免费| 性8sex亚洲区入口| 最新国产精品自拍| 综合色中文字幕| 最近中文字幕在线观看| 亚洲毛片在线免费观看| 9999在线视频| 97netav| 99九九热只有国产精品| aⅴ在线免费观看| 99久久综合国产精品| 一级黄色录像视频| 欧美丰满嫩嫩电影| 亚洲成人影院麻豆| 国产精自产拍久久久久久蜜| 中文字幕精品影院| 日韩欧美一区二| av在线一区二区| 久久精品亚洲无码| 日韩精品影音先锋| 亚洲欧美成人影院| 亚洲mm色国产网站| 91成人超碰| 99中文字幕在线| 亚洲少妇30p| 国产视频在线免费观看| 日韩中文字幕在线观看| 欧美一区二区三区婷婷| 亚洲欧洲一区二区福利| 日韩成人免费电影| 女人黄色一级片| 欧美主播一区二区三区| 成人激情电影在线看| 国产精品激情自拍| 日本道不卡免费一区| 中文字幕有码av| 国产精品国产三级国产三级人妇 | 91欧美精品| 色乱码一区二区三在线看| 欧美aaaaa成人免费观看视频| 成熟人妻av无码专区| 欧美视频一区二| 欧美成人性生活视频| 亚洲va欧美va国产综合久久| 欧美视频导航| 精品视频站长推荐| 欧美性色视频在线| аⅴ资源新版在线天堂| 国产精品永久免费在线| 亚洲精品tv久久久久久久久久| 亚洲成人av免费观看| 亚洲成人tv网| 欧美亚洲日本| 国产日本欧美一区| 欧美黄色aaaa| 一区二区三区免费在线观看视频| 91福利在线看| 亚洲综合伊人久久大杳蕉| 国产一区二区无遮挡| 国产日韩综合| 国产探花视频在线| 日韩午夜中文字幕| 欧美aa一级| 一区二区三区av在线| 国产宾馆实践打屁股91| 久久久精品福利| 久久精品国产电影| 国偷自产av一区二区三区| 免费观看成人在线视频| 亚洲色图清纯唯美| 天堂中文资源在线观看| 国产精品久久不能| 91久久亚洲| www.99re6| 亚洲精品成人久久久| 日韩国产一二三区| 亚洲人精品午夜射精日韩| 国产精品久久久久久户外露出| 亚洲精品一区二区三区四区| 国产成人拍精品视频午夜网站| 亚洲免费二区| 在线免费观看麻豆| 日韩午夜电影av| 欧洲av一区二区| 99er在线视频| 国产精品久久久久久久午夜片| 全国男人的天堂网| 成人h视频在线| 日韩精品一级中文字幕精品视频免费观看| 亚洲一区电影在线观看| 亚洲欧美激情视频|