成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 一個(gè)mysql死鎖場(chǎng)景實(shí)例分析

一個(gè)mysql死鎖場(chǎng)景實(shí)例分析

熱門(mén)標(biāo)簽:自己做地圖標(biāo)注需要些什么 天津公司外呼系統(tǒng)軟件 百度地圖標(biāo)注要什么軟件 中國(guó)地圖標(biāo)注公司 電話機(jī)器人的價(jià)格多少錢(qián)一個(gè)月 徐涇鎮(zhèn)騰訊地圖標(biāo)注 福建外呼電銷機(jī)器人加盟 昌德訊外呼系統(tǒng) 400電話申請(qǐng)廠家現(xiàn)貨

前言

最近遇到一個(gè)mysql在RR級(jí)別下的死鎖問(wèn)題,感覺(jué)有點(diǎn)意思,研究了一下,做個(gè)記錄。

涉及知識(shí)點(diǎn):共享鎖、排他鎖、意向鎖、間隙鎖、插入意向鎖、鎖等待隊(duì)列

場(chǎng)景

隔離級(jí)別:Repeatable-Read

表結(jié)構(gòu)如下

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)
);

初始化數(shù)據(jù)

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

有A/B兩個(gè)session,按如下順序執(zhí)行兩個(gè)事務(wù)

結(jié)果是

  • B執(zhí)行完4之后還是一切正常
  • A執(zhí)行5的時(shí)候,被block
  • B接著執(zhí)行6,B報(bào)死鎖,B回滾,A插入數(shù)據(jù)

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

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

  • 共享鎖允許事務(wù)讀取記錄
  • 互斥鎖允許事務(wù)讀寫(xiě)記錄

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

意向鎖

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

這是一種mysql的鎖優(yōu)化策略,并不是很清楚意向鎖的優(yōu)化點(diǎn)在哪里,求大佬指教

兩種鎖的兼容情況如下

行鎖

很簡(jiǎn)單,給對(duì)應(yīng)行加鎖。比如update、select for update、delete等都會(huì)給涉及到的行加上行鎖,防止其他事務(wù)的操作

間隙鎖

在RR隔離級(jí)別下,為了防止幻讀現(xiàn)象,除了給記錄本身,還需要為記錄兩邊的間隙加上間隙鎖。
比如列a上有一個(gè)普通索引,已經(jīng)有了1、5、10三條記錄,select * from t where a=5 for update除了會(huì)給5這條記錄加行鎖,還會(huì)給間隙(1,5)和(5,10)加上間隙鎖,防止其他事務(wù)插入值為5的數(shù)據(jù)造成幻讀。
當(dāng)a上的普通索引變成唯一索引時(shí),不需要間隙鎖,因?yàn)橹滴ㄒ唬?code>select * from t where a=5 for update不可能讀出兩條記錄來(lái)。

間隙鎖相互兼容,因?yàn)槿绻コ?,事?wù)A持有左半段(1,5),事務(wù)B持有右半段(1,10),那么當(dāng)前面那個(gè)例子中a=5的記錄被刪除時(shí),理論上左右兩個(gè)間隙鎖得合并成一個(gè)新鎖(1,10),那么這個(gè)新的大范圍鎖屬于誰(shuí)呢?所以間隙鎖相互兼容,不管是S間隙鎖還是X間隙鎖

插入意向鎖

插入意向鎖其實(shí)是一種特殊的間隙鎖,從前面對(duì)間隙鎖的描述中可以得知,兩個(gè)事務(wù)在真正insert之前可以同時(shí)持有一段間隙的間隙鎖,鎖不住真正insert的這個(gè)動(dòng)作。真正insert之前,mysql還會(huì)嘗試獲取對(duì)應(yīng)記錄的插入意向鎖,表明有在間隙中插入一個(gè)值的意向。

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

死鎖過(guò)程分析

接下來(lái)就可以來(lái)分析前面那個(gè)例子中的死鎖過(guò)程了,先看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')之前的間隙鎖,卻也在等待那個(gè)插入意向鎖。這說(shuō)的什么玩意兒,是不是很詭異?

從頭開(kāi)始分析過(guò)程

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

死鎖信息解讀

事務(wù)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'對(duì)應(yīng)的主鍵id=1,因?yàn)閕nnodb的索引結(jié)構(gòu)決定的,二級(jí)索引(非主鍵索引)指向主鍵索引,主鍵索引再指向數(shù)據(jù),所以需要給主鍵加索引

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

事務(wù)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,所以死鎖發(fā)生。

原則上是innodb引擎判斷哪個(gè)事務(wù)回滾代價(jià)小就回滾哪個(gè)事務(wù),但是具體評(píng)判標(biāo)準(zhǔn)不是很清楚(再一次需要大佬),這里innodb選擇了回滾事務(wù)2。至此,死鎖過(guò)程分析完畢

One More Thing

還沒(méi)完。。。有個(gè)神奇的現(xiàn)象是,如果表結(jié)構(gòu)變成

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)

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

由于沒(méi)看過(guò)源碼,只能根據(jù)現(xiàn)象倒推:因?yàn)楸斫Y(jié)構(gòu)上c的唯一索引在(a,b)前面,而插入的時(shí)候沒(méi)指定c的值,用的默認(rèn)值0,innodb需要先去查一下有沒(méi)有0這條記錄,有的話就要報(bào)唯一鍵沖突了,所以先要加S鎖,但是在(0,'0')這條記錄上已經(jīng)有了IX鎖,看一下前面的兼容性矩陣,S鎖和IX鎖互斥,所以也只能鎖等待

總結(jié)

看似一句簡(jiǎn)單的select和insert,底下設(shè)計(jì)非常復(fù)雜的鎖機(jī)制,理解這些鎖機(jī)制有利于寫(xiě)出高效的SQL(至少是正確的😂)

遺留問(wèn)題:

  1. 意向鎖的優(yōu)化點(diǎn)是哪
  2. 鎖信息里,行記錄按位或上的0x80000000是啥
  3. 鎖互斥的判定順序,場(chǎng)景1中,(0,'0')上有兼容的間隙鎖,也有等待隊(duì)列中的鎖,先判定哪個(gè)?
  4. innodb計(jì)算事務(wù)回滾代價(jià)的算法

參考資料

  • 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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

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

標(biāo)簽:鄂爾多斯 梅河口 駐馬店 陜西 北京 荊門(mén) 昌都 黔西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一個(gè)mysql死鎖場(chǎng)景實(shí)例分析》,本文關(guān)鍵詞  一個(gè),mysql,死鎖,場(chǎng)景,實(shí)例分析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一個(gè)mysql死鎖場(chǎng)景實(shí)例分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于一個(gè)mysql死鎖場(chǎng)景實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品女同一区二区| 青青草原在线免费观看| 狠狠色狠狠色合久久伊人| 天天视频一区二区三区| eeuss鲁片一区二区三区在线观看| 可以免费看不卡的av网站| 岛国av在线播放| 国产精品沙发午睡系列| 99国产揄拍国产精品| 久久躁日日躁aaaaxxxx| 三日本三级少妇三级99| 国产成人涩涩涩视频在线观看| 久久精品99国产国产精| 免费电影网站在线视频观看福利| 国产免费久久久久| 色一情一乱一伦一区二区三区| 九九精品久久久| 久久久久久久国产| 亚洲嫩模很污视频| 久久久欧美精品sm网站| 中文字幕成人乱码在线电影| 色婷婷狠狠18| 在线观看麻豆蜜桃| 无码人妻精品一区二| 97caocao| 亚洲视频电影在线| 一区不卡视频| 欧美专区在线观看| 国产午夜精品一区二区三区嫩草| 精品黑人一区二区三区在线观看| 亚洲日本免费电影| 亚洲www啪成人一区二区麻豆| 国产欧美自拍视频| 毛片av一区二区| 日韩精品国产一区二区| 午夜精品久久久久久| 婷婷av一区二区三区| 男人天堂成人网| seseavlu视频在线| 日韩欧美在线中字| 农村妇女精品一区二区| 青青草手机视频在线观看| 欧美丰满老妇厨房牲生活| 视频一区中文| 色香蕉久久蜜桃| 中文字幕一区二区三区免费视频| 国产又粗又猛又色又| 乳奴隷乳フ辱julia在线观看| 国产成人精品综合久久久| 国产精品情侣呻吟对白视频| 国产偷久久久精品专区| 97人人爽人人| 国产在线观看成人| 巨胸喷奶水www久久久| 久久福利在线| av五月天在线| 免费观看在线综合色| 欧美视频中文一区二区三区在线观看| 免费视频一区二区三区在线观看| 五月天天在线| 免费av手机在线观看| 国产伊人精品在线| 亚洲人午夜精品天堂一二香蕉| 欧美一级在线看| 99精品视频国产| 日韩欧美2区| 日韩人妻精品一区二区三区| 久草在在线视频| 污黄视频在线看| 亚洲国产综合色| 亚洲国产精品成人久久综合一区| 青花影视在线观看免费高清| 国产精品18在线| 亚洲男人天堂2017| 久久这里有精品| 国产精品亚洲欧美导航| 欧美日韩视频免费观看| 午夜精品福利影院| 欧美性xxxxx| 中文字幕欧美精品日韩中文字幕| 黄色高清无遮挡| 国产成人无遮挡在线视频| 国产日韩三级| 亚洲电影成人成人影院| 日韩美女一区二区三区四区| 成人毛片18女人毛片| 一区二区三区入口| 国产在线www| 国产男女无遮挡| 国产网站av| 欧美一区二区三区四区五区六区| 成人在线视频免费播放| 写真片福利在线播放| 91精产国品一二三产区别沈先生| 日韩三级影视基地| 青青草免费在线视频观看| 又黄又爽又色的视频| 国产精品18久久久久网站| 国产精品九九九九| 欧美黄页免费| 久久久精品高清| 香蕉视频色版| 日韩视频在线永久播放| 久久综合网hezyo| 三级黄色小视频| 亚洲成av人片在线观看无码| 色综合久久88色综合天天6| 欧美成人一区二免费视频软件| b站大片免费直播| 久久久久久www| 亚洲精品美女久久| 神马久久一区二区三区| 色狠狠一区二区三区| 91高清视频在线| 亚洲国产aⅴ天堂久久| 激情六月婷婷综合| 国产91精品精华液一区二区三区| 丁香六月色婷婷| 国产v综合v亚洲欧美久久| 激情图区综合网| hs网站在线观看| 制服丝袜av成人在线看| 久久福利影视| 美女福利视频一区| 久热视线观看免费视频| 亚洲欧美一区二区三区孕妇| 国产偷人妻精品一区二区在线| 激情深爱一区二区| 精品国产二区在线| 波多野结衣家庭教师| 怡红院精品视频在线观看极品| 日韩伦理一区二区三区av在线| 粉嫩在线一区二区三区视频| 国产一区二区三区黄网站| 99re这里有精品| 日韩精品在线播放视频| 国产亚洲精品av| 国产精品第七影院| 999精品视频在线| 欧美大尺度在线观看| 91精品中文字幕一区二区三区| 日韩黄色高清视频| 久久久免费高清视频| 国内精品久久久久影院色| 日本特黄久久久高潮| 久久久久久久一区| 美女视频免费一区| 男女裸体影院高潮| 四虎成人免费影院| 亚洲欧美另类一区| 亚洲精华国产精华| 日本中文字幕电影在线免费观看| 久久久久久久久久网站| 亚洲日本在线观看视频| 午夜精品影视国产一区在线麻豆| 色综合 综合色| 在线观看日韩www视频免费| 米仓穗香在线观看| 国产另类自拍| 日韩中文一区二区三区| 国产女王在线**视频| 久久99久久99精品免观看软件| 四虎免费在线视频| 久久天天躁夜夜躁狠狠躁2022| 亚洲色偷偷综合亚洲av伊人| 91女人视频在线观看| 国产精品旅馆在线| 国精品一区二区| 秋霞蜜臀av久久电影网免费| 亚洲a级黄色片| 蜜臀av国内免费精品久久久夜夜| 麻豆av在线免费看| xxav国产精品美女主播| 亚洲精品一二区| 日韩精品中文字幕在线观看| 国产女人aaa级久久久级| 中文字幕人妻互换av久久| 男女污视频在线观看| 天堂成人在线视频| 蜜桃免费一区二区三区| 国产精品无码粉嫩小泬| 久久久欧美一区二区| 欧美videos另类| 亚洲乱色熟女一区二区三区| 日本精品久久久久| 日韩电影网1区2区| 午夜影院黄色片| 在线免费观看a视频| 五月天婷婷基地| 日本高清不卡中文字幕| 美女视频黄是免费| 国内精品久久久久影院 日本资源| 亚洲国产精品久久久久爰性色| 国产在线你懂得| 日韩av成人在线观看| 精品91久久久久| 人妻av一区二区| 黄色网址在线播放| 中文字幕久热| 亚洲黄色在线播放| 国产亚洲精品免费| 国产精品一区二区久久精品| 国产 日韩 欧美| 91综合久久一区二区| 国产三级短视频| 国产丝袜高跟一区| 一二三区不卡| 91精品国产91久久久久久一区二区| 色资源网在线观看| 爆操欧美孕妇| 久久久亚洲网站| 色777狠狠狠综合伊人| 国产一区二区高清视频| 国产成人精品亚洲线观看| 92看片淫黄大片看国产片| 麻豆成人免费视频| 欧亚av在线| 无码日韩精品一区二区免费| 欧美777四色影| 黄色动漫在线免费观看| 亚洲电影第三页| 亚洲精品一区二区网址| 亚洲免费网站| 国产精品一区二区无码对白| 国产在线精品国自产拍免费| 欧美日韩一区成人| 国产免费一区视频观看免费| av女优在线| 国产精品草莓在线免费观看| 国产亚洲欧美日韩美女| 亚洲免费不卡视频| 一区二区三区在线观看免费视频| 国内精品国产成人国产三级| 欧美 日韩 国产在线| 成人午夜毛片| 天天射天天色天天干| 欧美精品自拍视频| 亚洲女人天堂| 国产999精品久久| 极品粉嫩小仙女高潮喷水久久| 国产亚洲午夜| 亚洲国产成人精品综合99| 欧美成人明星100排名| 久久成人精品| 亚洲精品综合| 黄色av免费在线看| 顶级嫩模精品视频在线看| 超级碰碰久久| 日本妇女毛茸茸| 国产精成人品localhost| 日韩一二三区视频| 麻豆视频在线播放| 亚洲国产欧洲综合997久久| 国产精品无码午夜福利| 天堂精品高清1区2区3区| 99re热久久这里只有精品34| 精品视频无码一区二区三区| 清纯唯美亚洲激情| www一区二区| av毛片免费| 欧美高清激情视频| 国产伦精品一区二区三区照片91| 国产丝袜精品视频| 99久久精品无码一区二区毛片| 91av在线播放视频| www.亚洲精品| 爱豆国产剧免费观看大全剧苏畅| 亚洲传媒在线| 天天av天天爽| 天天av天天翘天天综合网| 日韩丝袜情趣美女图片| 国产夫妻在线观看| 亚洲韩国欧洲国产日产av| 欧美色图17p| 日本女优天堂99伊人| 91视频观看视频| 美女与牲口做爰视频在线观看| 91香蕉视频在线观看视频| 免费看一级大片| 欧美性猛交xxxx免费看漫画| 欧美日韩国产精品一区二区| 午夜精品国产精品大乳美女| 国产ts在线播放| 欧美风狂大伦交xxxx| 免费一级淫片aaa片毛片a级| 欧美精品一区二区三区很污很色的| 精品一区二区三区免费毛片爱| 国产伦精品一区二区三区视频免费| 91在线直播| 99久久久久国产精品免费| 亚洲警察之高压线| 欧美日韩国产另类一区| 在线成人www免费观看视频| 亚洲国产精品精华液2区45| 2017天天干夜夜操| 国产精品视频自拍| 国产一区二区三区四区在线观看| www.天堂av.com| 亚洲国产精品精华液2区45| 亚洲综合最新在线| 天天干夜夜操| 久久久久99精品成人片试看| 国产精品影视在线观看| 国产精品白嫩初高中害羞小美女| 深爱激情五月婷婷| 亚洲综合不卡| 欧美精品在线播放| 日韩黄色一级视频| 欧美人狂配大交3d怪物一区| 国产99re66在线视频| www.99色.com| 亚洲图片激情小说| 久久久久久久午夜| 欧美一区,二区| 麻豆成人小视频| 神马影院我不卡| 在线看免费毛片| 国产真实乱在线更新| 国产黄视频在线| 亚洲男人第一天堂| 亚洲人成亚洲人成在线观看| 欧美日韩999| 精品色999| 欧美一区视频| 久久久久999| 伊人激情综合| 一区精品久久| 欧美性受xxxx|