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

主頁 > 知識庫 > 一個mysql死鎖場景實例分析

一個mysql死鎖場景實例分析

熱門標簽:自己做地圖標注需要些什么 天津公司外呼系統軟件 百度地圖標注要什么軟件 中國地圖標注公司 電話機器人的價格多少錢一個月 徐涇鎮騰訊地圖標注 福建外呼電銷機器人加盟 昌德訊外呼系統 400電話申請廠家現貨

前言

最近遇到一個mysql在RR級別下的死鎖問題,感覺有點意思,研究了一下,做個記錄。

涉及知識點:共享鎖、排他鎖、意向鎖、間隙鎖、插入意向鎖、鎖等待隊列

場景

隔離級別:Repeatable-Read

表結構如下

create table t (
 id int not null primary key AUTO_INCREMENT,
 a int not null default 0,
 b varchar(10) not null default '',
 c varchar(10) not null default '',
 unique key uniq_a_b(a,b),
 unique key uniq_c(c)
);

初始化數據

insert into t(a,b,c) values(1,'1','1');

有A/B兩個session,按如下順序執行兩個事務

結果是

  • B執行完4之后還是一切正常
  • A執行5的時候,被block
  • B接著執行6,B報死鎖,B回滾,A插入數據

show engine innodb status中可以看到死鎖信息,這里先不貼,先解釋幾種鎖的概念,再來理解死鎖過程

共享(S)鎖/互斥(X)鎖

  • 共享鎖允許事務讀取記錄
  • 互斥鎖允許事務讀寫記錄

這兩種其實是鎖的模式可以和行鎖、間隙鎖混搭,多個事務可以同時持有S鎖,但是只有一個事務能持有X鎖

意向鎖

一種表鎖(也是一種鎖模式),表明有事務即將給對應表的記錄加S或者X鎖。SELECT ... LOCK IN SHARE MODE會在給記錄加S鎖之前先給表加IS鎖,SELECT ... FOR UPDATE會在給記錄加X鎖之前給表加IX鎖。

這是一種mysql的鎖優化策略,并不是很清楚意向鎖的優化點在哪里,求大佬指教

兩種鎖的兼容情況如下

行鎖

很簡單,給對應行加鎖。比如update、select for update、delete等都會給涉及到的行加上行鎖,防止其他事務的操作

間隙鎖

在RR隔離級別下,為了防止幻讀現象,除了給記錄本身,還需要為記錄兩邊的間隙加上間隙鎖。
比如列a上有一個普通索引,已經有了1、5、10三條記錄,select * from t where a=5 for update除了會給5這條記錄加行鎖,還會給間隙(1,5)和(5,10)加上間隙鎖,防止其他事務插入值為5的數據造成幻讀。
當a上的普通索引變成唯一索引時,不需要間隙鎖,因為值唯一,select * from t where a=5 for update不可能讀出兩條記錄來。

間隙鎖相互兼容,因為如果互斥,事務A持有左半段(1,5),事務B持有右半段(1,10),那么當前面那個例子中a=5的記錄被刪除時,理論上左右兩個間隙鎖得合并成一個新鎖(1,10),那么這個新的大范圍鎖屬于誰呢?所以間隙鎖相互兼容,不管是S間隙鎖還是X間隙鎖

插入意向鎖

插入意向鎖其實是一種特殊的間隙鎖,從前面對間隙鎖的描述中可以得知,兩個事務在真正insert之前可以同時持有一段間隙的間隙鎖,鎖不住真正insert的這個動作。真正insert之前,mysql還會嘗試獲取對應記錄的插入意向鎖,表明有在間隙中插入一個值的意向。

插入意向鎖和間隙鎖互斥,比如事務1鎖了(1,5)這個間隙,事務2就不能獲取到a=3的插入意向鎖,所以需要鎖等待。

死鎖過程分析

接下來就可以來分析前面那個例子中的死鎖過程了,先看show engine innodb status

 *** (1) TRANSACTION:
TRANSACTION 5967, ACTIVE 8 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 9, OS thread handle 140528848688896, query id 537 192.168.128.1 root update
insert into t(a,b) values(0,'0')
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 64 page no 4 n bits 72 index uniq_a_b of table `t2`.`t` trx id 5967 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc  ;;
 1: len 1; hex 31; asc 1;;
 2: len 4; hex 80000001; asc  ;;

*** (2) TRANSACTION:
TRANSACTION 5968, ACTIVE 7 sec inserting
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 8, OS thread handle 140528848484096, query id 538 192.168.128.1 root update
insert into t(a,b) values(0,'0')
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 64 page no 4 n bits 72 index uniq_a_b of table `t2`.`t` trx id 5968 lock_mode X locks gap before rec
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc  ;;
 1: len 1; hex 31; asc 1;;
 2: len 4; hex 80000001; asc  ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 64 page no 4 n bits 72 index uniq_a_b of table `t2`.`t` trx id 5968 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc  ;;
 1: len 1; hex 31; asc 1;;
 2: len 4; hex 80000001; asc  ;;

*** WE ROLL BACK TRANSACTION (2)

session A(即TRANSACTION 5967)正在等待記錄(a=1,b='1')之前的插入意向鎖,session B(即TRANSACTION 5968)持有記錄(a=1,b='1')之前的間隙鎖,卻也在等待那個插入意向鎖。這說的什么玩意兒,是不是很詭異?

從頭開始分析過程

  1. A、B分別begin,開始事務
  2. A先執行select * from t where a=0 and b='0' for update; ,先加了IX鎖,然后原本意圖為給(0, '0')這條記錄加排他行鎖,但是記錄不存在,所以變成了排他間隙鎖(-∞,1)
  3. B再執行select * from t where a=0 and b='0' for update; ,也是先加了IX鎖,因為記錄不存在,所以加上了排他間隙鎖(-∞,1),但是由于間隙鎖相互兼容,所以沒有block
  4. A執行insert into t(a,b) values(0,'0'); ,這時候,要開始真正insert了,A需要獲得(0,'0')上的插入意向鎖,由于和B持有的(-∞,1)排他間隙鎖沖突,所以鎖等待,進入記錄(0,'0')的鎖等待隊列(雖然記錄并不存在)
  5. B執行insert into t(a,b) values(0,'0'); ,要獲取插入意向鎖,發現雖然B自己是持有(-∞,1)的排他間隙鎖,但是A也有,所以進入等待隊列,等待A釋放
  6. 叮,死鎖發生

死鎖信息解讀

事務1(TRANSACTION 5967),等待獲得鎖index uniq_a_b of table t2.t trx id 5967 lock_mode X locks gap before rec insert intention waiting,即在唯一索引uniq_a_b上的插入意向鎖(lock_mode X locks gap before rec insert intention)
鎖的邊界為

 0: len 4; hex 80000001; asc  ;;
 1: len 1; hex 31; asc 1;;
 2: len 4; hex 80000001; asc  ;;

表明兩行記錄

  • 0和1表示uniq_a_b上的值,a=1,b=0x31(即'1'的ascii碼)
  • a=1,b='1'對應的主鍵id=1,因為innodb的索引結構決定的,二級索引(非主鍵索引)指向主鍵索引,主鍵索引再指向數據,所以需要給主鍵加索引

至于int值按位或上的0x80000000就不是很清楚為什么了,需要大佬解讀

事務2(TRANSACTION 5968),持有間隙鎖index uniq_a_b of table t2.t trx id 5968 lock_mode X locks gap before rec,等待插入意向鎖index uniq_a_b of table t2.t trx id 5968 lock_mode X locks gap before rec insert intention,所以死鎖發生。

原則上是innodb引擎判斷哪個事務回滾代價小就回滾哪個事務,但是具體評判標準不是很清楚(再一次需要大佬),這里innodb選擇了回滾事務2。至此,死鎖過程分析完畢

One More Thing

還沒完。。。有個神奇的現象是,如果表結構變成

create table t (
 id int not null primary key AUTO_INCREMENT,
 a int not null default 0,
 b varchar(10) not null default '',
 c varchar(10) not null default '',
 unique key uniq_c(c),
 unique key uniq_a_b(a,b)
);
insert into t(a,b,c) values(1,1,1);

只是把c上的唯一索引uniq_c放到了uniq_a_b前面,那么最后的死鎖信息就變了!

 *** (1) TRANSACTION:
TRANSACTION 5801, ACTIVE 5 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 4 lock struct(s), heap size 1136, 3 row lock(s), undo log entries 1
MySQL thread id 5, OS thread handle 140528848688896, query id 380 192.168.128.1 root update
insert into t2(a,b) values(0,'0')
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 56 page no 5 n bits 72 index uniq_a_b of table `t2`.`t2` trx id 5801 lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc  ;;
 1: len 1; hex 31; asc 1;;
 2: len 4; hex 80000001; asc  ;;

*** (2) TRANSACTION:
TRANSACTION 5802, ACTIVE 4 sec inserting
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 6, OS thread handle 140528848484096, query id 381 192.168.128.1 root update
insert into t2(a,b) values(0,'0')
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 56 page no 5 n bits 72 index uniq_a_b of table `t2`.`t2` trx id 5802 lock_mode X locks gap before rec
Record lock, heap no 2 PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 4; hex 80000001; asc  ;;
 1: len 1; hex 31; asc 1;;
 2: len 4; hex 80000001; asc  ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 56 page no 4 n bits 72 index uniq_c of table `t2`.`t2` trx id 5802 lock mode S waiting
Record lock, heap no 3 PHYSICAL RECORD: n_fields 2; compact format; info bits 0
 0: len 0; hex ; asc ;;
 1: len 4; hex 80000002; asc  ;;

*** WE ROLL BACK TRANSACTION (2)

事務2等待的鎖由前面的插入意向鎖變成了共享鎖。什么鬼?

由于沒看過源碼,只能根據現象倒推:因為表結構上c的唯一索引在(a,b)前面,而插入的時候沒指定c的值,用的默認值0,innodb需要先去查一下有沒有0這條記錄,有的話就要報唯一鍵沖突了,所以先要加S鎖,但是在(0,'0')這條記錄上已經有了IX鎖,看一下前面的兼容性矩陣,S鎖和IX鎖互斥,所以也只能鎖等待

總結

看似一句簡單的select和insert,底下設計非常復雜的鎖機制,理解這些鎖機制有利于寫出高效的SQL(至少是正確的😂)

遺留問題:

  1. 意向鎖的優化點是哪
  2. 鎖信息里,行記錄按位或上的0x80000000是啥
  3. 鎖互斥的判定順序,場景1中,(0,'0')上有兼容的間隙鎖,也有等待隊列中的鎖,先判定哪個?
  4. innodb計算事務回滾代價的算法

參考資料

  • http://hedengcheng.com/?p=771
  • https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html#innodb-insert-intention-locks
  • https://dev.mysql.com/doc/refman/5.7/en/innodb-next-key-locking.html
  • https://dev.mysql.com/doc/refman/5.7/en/innodb-information-schema-understanding-innodb-locking.html

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 由不同的索引更新解決MySQL死鎖套路
  • 通過唯一索引S鎖與X鎖來了解MySQL死鎖套路
  • 詳解MySQL(InnoDB)是如何處理死鎖的
  • 實例講解MySQL中樂觀鎖和悲觀鎖
  • Mysql查詢正在執行的事務以及等待鎖的操作方式
  • 簡單了解 MySQL 中相關的鎖

標簽:鄂爾多斯 梅河口 駐馬店 陜西 北京 荊門 昌都 黔西

巨人網絡通訊聲明:本文標題《一個mysql死鎖場景實例分析》,本文關鍵詞  一個,mysql,死鎖,場景,實例分析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一個mysql死鎖場景實例分析》相關的同類信息!
  • 本頁收集關于一個mysql死鎖場景實例分析的相關信息資訊供網民參考!
  • 推薦文章
    日韩激情一区二区| 国产精品性做久久久久久| 亚洲一级二级三级在线免费观看| 亚洲成年人在线播放| 国产美女被下药99| 免费观看成人网| 看片网站在线观看| 99re66热这里只有精品3直播| 日韩免费电影网站| eeuss一区二区三区| 男操女免费网站| 国产av一区二区三区| 亚洲一区二区免费视频| 久久久久久久成人| 国产v片免费观看| 亚洲GV成人无码久久精品| 国产日产欧美一区| 亚洲图片欧美日产| 亚洲韩国在线| 国产又粗又猛又爽又黄的视频小说| 国产一区二三区| 精品第一国产综合精品aⅴ| 久久本道综合色狠狠五月| 91精品人妻一区二区三区蜜桃欧美| 精品一区二区在线观看| 亚洲成人激情视频| 在线成人性视频| 国产第一页浮力| 久久精品亚洲精品国产欧美kt∨ | 精品中文字幕在线播放| 国产真实乱对白精彩久久| 精品国免费一区二区三区| 免费一区二区三区在在线视频| 蜜臀av午夜精品久久| 中文字幕av在线一区二区三区| x99av成人免费| 久久人人爽av| 日本大胆欧美人术艺术动态| 亚洲第一福利在线观看| 一本色道久久99精品综合| 精品人妻一区二区色欲产成人| 一区二区久久久久久| 成人av色在线观看| 久久亚洲无码视频| 国产亚洲污的网站| 国产精品免费福利| 在线免费看黄视频| 久久精品一区二区三区av| 欧美日韩第一页| 久久发布国产伦子伦精品| 国产成人高清在线| 欧美成aaa人片在线观看蜜臀| 亚洲 欧美 日韩 国产综合 在线 | 日本黄色三级视频| 亚洲欧美一区二区三区久久| 黄色一级视频在线播放| 久久一区激情| 日韩亚洲欧美成人| 日本网站在线看| 成人av高清在线| 久久99青青精品免费观看| 91视频啊啊啊| 日本一区二区三区视频视频| 91久久精品一区| 国产小视频在线观看免费| 精品国产精品自拍| 国产一区福利视频| 中文字幕久久网| 欧美一级淫片007| 国产香蕉一区二区三区| 久久夜色精品| 亚洲人成欧美中文字幕| 夜夜夜夜夜夜操| 成人免费看视频| 成人性教育视频在线观看| 四虎永久免费在线| 欧美性高潮床叫视频| 日韩精品欧美在线| 久久精品五月| 日韩在线观看视频免费| 青青草视频成人| 亚洲v中文字幕| 欧美在线播放一区| www.我爱av| 久久精品成人动漫| 纪美影视在线观看电视版使用方法| 亚洲成人av一区| 一二三在线视频| 精油按摩中文字幕久久| 日韩免费观看高清| 欧美三级午夜理伦| 亚洲国产三级网| 国产伦理在线观看| 亚洲愉拍自拍另类高清精品| 在线丝袜欧美日韩制服| 国产综合久久久久久久久久久久| 国产精品久久999| 亚洲中文一区二区| 在线成人一区二区| 9.1片黄在线观看| 欧美性三三影院| 成熟丰满熟妇高潮xxxxx视频| 国产高清不卡二三区| 国产精品一区二区三区不卡| 亚洲精品无码专区| 国产91在线播放精品91| 亚洲成人av网址| 欧美精品在线观看91| 欧美日韩在线观看免费| 精品成人一区二区三区| 午夜一区二区视频| 亚洲视频你懂的| 九一免费在线观看| 91尤物视频在线观看| 国产高清精品一区二区| 日韩av中文字幕一区二区| 3d动漫啪啪精品一区二区免费| 一级黄色av片| 久久天天躁狠狠躁夜夜爽蜜月| 永久免费看片直接| 亚洲精品国产精品乱码不99按摩 | 一区二区三区在线影院| 男女超爽视频免费播放| 亚洲欧美另类久久久精品| 日韩精品视频在线观看视频 | 久久久久久久久久国产| 一级黄色在线观看| 欧美人在线观看| 中文字幕av免费观看| 国内精品小视频| 国产在成人精品线拍偷自揄拍| 国产精品成av人在线视午夜片| 亚洲成人第一区| 成人h视频在线观看播放| 动漫av一区二区三区| 国产欧美一区二区三区在线 | 神马午夜一区二区| 亚洲自拍小视频免费观看| 蜜臀av一级做a爰片久久| 久久手机视频| 成人免费福利片| 国产亚洲精品久久久久久久| 国产欧美日韩卡一| 国产日韩一区二区在线观看| 亚洲欧美另类久久久精品| 自拍偷拍 国产| 亚洲线精品一区二区三区八戒| 99蜜桃臀久久久欧美精品网站| 色哟哟精品一区| 欧美图片一区二区| 日韩在线精品视频| 亚洲最新av网站| 国产伦精品免费视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美日韩国产一二三| 欧美三级 欧美一级| 国内精品久久久久久久| 久久狠狠婷婷| 中国成人在线视频| 中文字幕亚洲精品在线观看| 日韩精品xxx| 亚洲欧美制服中文字幕| 国产又粗又猛又黄又爽| 亚洲一区二区三区四区在线播放| 97国产精品videossex| 日韩手机在线观看视频| 欧美一级片免费看| 久久久免费高清视频| 国产精品久久久久久婷婷天堂| 免费成人av资源网| 国产又黄又大又粗视频| 欧美中文字幕一区二区三区亚洲| 国产亚洲精品女人久久久久久| 国产精品7m视频| jizz一区二区| 美女网站视频在线观看| 久久影院资源网| 狠狠色丁香婷综合久久| 亚洲国产精品久久久久婷蜜芽| 一本到三区不卡视频| 久久99久久久| 91亚洲国产成人久久精品网站 | 18岁网站在线观看| 亚洲精品日韩在线| 日韩性xxxx| 国产a级片免费看| 6080yy午夜一二三区久久| 在线免费看91| 国产一区 在线播放| 精品免费一区二区三区| 亚洲国产精品久久久久爰性色| 免费cad大片在线观看| 精品黑人一区二区三区久久| 国产精品爽爽久久久久久| 黄色片免费在线观看视频| 精品久久久久久最新网址| 亚洲成人一级片| 男人和女人啪啪网站| 日韩国产高清污视频在线观看| 亚洲欧美中文另类| www.久久久精品| 精品国产一区二区精华 | 亚洲天堂av片| 国产九色91| 午夜视频一区二区| 91精品国产综合久久久蜜臀九色| 国产精品久久久久久久久久久久冷| 狠狠做深爱婷婷久久综合一区| 日本道在线观看| 米仓穗香在线观看| 亚洲免费视频观看| 六月丁香婷婷久久| 一级做a免费视频| 国产极品精品在线观看| 亚洲图片欧美综合| 91精品国产高清一区二区三密臀| 黄黄视频在线观看| 国产视频一区在线| 精品一区二区免费看| 动漫3d精品一区二区三区| 一区二区在线看| 貂蝉被到爽流白浆在线观看| 999国内精品视频在线| 欧美综合一区二区| 久久久久91| 国产草草浮力影院| 日韩欧美一级片| 日韩电影大全免费观看2023年上| 一级片aaaa| 无码人妻丰满熟妇区毛片18| 欧美激情一区二区三区成人| 最新不卡av在线| 亚洲中文字幕无码爆乳av| 两根大肉大捧一进一出好爽视频| 色综合色综合久久综合频道88| 亚洲天天做日日做天天谢日日欢 | 日韩成人免费在线视频| 熟妇熟女乱妇乱女网站| 精品亚洲精品福利线在观看| 久久久久久久久97黄色工厂| 久久久久久久久久免费视频| 国产xxxx振车| 欧美日韩爱爱视频| 8v天堂国产在线一区二区| 免费观看黄色一级视频| 亚洲一二三四五| 成人欧美一区二区三区在线| 国产精品福利一区| 欧美熟妇精品一区二区| 午夜精品一区二区三区在线| 捆绑调教美女网站视频一区| 在线观看岛国av| 国产精品直播网红| 亚洲女人天堂av| 亚洲国产综合91精品麻豆| 美腿丝袜在线亚洲一区| 久久91精品国产| 国产91丝袜在线播放九色| 午夜一级黄色片| 亚洲第九十七页| 欧美视频在线观看视频| 99影视tv| 久久99精品久久久久久琪琪| 制服丝袜激情欧洲亚洲| 国产精品人妖ts系列视频| 蜜桃视频一区| 日韩欧美在线观看免费| 成人免费网站黄| 久久精品影视大全| 欧美一区二区三区成人久久片| 欧美精品成人91久久久久久久| 欧美va在线播放| 亚洲国产视频一区二区| 白白色 亚洲乱淫| 色丁香婷婷综合久久| 免费一级特黄特色大片| 国产伦精品一区二区免费| 91成人在线观看喷潮教学| 国产欧美日韩一区二区三区| 97精品一区二区三区| 亚洲欧美日韩直播| 精品视频123区在线观看| 国产精品成人免费在线| 国产一区二区三区久久悠悠色av| 一本色道久久综合无码人妻| 黄色片子在线观看| 免费不卡的av| 乌克兰美女av| 少妇一级淫片免费看| 久久人人爽人人爽人人| 中文字幕5566| 国内外成人免费在线视频| 欧美另类极品videosbestfree| 一卡二卡三卡日韩欧美| 成人天堂资源www在线| 午夜在线视频免费| 在线观看视频二区| 国产成人精品一区二三区| 精品人妻中文无码av在线| 国产伦理在线观看| 一区二区三区视频网| 国产日韩一区二区在线| 青草网在线观看| 五月天综合婷婷| 少妇免费毛片久久久久久久久| 国产欧美一区二区三区不卡高清| 国产免费一区二区三区在线观看| 亚州欧美日韩中文视频| 欧美成人一区二区三区电影| 国产一区二区三区在线看 | 91精品黄色片免费大全| 色综合久久中文综合久久牛| 亚洲一区二区免费视频| 一区二区在线观看免费视频播放| 中文字幕 久热精品 视频在线 | 欧美性欧美巨大黑白大战| 亚洲1区2区3区4区| 亚洲国产裸拍裸体视频在线观看乱了 | 色爽爽爽爽爽爽爽爽| 香蕉视频在线网址| 中文字幕中文字幕一区三区| 欧美一区二区三区成人久久片| 加勒比在线一区二区三区观看| 精品日本一区二区三区| 日韩av不卡在线播放| 亚洲国产一区在线| 成年丰满熟妇午夜免费视频| 久久久久久久久久伊人| 成人一对一视频| 人人干人人干人人| 精品人妻一区二区乱码| 一级性生活大片| 国产a免费视频| 国产美女激情视频| 91激情在线观看| 天堂在线资源库| 麻豆成人久久精品二区三区小说| 日韩极品在线观看| 国产精品18久久久| 国产午夜精品一区二区三区视频| 国产精品久久久久aaaa| 婷婷国产v国产偷v亚洲高清| 欧美日韩大陆在线| 亚洲乱亚洲乱妇无码| 久久精品2019中文字幕| 2018日韩中文字幕| 国产在线视频不卡| 你懂的视频在线一区二区| 成人国产在线看| 91香蕉国产线在线观看| 天天干天天舔天天操| 日韩精品视频在线免费观看| 在线观看日韩视频| 午夜精品久久久久久99热软件| 国产精品第一区| 国产精品一区二区三区四区五区 | 亚洲乱码国产乱码精品精软件| 日本不卡免费在线视频| 暴力调教一区二区三区| 亚洲一区二区三区四区的| 91精品国产福利| 欧美猛男性生活免费| 91亚洲一区精品| 国产四区在线观看| 日本人69视频| 国产这里有精品| 91好色先生tv| 国产99久久久国产精品免费看| 亚洲美女在线一区| 精品粉嫩超白一线天av| 久久久久成人网| 麻豆av一区二区三区| 免费黄色福利视频| 黄色av免费播放| 国产a级免费视频| 91在线观看视频| 欧美中文字幕一区二区三区| 在线精品国产欧美| 91久久精品美女高潮| 久久手机在线视频| 无码人妻精品一区二区三| 五月天激情国产综合婷婷婷| 美美哒免费高清在线观看视频一区二区| 亚洲欧洲精品一区二区精品久久久 | 国产精久久久久| 国产黄色免费视频| www.日韩在线| 欧美日韩在线免费视频| 欧美老妇交乱视频| 日韩精品福利视频| 无码人妻少妇色欲av一区二区| 成人午夜两性视频| 国产不卡一区二区视频| 国产小视频你懂的| www.蜜桃av.com| 亚洲欧洲日产国码二区| 日韩精品免费综合视频在线播放| 国产精品久久不能| 激情五月宗合网| 国产真实乱偷精品视频| 国产中文字幕精品| 在线成人免费观看| 国产美女久久精品| 黄色国产小视频| 无码人妻av免费一区二区三区| 成人av午夜电影| 亚洲精品久久久久久久久久久久| 国产v亚洲v天堂无码| 无码人妻精品一区二区三| 殴美一级特黄aaaaaa|