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

主頁 > 知識庫 > 當Mysql行鎖遇到復合主鍵與多列索引詳解

當Mysql行鎖遇到復合主鍵與多列索引詳解

熱門標簽:真人語音電話機器人 騰訊地圖標注提升 悟空科技電話機器人 美國反騷擾電話機器人 怎么在地圖標注位置生成圖片 銅陵防封電銷卡 400電話可以免費申請嗎 電銷卡外呼系統(tǒng)供應商 福建外呼系統(tǒng)定制化

背景

今天在配合其他項目組做系統(tǒng)壓測,過程中出現(xiàn)了偶發(fā)的死鎖問題。分析代碼后發(fā)現(xiàn)有復合主鍵的update情況,更新復合主鍵表時只使用了一個字段更新,同時在事務內(nèi)又有對該表的insert操作,結(jié)果出現(xiàn)了偶發(fā)的死鎖問題。

比如表t_lock_test中有兩個主鍵都為primary key(a,b) ,但是更新時卻通過update t_lock_test .. where a = ? ,然后該事務內(nèi)又有insert into t_lock_test values(...)

InnoDB中的鎖算法是Next-Key Locking,很可能是因為這個點導致的死鎖,但是復合主鍵下會出發(fā)Next-Key Locking嗎,那多列聯(lián)合unique索引下又會觸發(fā)Next-Key Locking嗎,書上并沒有找到答案,得實際測試一下。

InnoDB中的鎖

鎖是數(shù)據(jù)庫系統(tǒng)區(qū)別于文件系統(tǒng)的一個關鍵特性。鎖機制用于管理對共享資源的并發(fā)訪[插圖]。InnoDB存儲引擎會在行級別上對表數(shù)據(jù)上鎖,這固然不錯。不過InnoDB存儲引擎也會在數(shù)據(jù)庫內(nèi)部其他多個地方使用鎖,從而允許對多種不同資源提供并發(fā)訪問。例如,操作緩沖池中的LRU列表,刪除、添加、移動LRU列表中的元素,為了保證一致性,必須有鎖的介入。數(shù)據(jù)庫系統(tǒng)使用鎖是為了支持對共享資源進行并發(fā)訪問,提供數(shù)據(jù)的完整性和一致性。

由于使用鎖時基本都是在InnoDB存儲引擎下,所以跳過MyISAM,直接討論InnoDB。

鎖類型

InnoDB存儲引擎實現(xiàn)了如下兩種標準的行級鎖:

  • 共享鎖(S Lock),允許事務讀一行數(shù)據(jù)
  • 排它鎖(x lOCK),允許事務刪除或更新一條數(shù)據(jù)

如果一個事務T1已經(jīng)獲得了r的共享鎖,那么另外的事務T2可以立即獲得行r的共享鎖,因為讀取并沒有改變r的數(shù)據(jù),成這種情況為鎖兼容(Lock Compatible)。但若有其他的事務T3箱獲得行r的排它鎖,則比如等待T1、T2釋放行r上的共享鎖——這種情況稱為鎖不兼容。

排它鎖和共享鎖的兼容性:

\ X S
X 不兼容 不兼容
S 不兼容 兼容

InnoDB中對數(shù)據(jù)進行Update操作會產(chǎn)生行鎖,也可以顯示的添加行鎖(也就是平時所說的“悲觀鎖”)

select for update

鎖算法

InnoDB有3種行鎖的算法,其分別是:

Record Lock:單個行記錄上的鎖,就是字面意思的行鎖

Record Lock會鎖住索引記錄(注意這里說的是索引,因為InnoDB下主鍵索引即數(shù)據(jù)),ruguo InnoDB存儲引擎表在建立的時候沒有設置任何一個索引,那么這時對InnoDB存儲引擎會使用隱士的主鍵來進行鎖定。

Gap Lock:間隙鎖,鎖定一個范圍,但不包含記錄本身

Next-Key Lock:Gap Lock+Record Lock,鎖定一個范圍,并且鎖定記錄本身

Gap Lock和Next-Key Lock的鎖定區(qū)間劃分原則是一樣的。

例如一個索引有10/11/13和20這四個值,那么該索引被劃分的的區(qū)間為:

(-∞,10]
(10,11]
(11,13]
(13,20]
(20,+∞]

采用Next-Key Lock的鎖定技術稱為Next-Key Locking。其設計的目的是為了解決Phantom Problem,這將在下一小節(jié)中介紹。而利用這種鎖定技術,鎖定的不是單個值,而是一個范圍,是謂詞鎖(predict lock)的一種改進。

當查詢的索引含有唯一(unique)屬性時(主鍵索引,唯一索引)InnoDB存儲引擎會對Next-Key Lock優(yōu)化,將其降級為Record Lock,即僅鎖住索引本身,不是范圍。

下面來看一個輔助索引(非唯一索引)下的鎖示例:

CREATE TABLE z ( a INT, b INT, PRIMARY KEY(a), KEY(b) );

INSERT INTO z SELECT 1,1;
INSERT INTO z SELECT 3,1;
INSERT INTO z SELECT 5,3;
INSERT INTO z SELECT 7,6;
INSERT INTO z SELECT 10,8;

表z的列b是輔助索引,若果事務A中執(zhí)行:

SELECT * FROM z WHERE b=3 FOR UPDATE

由于b列是輔助索引,所以此時會使用Next-Key Locking算法,鎖定的范圍是(1,3]。特別注意,InnoDB還會對輔助索引的下一個值加上Gap Lock,即還有一個輔助索引范圍為(3,6]的鎖。因此,若在新事務B中運行以下SQL,都會被阻塞:

1. SELECT * FROM z WHERE a = 5 LOCK IN SHARE MODE;//S鎖
2. INSERT INTO z SELECT 4,2;
3. INSERT INTO z SELECT 6,5;

第1個SQL不能執(zhí)行,因為在事務A中執(zhí)行的SQL已經(jīng)對聚集索引中列a=5的值加上X鎖,因此執(zhí)行會被阻塞。

第2個SQL,主鍵插入4,沒有問題,但是插入的輔助索引值2在鎖定的范圍(1,3]中,因此執(zhí)行同樣會被阻塞。

第3個SQL,插入的主鍵6沒有被鎖定,5也不在范圍(1,3]之間。但插入的b列值5在另下一個Gap Lock范圍(3,6]中,故同樣需要等待。

而下面的SQL語句,由于不在Next-Key Lock和Gap Lock范圍內(nèi),不會被阻塞,可以立即執(zhí)行:

INSERT INTO z SELECT 8,6;
INSERT INTO z SELECT 2,0;
INSERT INTO z SELECT 6,7;

從上面的例子可以發(fā)現(xiàn),Gap Lock的作用是為了組織多個事務將數(shù)據(jù)插入到統(tǒng)一范圍內(nèi),這樣會導致幻讀問題(Phantom Problem)。例子中事務A已經(jīng)鎖定了b=3的記錄。若此時沒有Gap Lock鎖定(3,6],其他事務就可以插入索引b列為3的記錄,這會導致事務A中的用戶再次執(zhí)行同樣查詢會返回不同的記錄,即導致幻讀問題的產(chǎn)生。

用戶也可以通過以下兩種方式來顯示的關閉Gap Lock(但不推薦):

  • 將事務的隔離級別設置為READ COMMITED
  • 將參數(shù)innodb_locks_unsafe_for_binlog設置為1

在InnoDB中,對于Insert的操作,會檢查插入記錄的下一條記錄是否被鎖定,若已經(jīng)被鎖定,則不允許插入。對于上面的例子,事務A已經(jīng)鎖定了表z中b=3的記錄,即已經(jīng)鎖定了(1,3]的范圍,這時若在其他事務中執(zhí)行如下插入也會導致阻塞:

INSERT INTO z SELECT 2,0

因為在輔助索引列b上插入值為2的記錄時,會監(jiān)測到下一個記錄3已經(jīng)被索引,修改b列值后,就可以執(zhí)行了

INSERT INTO z SELECT 2,0

幻讀(Phantom Problem)

幻讀是指在同一事務下,連續(xù)執(zhí)行兩次同樣的SQL語句可能會導致不同的結(jié)果,第二次的SQL可能會返回之前不存在的行。

在默認的事務隔離級別(REPEATABLE READ)下,InnoDB存儲引擎采用Next—Key Locking機制來避免幻讀問題。

復(聯(lián))合主鍵與鎖

上面的鎖機制介紹(摘自《Mysql技術內(nèi)幕 InnoDB存儲引擎 第2版》),只是針對輔助索引和聚集索引,那么復合主鍵下行鎖的表現(xiàn)形式又是怎么樣呢?從書上并沒有找到答案,實際來測試一下。

首先創(chuàng)建一個復合主鍵的表

CREATE TABLE `composite_primary_lock_test` (
 `id1` int(255) NOT NULL,
 `id2` int(255) NOT NULL,
 PRIMARY KEY (`id1`,`id2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (10, 10);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (1, 8);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (3, 6);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (5, 6);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (3, 3);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (1, 1);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (5, 1);
INSERT INTO `composite_primary_lock_test`(`id1`, `id2`) VALUES (7, 1);

事務A先來查詢id2=6的列,并添加行鎖

select * from composite_primary_lock_test where id2 = 6 lock in share mode

此時的鎖會降級到Record Lock嗎?事務B Update一條Next-Key Lock范圍內(nèi)的數(shù)據(jù)(id1=1,id2=8)證明一下:

UPDATE `composite_primary_lock_test` SE WHERE `id1` = 1 AND `id2` = 8;

結(jié)果是UPDATE被阻塞了,那么再來試試加鎖時在where中把兩個主鍵都帶上:

select * from composite_primary_lock_test where id2 = 6 and id1 = 5 lock in share mode

執(zhí)行UPDATE

UPDATE `composite_primary_lock_test` SE WHERE `id1` = 1 AND `id2` = 8;

結(jié)果是UPDATE沒有被阻塞

上面加鎖的id2=6的數(shù)據(jù),不只1條,那么再試試對唯一的數(shù)據(jù)id2=8,只根據(jù)一個主鍵加鎖呢,會不會降級為行級鎖:

select * from composite_primary_lock_test where id2 = 8 lock in share mode;
UPDATE `composite_primary_lock_test` SE WHERE `id1` = 12 AND `id2` = 10;

結(jié)果也是被阻塞了,實驗證明:

復合主鍵下,如果加鎖時不帶上所有主鍵,InnoDB會使用Next-Key Locking算法,如果帶上所有主鍵,才會當作唯一索引處理,降級為Record Lock,只鎖當前記錄。

多列索引(聯(lián)合索引)與鎖

上面只驗證了復合主鍵下的鎖機制,那么多列索引呢,會不會和復合索引機制相同?多列unique索引呢?

新建一個測試表,并初始化數(shù)據(jù)

CREATE TABLE `multiple_idx_lock_test` (
 `id` int(255) NOT NULL,
 `idx1` int(255) NOT NULL,
 `idx2` int(255) DEFAULT NULL,
 PRIMARY KEY (`id`,`idx1`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

ALTER TABLE `multiple_idx_lock_test` 
ADD UNIQUE INDEX `idx_multi`(`idx1`, `idx2`) USING BTREE;

INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (1, 1, 1);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (5, 2, 2);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (7, 3, 3);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (4, 4, 4);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (2, 4, 5);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (3, 5, 5);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (8, 6, 5);
INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (6, 6, 6);

事務A查詢增加S鎖,查詢時僅使用idx1列,并遵循最左原則:

select * from multiple_idx_lock_test where idx1 = 6 lock in share mode;

現(xiàn)在插入一條Next-Key Lock范圍內(nèi)的數(shù)據(jù):

INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (9, 6, 7);

結(jié)果是被阻塞了,再試一遍通過多列索引中所有字段來加鎖:

select * from multiple_idx_lock_test where idx1 = 6 and idx2 = 6 lock in share mode;

插入一條Next-Key Lock范圍內(nèi)的數(shù)據(jù):

INSERT INTO `multiple_idx_lock_test`(`id`, `idx1`, `idx2`) VALUES (9, 6, 7);

結(jié)果是沒有被阻塞

由此可見,當使用多列唯一索引時,加鎖需要明確要鎖定的行(即加鎖時使用索引的所有列),InnoDB才會認為該條記錄為唯一值,鎖才會降級為Record Lock。否則會使用Next-Key Lock算法,鎖住范圍內(nèi)的數(shù)據(jù)。

總結(jié)

在使用Mysql中的鎖時要謹慎使用,尤其時更新/刪除數(shù)據(jù)時,盡量使用主鍵更新,如果在復合主鍵表下更新時,一定通過所有主鍵去更新,避免鎖范圍變大帶來的死鎖等問題。

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

參考

《Mysql技術內(nèi)幕 InnoDB存儲引擎 第2版》 - 姜承堯

您可能感興趣的文章:
  • Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析
  • 深入分析mysql為什么不推薦使用uuid或者雪花id作為主鍵
  • spring boot整合mybatis利用Mysql實現(xiàn)主鍵UUID的方法
  • Python3 操作 MySQL 插入一條數(shù)據(jù)并返回主鍵 id的實例
  • MySQL中主鍵與rowid的使用陷阱總結(jié)
  • 淺析MySQL 主鍵使用數(shù)字還是uuid查詢快

標簽:云浮 烏海 臨汾 武威 湖南 湖北 白銀 聊城

巨人網(wǎng)絡通訊聲明:本文標題《當Mysql行鎖遇到復合主鍵與多列索引詳解》,本文關鍵詞  當,Mysql,行鎖,遇到,復合,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《當Mysql行鎖遇到復合主鍵與多列索引詳解》相關的同類信息!
  • 本頁收集關于當Mysql行鎖遇到復合主鍵與多列索引詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    h网站免费看| 成人免费xxxxx在线视频| 91免费公开视频| 国产一区二区三区在线观看| 成人免费观看www在线| 成年人网站免费在线观看| 国模私拍一区二区国模曼安| 欧美成人二区| 日韩一区二区在线播放| www.国产福利| 亚洲人成电影网站色www| 成人免费淫片95视频观看网站| 自拍偷拍欧美激情| 丁香花视频在线观看| 激情亚洲小说| www..com国产| 午夜爽爽爽男女免费观看| www.国产在线观看| 国产激情二区| av影视在线| 国产亚洲精品久久久久久无几年桃| 国产一区在线免费观看| 五月天激情丁香| 91影院成人| 又粗又硬又爽国产视频| huan性巨大欧美| 国产成人三级一区二区在线观看一| 视频在线不卡免费观看| 国产1区2区3区在线| 国产精品不卡一区二区三区| 国产人与zoxxxx另类91| 欧美激情视频网址| 久久亚洲精品一区二区| 午夜精品网站| 成人免费视频网址| 亚洲国产99| 国产综合欧美| 男女爱爱视频网站| 国产黄色在线播放| 在线视频一区二区免费| 午夜精品久久久99热福利| 成人午夜精品无码区| 是的av在线| 久久国产中文字幕| 91传媒视频免费| 日韩精品人妻中文字幕| 999精品色在线播放| 19j韩国主播韩宝贝在线| 欧美大片免费观看| 69久久精品无码一区二区| www.99re7.com| 国产女人av| 国产精品1区2区在线观看| 成人免费性视频| 国产亚洲成精品久久| 亚洲三区在线观看无套内射| 人人妻人人澡人人爽| 一区二区欧美久久| 国产精品亚洲产品| 国产又粗又猛又爽又黄91| 亚洲女人18毛片水真多| 青青草国产精品| 999久久久国产精品| 在线观看91精品国产入口| 韩国精品一区二区| 91视频 - 88av| 99热这里只有精品在线| 美女做a视频| a级毛片免费高清视频| 人妻精品一区一区三区蜜桃91| 久久一区二区三区超碰国产精品| 亚洲av人无码激艳猛片服务器| 国产精品一区二三区| 91成人免费电影| 国产黄在线观看免费观看不卡| 日韩亚洲欧美一区二区| 亚洲精品精品一区| 欧美激情一区二区三区不卡| 天堂在线观看一卡二卡三卡四卡| 男女激情无遮挡| 久久人人爽人人人人片| 欧美日韩亚洲一区二| 国产欧美日韩综合精品一区二区| 亚洲熟女乱综合一区二区| 亚洲欧洲精品一区二区三区波多野1战4| 色欲欲www成人网站| 国产欧美精品久久久| 久久成人久久鬼色| 黄色片视频免费观看| 99久久精品免费看国产| 国产欧美激情| 日韩电影视频免费| 韩国三级成人在线| 亚洲欧洲日韩女同| 图片区亚洲欧美小说区| 国产成人亚洲欧美电影| 国产精品电影网站| 韩国三级大全久久网站| 波多野结衣一区二区| www.久久com| 免费观看欧美成人禁片| 97视频在线观看免费高清完整版在线观看| 欧美大尺度激情区在线播放| 久久视频免费在线观看| 暖暖成人免费视频| 国产91亚洲精品一区二区三区| 黄色一级视频片| 日本高清免费在线视频| 国产精品无码电影在线观看| 久久综合九色九九| 天堂v视频永久在线播放| 国产一区二区三区视频在线观看| 亚洲奶汁xxxx哺乳期| 国产情侣久久| gogo大胆日本视频一区| 伊人成综合网伊人222| 一道本无吗dⅴd在线播放一区| 羞羞网站在线观看| 国产成人精品免费视频大全软件| 日本一区二区三区dvd视频在线| 黄色片网站在线播放| 亚洲麻豆国产自偷在线| 国产免费成人在线| 色婷婷激情一区二区三区| 中国黄色a级片| 国产精品视频一| 波多野结衣一区二区三区| 好吊妞www.84com只有这里才有精品| 国产91沈先生在线播放| 日韩av免费看网站| 91亚洲国产成人久久精品| 欧美日韩免费看| 亚洲精品一区二区三区99| 91视频8mav| 色综合久久久久久久| 日韩精品一级中文字幕精品视频免费观看| 二级片在线观看| 久久精品在线视频| 欧洲美女免费图片一区| 26uuu国产电影一区二区| 91精品国产自产在线观看永久| www.久久com| 91麻豆蜜桃一区二区三区| 成年人视频网站| 成人污版视频| 高清在线视频不卡| 国模 一区 二区 三区| 91精品国产乱码久久久久久久| 亚洲女女做受ⅹxx高潮| 好吊色视频988gao在线观看| 日韩影视高清在线观看| 免费在线视频一区| 精品欧美视频| 又色又爽又黄无遮挡的免费视频| 美丽的小蜜桃4春潮| 国产精品视频一区视频二区| 国产午夜视频在线观看| 国产 日韩 欧美 在线| 特黄毛片在线观看| 精品一区二区在线欧美日韩| 欧美96在线丨欧| 国产成人免费高清| 4kfree性满足欧美hd18| 亚洲人成色777777精品音频| 美国一区二区三区在线播放| 激情综合网五月| 无码人妻精品一区二区50| 永久久久久久久| 日韩精品一区二区三区老鸭窝| 日韩精品免费在线视频观看| 7777精品久久久久久| 国产午夜久久| 久久久久天天天天| 精品国产中文字幕第一页| 91网站在线观看视频| 色又黄又爽网站www久久| 欧美成人精品一区二区男人看| 久久一区二区三区欧美亚洲| 欧美尤物美女在线| 欧美成人免费小视频| 国产精品久久综合av爱欲tv| 黄色美女久久久| 国内外成人免费激情视频| 青青操视频在线| av网站网址| 区一区二日本| 欧美三级免费观看| 欧美男同性恋视频网站| 在线国产福利网站| 久久99精品国产一区二区三区| 国产精品一区2区| 国产一区二区中文字幕免费看| 麻豆网站在线| 91免费看`日韩一区二区| 亚洲成人av在线| 天堂av中文在线观看| 性色av蜜臀av| 一区二区日韩视频| 亚洲欧美国产高清| 日韩精品中文字幕一区二区三区| 日韩欧美一区二区三区四区五区| 人妻人人澡人人添人人爽| 色综合久久88色综合天天看泰| 精品免费视频123区| 国产一区高清视频| 中文字幕在线观看播放| 欧美肉体xxxx裸体137大胆| 中文字幕手机在线视频| 色偷偷偷综合中文字幕;dd| 欧美性大战久久久久| 香蕉视频网站在线播放| 久久久久久久久久一区| 欧美黑人巨大xxx极品| 国产免费av电影| 国产精品久久久久久久久久久久久久久久久| 影音先锋5566资源站| 在线观看私人影院w| 五月天丁香社区| 久草热在线观看| 亚洲在线免费观看视频| 欧美一级黄色带| 中文字幕 国产精品| 国产精品久久久久久亚洲毛片| 97在线观看视频| 第四色在线一区二区| 欧美日韩mv| 亚洲黄色片视频| 综合久久五月天| 国产99精品在线观看| 亚洲自拍欧美精品| 国模吧一区二区| 亚洲日本va中文字幕久久| 日韩一区二区三区观看| 国产chinese中国hdxxxx| 久久精品日韩| 国产精品美女午夜爽爽| 亚洲无码精品在线观看| 东方伊人免费在线观看| 国产精品久久电影观看| 精品国产福利一区二区在线| 91欧美大片| 国产精品一区而去| 日韩成人久久| 亚洲精品国模| 日韩国产成人在线| 日韩精品一级二级| 欧洲av一区二区嗯嗯嗯啊| 欧美电影完整版在线观看| 日韩欧美一区在线| 免费毛片在线播放| 午夜视频福利在线观看| 国产精品一区二区三区高清在线| 三级毛片在线| 成人免费看片39| 青青草原在线免费观看视频| 日本成人片在线| 国产精品久久久久福利| 自拍视频第一页| 日本一卡2卡三卡4卡网站| 欧美日韩午夜视频在线观看| 国产美女精品| 亚洲精品自在久久| 任你弄在线视频免费观看| 日本亚洲欧洲无免费码在线| 日本aⅴ精品一区二区三区| 亚洲综合成人在线| 中文字幕制服丝袜在线| 精品捆绑调教一区二区三区| 石原莉奈一区二区三区在线观看| 久久久久久久久久久免费视频| 97国产suv精品一区二区62| 日韩一区二区免费高清| 色久欧美在线视频观看| 国产一区二区影视| 中文在线一区二区三区| 一本色道久久综合亚洲精品婷婷| 男女污视频在线观看| 一卡二卡三卡四卡五卡| 国产伦精品一区二区三区照片| 成人网欧美在线视频| 欧美一区二区三区成人片在线| bestiality新另类大全| 激情另类小说区图片区视频区| 精品日韩一区| 欧美视频在线不卡| 国内精品视频在线| xxxxx.日韩| 在线观看爽视频| 色一情一乱一区二区| 精品视频高清无人区区二区三区| 亚洲一区二区日本| 只有这里有精品| 成人影院网站ww555久久精品| 91久久久久国产一区二区| 91免费在线看| 精品人妻一区二区三区四区不卡| 进去里视频在线观看| 成人精品电影| 亚洲午夜久久久久久久| 625成人欧美午夜电影| 香蕉久久一区二区不卡无毒影院| 国产精品扒开腿做爽爽爽视频| 欧美人动与zoxxxx乱| 日韩高清第一页| 欧美黑人一区二区三区| 欧洲美女和动交zoz0z| 国模精品一区二区三区| www.中文字幕av| 精品毛片一区二区三区| 毛片在线能看| 久久精品国产第一区二区三区最新章节| 午夜探花在线观看| 欧美国产精品一区二区| www视频完整版| 嗯用力啊快一点好舒服小柔久久| 天天在线女人的天堂视频| 久久韩剧网电视剧| 美女在线一区| 午夜日韩在线| 成人激情电影在线看| 懂色av一区二区三区免费看| 制服.丝袜.亚洲.另类.中文| 中文字幕在线看| 国产精品久久久久久久久毛片| 中国女人内谢25xxxx免费视频| 国产高清久久久| 一区二区在线免费视频| 日本一道在线观看|