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

騰訊一面:MySQL的共享鎖和獨占鎖

數(shù)據(jù)庫 MySQL
理解共享鎖(S鎖)和排他鎖(X鎖)的工作機制及其交互關系對于掌握MySQL的并發(fā)控制和鎖機制非常重要,因此,今天就來一起聊聊MySQL的共享鎖和排他鎖。

在InnoDB存儲引擎中,行級別鎖有兩種類型:共享鎖(S鎖)和排他鎖(X鎖),理解這 2種鎖的工作機制及其交互關系對于掌握MySQL的并發(fā)控制和鎖機制非常重要,因此,今天就來一起聊聊MySQL的共享鎖和排他鎖。

申明:本文基于 MySQL 8.0.30 版本,InnoDB引擎。

一、共享鎖

1.什么是共享鎖?

共享鎖(shared lock,S鎖),也叫讀鎖。它是指當對象被鎖定時,允許多個事務同時讀取該資源,也允許其它事務從該對象上再次獲取共享鎖,但不能對該對象進行寫操作。

2.加鎖方式

共享鎖一般通過下面 2種方式進行加鎖:

# 方式1
select ... lock in share mode;

# 方式2
select ... for share;

如果事務T1 持有某對象的共享(S)鎖,則事務T2 需要再次獲取該對象的鎖時,會出現(xiàn)下面兩種情況:

  • 如果T2 獲取該對象的共享(S)鎖,則可以立即獲取鎖;
  • 如果T2 獲取該對象的排他(X)鎖,則無法獲取鎖;

二、舉例說明

為了更好地理解上述兩種情況,這里分別以下面的執(zhí)行順序流對InnoDB存儲引擎和MyISAM存儲引擎進行驗證:

1.InnoDB存儲引擎

創(chuàng)建一張用戶user表,表結構如下:

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

(1) 給行加共享鎖

這里給user表中id=3行加共享鎖為例,執(zhí)行順序流如下表:

加鎖線程  sessionA

線程B  sessionB

線程C  sessionC

#開啟事務

begin;



#給id=3的行加共享鎖

select * from user

where id = 3 lock in share mode;




#獲取id=3行的共享鎖成功

#select操作執(zhí)行成功

select * from user where id=3;

#獲取id=3行的共享鎖成功

#select操作執(zhí)行成功

select * from user where id=3;


#獲取id=3行的排它鎖失敗

#delete操作被堵塞

delete from user where id = 3;

#獲取id=4行的排它鎖成功

#delete操作執(zhí)行成功

delete from user where id = 4;

#提交事務

#id=3的行上共享鎖被釋放

commit;




#獲取id=3行的排它鎖成功

#被堵塞的delete操作執(zhí)行成功

delete from user where id = 3;


示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)對user中id=3這行添加共享鎖后,事務B(sessionB)和事務C(sessionC)都可以獲取user表的共享鎖,也就是select操作能成功執(zhí)行,但是事務B(SessionB)獲取user表id=3的寫鎖失敗,即delete where id=3操作被阻塞,而事務C(sessionC)獲取user表id=4的寫鎖成功,即delete where id=4操作成功;

(2) 給表加共享鎖

這里通過lock in share mode方式給user整張表添加共享鎖,執(zhí)行順序流如下表:

加鎖線程   sessionA

線程B    sessionB

#開啟事務

begin;


#對user整張表加共享鎖

select * from user lock in share mode;



#成功獲取user表的共享鎖,select操作成功執(zhí)行

select * from user;


#獲取user表的排他鎖失敗,操作被堵塞

delete from user where id = 1;

#提交事務

#user表的共享鎖被釋放

commit;



#獲取user表上排他鎖成功,delete操作執(zhí)行成功

delete from user where id = 1;

示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)對user整張表添加共享鎖后,事務B(sessionB)可以獲取user表的共享鎖,也就是select操作能成功執(zhí)行,但是事務B(SessionB)獲取user表的寫鎖失敗,即delete操作被阻塞。

所以,盡管共享鎖(S鎖)是InnoDB存儲引擎的行級別鎖,但是一旦它作用到整張表時,其實是對表中所有的行加共享鎖。

2.MyISAM引擎

創(chuàng)建一張用戶person表,表結構如下:

CREATE TABLE `person` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(25) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_name` (`name`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_

給行加共享鎖

這里給person表的id=3行加共享鎖為例,執(zhí)行順序流如下表:

加鎖線程  sessionA

線程B  sessionB

#開啟事務

begin;


#給id=3的行加共享鎖

select * from person where id = 3 lock in share mode;



#獲取id=3行的共享鎖成功

#select操作成功

select * from person where id=3;


#獲取id=3行的排它鎖成功

#update操作成功

update person set name='name3xx' user where id = 3;


select * from person where id=3;

#提交事務

#id=3行上共享鎖被釋放

commit;


示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)對person中id=3這行添加共享鎖后,事務B(sessionB)既能獲取person表的共享鎖,也能獲取person表id=3的寫鎖,即select和update where id=3都操作成功;

因此,在MyISAM引擎中其實不存在共享鎖。

3.總結

通過上述示例及其運行結果可以看出:

共享鎖是InnoDB存儲引擎的行級鎖,在MyISAM存儲引擎中不存在;

共享鎖是盡管是行級別鎖,但是當鎖加在整個表時(表中所有的行,一種特殊的行),排他鎖也會在表級別生效;

三、排它鎖

1.什么是排他鎖?

排它鎖(exclusive lock,X鎖),也叫寫鎖或者獨占鎖,主要是防止其它事務和當前加鎖事務鎖定同一對象,同一對象主要有兩層含義:

  • 當排他鎖加在表上,則其它事務無法對該表進行insert,update,delete,alter,drop等更新操作;
  • 當排他鎖加在行上,則其它事務無法對該行進行insert,update,delete,alter,drop等更新操作;

2.加鎖方式

排他鎖加鎖的方式一般有 2種:顯式加鎖和隱式加鎖,如下:

-- 顯式加鎖
select ... for update;

-- 隱式加鎖,是 MySQL內部自動加鎖

為了更好的說明排他鎖,這里以下面的執(zhí)行順序流來進行驗證,用戶user表的結構還是和上面的一樣:

四、舉例說明

為了更好地理解上述兩種情況,這里分別以下面的執(zhí)行順序流對InnoDB存儲引擎和MyISAM存儲引擎進行驗證:

1.InnoDB存儲引擎

(1) 給行加排他鎖

這里通過for update顯式給user表中id=6行加排他鎖為例,執(zhí)行順序流如下表:

加鎖線程  sessionA

線程B  sessionB

線程C  sessionC

#開啟事務

begin;



#給id=6的行加排他鎖

select * from user

where id = 6 for update;




#獲取id=6的共享鎖成功

select * from user where id=6;

#獲取id=6的共享鎖成功

select * from user where id=6;


#獲取id=6的排它鎖失敗

delete from user where id = 6;

#獲取id=7的排它鎖成功

delete from user where id = 7;

#提交事務

#user表id=6的行上排他鎖被釋放

commit;




#獲取id=6的排它鎖成功

#被堵塞的delete操作執(zhí)行成功

delete from user where id = 6;


示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)對user中id=6這行添加共享鎖后,事務B(sessionB)和事務C(sessionC)都可以獲取user表的共享鎖,也就是select操作能成功執(zhí)行,但是事務B(SessionB)獲取user表id=6的寫鎖失敗,即delete where id=6操作被阻塞,而事務C(sessionC)獲取user表id=7的寫鎖成功,即delete where id=7操作成功;

(2) 給表加排他鎖

這里通過for update顯式方式給user整張表添加排他鎖,執(zhí)行順序流如下表:

加鎖線程   sessionA

線程B    sessionB

#開啟事務 begin;


#對user整張表加排他鎖

select * from user for update;



#獲取user表上的共享鎖成功,select執(zhí)行成功

select * from user;


#獲取user表上的排他鎖失敗,操作被堵塞

delete from user where id=3;

#提交事務

#user表上的排他被釋放

commit;



#獲取user表上的排他鎖成功,操作執(zhí)行成功

delete from user where id = 3;

示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)對user整張表加排他鎖后,事務B(sessionB)可以獲取user表的共享鎖,也就是select操作能成功執(zhí)行,但是事務B(SessionB)獲取user表的排他鎖失敗,即delete操作被阻塞;

所以,盡管排他鎖(X鎖)是InnoDB存儲引擎的行級別鎖,但是一旦它作用到整張表時,其實是對表中所有的行加排他鎖。

2.MySQL 隱式加排他鎖

這里通過MySQL隱式給user的id=6行添加排他鎖,執(zhí)行順序流如下表

加鎖線程   sessionA

線程B    sessionB

#開啟事務 begin;


#MySQL隱式給id=6行加排他鎖

update user set name = 'name6' where id =6;



#獲取id=6的共享鎖失敗,select執(zhí)行被阻塞

select * from user where id = 6 lock in share mode;

#提交事務

#id=6的排他被釋放

commit;



#獲取id=6表上的共享鎖成功,select執(zhí)行成功;

示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)執(zhí)行update where id=6時,MySQL會隱式加排他鎖,事務B(sessionB)在lock in share mode模式下獲取user表id=6的共享鎖失敗,也就是select操作能成功被阻塞;

3.MyISAM引擎

MySQL 隱式加排他鎖

這里通過MySQL隱式給person的id=4行添加排他鎖,執(zhí)行順序流如下表:

加鎖線程   sessionA

線程B    sessionB

#開啟事務 begin;


#MySQL不會隱式給id=4行加排他鎖

update person set name = 'name4' where id =4;



#獲取id=4的共享鎖成功,select執(zhí)行成功

select * from user where id=4 lock in share mode;


#獲取id=4表上的共享鎖成功,select執(zhí)行成功;

#提交事務 id=4的排他被釋放

commit;


示例執(zhí)行結果圖如下:

通過上述的示例執(zhí)行結果可以看出:當事務A(sessionA)執(zhí)行update where id=6時,MySQL不會隱式加排他鎖,事務B(sessionB)既能獲取id=4的共享鎖,也能獲取id=4的排他鎖;

因此,在MyISAM引擎中其實不存在排他鎖。

4.總結

通過上述 3個示例及其運行結果可以看出:排他鎖有表級別共享鎖和行級別共享鎖和自動鎖機制 3種 表級別共享鎖:

  • 鎖定整個表,排他鎖也會在表級別生效;
  • 行級別共享鎖:鎖定特定行,排他鎖也會在行級別生效;
  • 自動鎖機制:根據(jù)操作是表級別還行級別自動加對應的鎖;

五、共享鎖和排他鎖的兼容性矩陣

為了更好地理解共享鎖和排他鎖的互斥關系,可以參考以下兼容性矩陣:


無鎖

共享鎖

排他鎖

無鎖

允許

允許

允許

共享鎖

允許

允許

阻塞

排他鎖

允許

阻塞

阻塞

從上述矩陣可以看出:

  • 無鎖狀態(tài)下可以獲取任何類型的鎖
  • 共享鎖狀態(tài)下可以繼續(xù)獲取共享鎖,但不能獲取排他鎖
  • 排他鎖狀態(tài)下不能獲取任何其他鎖

六、總結

  • 共享鎖(S鎖)和排他鎖(X鎖)是InnoDB存儲引擎中的 2種行級別鎖,MyISAM存儲引擎不存在。
  • 盡管共享鎖(S 鎖)和排他鎖(X 鎖)是行級鎖,但是當他們加到表級別時,對表所有行都生效,這樣看上去等同表級鎖
  • 共享鎖(S 鎖)允許多個事務同時讀取數(shù)據(jù),但不允許修改數(shù)據(jù)。多個事務可以同時持有共享鎖
  • 排他鎖(X 鎖)允許一個事務修改數(shù)據(jù)。只有一個事務可以持有排他鎖,并且在它釋放鎖之前,其他事務不能獲得任何類型的鎖
責任編輯:趙寧寧 來源: 猿java
相關推薦

2022-02-21 15:01:45

MySQL共享鎖獨占鎖

2024-01-29 07:43:42

Java獨占鎖共享鎖

2018-07-31 10:10:06

MySQLInnoDB死鎖

2025-06-04 02:55:00

MySQL意向鎖記錄鎖

2024-05-15 09:23:45

MySQL排他鎖共享鎖

2019-01-04 11:18:35

獨享鎖共享鎖非公平鎖

2025-10-09 04:00:00

2022-07-26 07:51:40

ThreadRunnableFuture

2022-05-11 22:15:51

云計算云平臺

2024-06-11 00:01:00

并發(fā)validate場景

2020-09-19 17:46:20

React Hooks開發(fā)函數(shù)

2009-07-30 14:38:36

云計算

2025-10-31 02:00:00

2011-12-23 09:43:15

開源開放

2011-12-22 20:53:40

Android

2020-10-20 13:50:47

MySQL數(shù)據(jù)庫

2020-09-03 11:10:34

MySQL數(shù)據(jù)庫

2024-05-15 16:41:57

進程IO文件

2024-10-30 16:12:14

2024-11-29 07:38:12

MySQL數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號

色婷婷一区二区三区在线观看| 国产欧美中文字幕| 国产高清成人久久| 日本成人伦理电影| a免费在线观看| 日韩精品免费一区二区在线观看| 欧美人伦禁忌dvd放荡欲情| 成人午夜视频免费观看| 日本私人网站在线观看| 激情久久五月天| 91av免费观看91av精品在线| 蜜桃av.com| 国产精品白丝av嫩草影院| 在线国产电影不卡| 亚洲国产精品无码av| 9191在线| 99精品国产热久久91蜜凸| 国产日韩精品综合网站| 日韩不卡视频在线| 女人香蕉久久**毛片精品| 亚洲欧美日韩精品| 免费黄视频在线观看| 成人网ww555视频免费看| 亚洲一区二区成人在线观看| 亚洲欧洲国产精品久久| 无码精品人妻一区二区三区影院 | 99久久免费视频.com| 国产97在线|日韩| 国产在线欧美在线| 91成人免费| 一区二区在线免费视频| 精品成人一区二区三区四区| 亚洲自拍偷拍福利| 波多野结衣黄色| 亚洲看片一区| 欧美成人精品在线观看| 亚洲一级片在线播放| 全国精品免费看| 日韩精品一区二区三区swag| 999久久久精品视频| 欧美三级精品| 日韩欧中文字幕| 噜噜噜久久亚洲精品国产品麻豆| 欧美草逼视频| 亚洲精品中文在线| 99久re热视频精品98| 亚洲天天影视| 亚洲国产精品成人综合色在线婷婷 | 亚洲精品天天看| 日韩av无码一区二区三区不卡| 日本少妇精品亚洲第一区| 欧美顶级少妇做爰| 黄色一级片免费的| 日本久久一区| 欧美日韩一区 二区 三区 久久精品| 国产精品97在线| 麻豆免费版在线观看| 亚洲超碰精品一区二区| 精品无码一区二区三区在线| 四虎亚洲精品| 亚洲成人自拍偷拍| 3d成人h动漫网站入口| 国产精品网站入口| 中文字幕av久久爽| 免费成人av在线| 国产美女搞久久| 国产精品久久久久久在线| 九色综合狠狠综合久久| 国产精品视频精品视频| 97精品人妻一区二区三区在线 | 97精品久久久中文字幕免费| 国产精品不卡av| 亚洲激情综合| 欧美性视频精品| 中文字幕一区二区人妻电影| 免费精品视频在线| 亚洲一区中文字幕在线观看| 亚洲第一成年人网站| 97久久超碰国产精品| 欧美在线播放一区二区| 日本激情视频在线观看| 亚洲精品国产精品乱码不99| 男女啪啪免费视频网站| 亚洲播播91| 在线成人小视频| 99热超碰在线| jvid福利在线一区二区| 久久精品国产96久久久香蕉| 久久久国产成人| 国产精品视频久久一区| 国产精品午夜一区二区欲梦| 精品久久国产视频| 91视频在线看| 在线不卡视频一区二区| 国产蜜臀在线| 欧美综合久久久| 潘金莲一级淫片aaaaaaa| 亚洲三级性片| 久久精品国产69国产精品亚洲| 久久久久久久久精| 久久一区中文字幕| 亚洲一区二区三区777| 欧美一区二区三区成人片在线| 久久亚洲一区二区三区明星换脸| 日韩亚洲欧美在线观看| 免费看欧美黑人毛片| 欧美粗大gay| 日韩视频在线永久播放| 91精品人妻一区二区| 亚洲精品tv久久久久久久久久| 久久久欧美精品| 中文字幕免费高清在线观看| 99久久精品国产麻豆演员表| 四虎免费在线观看视频| 自拍偷拍欧美视频| 欧美成人精品3d动漫h| 亚洲色图第四色| 亚洲国产高清一区| 91沈先生在线观看| 国产视频第一页在线观看| 亚洲一区中文日韩| 中日韩av在线播放| 欧美日韩国产一区二区三区不卡 | 日韩亚洲欧美一区二区三区| 中文字幕免费在线看线人动作大片| 国产精品99免费看| 成人av在线亚洲| 国产精品秘入口| 午夜a成v人精品| 日本人dh亚洲人ⅹxx| 久久国产成人午夜av影院宅| 国产v综合ⅴ日韩v欧美大片| 理论片中文字幕| 亚洲免费成人av| 182午夜在线观看| 亚洲激情播播| 91超碰中文字幕久久精品| 国产高清视频免费观看| 综合中文字幕亚洲| 在线观看免费的av| 99久久夜色精品国产亚洲1000部| 日本人成精品视频在线| 日本韩国一区| 午夜精品久久一牛影视| 在线观看亚洲免费视频| 国产精品99一区二区| y111111国产精品久久婷婷| 好操啊在线观看免费视频| 欧美日韩国产免费| 国产精品爱久久久久久久| 黄色激情视频在线观看| 成人a免费在线看| 大胆欧美熟妇xx| 91蜜桃臀久久一区二区| 欧美人在线观看| 亚洲精品国产手机| 亚洲v日本v欧美v久久精品| 四虎成人免费视频| 亚洲国产高清一区| 久久婷婷人人澡人人喊人人爽| 大桥未久在线视频| 日韩久久免费视频| 亚洲欧美一二三区| 中文字幕第一区综合| 手机av在线网| 欧美韩日精品| 国产伦精品一区二区三区| 2021天堂中文幕一二区在线观| 亚洲国产欧美在线成人app| 国产又黄又猛又粗又爽| 国产欧美一区视频| 看看黄色一级片| 欧美日韩国产免费观看| 久久久久se| 欧美v亚洲v综合v国产v仙踪林| 欧美成人午夜剧场免费观看| 日韩专区第一页| 91精品办公室少妇高潮对白| 蜜桃av免费观看| 国产成人午夜精品影院观看视频| 亚洲国产精品无码av| 蜜桃tv一区二区三区| 国产精品视频xxx| 26uuu亚洲电影在线观看| 亚洲福利小视频| 中文字幕乱码人妻二区三区| 亚洲乱码日产精品bd| 亚洲中文字幕无码av| 奇米影视7777精品一区二区| 在线观看18视频网站| 精品资源在线| 国产原创欧美精品| free性欧美16hd| 色老头一区二区三区| 精品国产亚洲av麻豆| 日韩欧美成人精品| 日韩精品一区二区亚洲av性色| 99国产精品久| 国产成人美女视频| 国产精品视区| 欧美日韩另类在线| 亚洲欧美久久久久| 99av国产精品欲麻豆| 亚洲第一在线综合在线| 高潮按摩久久久久久av免费| 国产精品第一第二| 免费男女羞羞的视频网站在线观看| 亚洲无限av看| 风流少妇一区二区三区91| 欧美日韩在线播放一区| 免费看日韩毛片| 亚洲欧美激情视频在线观看一区二区三区 | 激情伦成人综合小说| 久久日本片精品aaaaa国产| 97精品国产97久久久久久| www国产在线观看| 国产小视频国产精品| 亚洲毛片欧洲毛片国产一品色| 在线精品视频一区二区三四 | 欧美成人69av| 亚洲欧洲精品一区二区三区波多野1战4 | 超碰在线无需免费| 亚洲人a成www在线影院| 亚洲精品视频91| 欧美精品第一页| 国产污视频网站| 精品久久久久久久久中文字幕| 91在线播放观看| 国产精品视频一二三| 无码一区二区精品| 国产精品一区久久久久| 亚洲国产成人va在线观看麻豆| 香蕉亚洲视频| 日本一道本久久| 亚洲国产午夜| 好吊色视频988gao在线观看| 色狮一区二区三区四区视频| 欧美亚洲一级二级| 午夜欧洲一区| 久久久久九九九| 农村少妇一区二区三区四区五区| 成人影片在线播放| 日韩视频一二区| 99国产高清| 日韩精品免费视频一区二区三区 | 色哟哟入口国产精品| 日韩福利一区二区| 亚洲激情视频在线观看| 欧美一级性视频| 欧美精品一区二区三区四区 | 久久成人18免费观看| 日本爱爱免费视频| 日韩国产高清在线| 日韩一级理论片| 日韩精品成人一区二区在线| www.xxx亚洲| 日韩 欧美一区二区三区| wwwwww.色| 久久精品国产网站| 婷婷中文字幕在线观看| 国产精品资源在线看| 久久黄色一级视频| 99天天综合性| 国产精品成人一区二区三区电影毛片| 久久精品在线免费观看| 亚洲aaa视频| 亚洲精品国久久99热| 久久精品国产亚洲av高清色欲| 午夜久久久久久| 久久精品五月天| 欧美精品日日鲁夜夜添| 亚洲国产中文字幕在线| 日韩av在线影院| 第一页在线观看| 久久亚洲国产精品成人av秋霞| 日本高清成人vr专区| 88国产精品欧美一区二区三区| 亚洲人体影院| 国产在线精品一区免费香蕉| 成人影院中文字幕| 欧美区高清在线| 四季av在线一区二区三区 | 天堂av最新在线| 欧美专区国产专区| 日本精品久久| 精品高清视频| 久久高清精品| 久久精品国产sm调教网站演员| 久热re这里精品视频在线6| 色综合色综合色综合色综合| 国产麻豆精品一区二区| 草草地址线路①屁屁影院成人| 国产精品欧美极品| 国产在线综合网| 精品视频色一区| 成人免费公开视频| 亚洲欧美中文另类| 97在线免费公开视频| 亚洲片区在线| 色乱码一区二区三区在线| 丁香天五香天堂综合| 日本污视频网站| 亚洲成人av在线电影| 伊人影院中文字幕| 日韩电影中文字幕在线| 久操视频在线免费播放| 欧美精品videos另类日本| 全球最大av网站久久| 国产欧美日韩在线播放| 日韩国产欧美| 免费无码国产v片在线观看| 国产精品系列在线播放| 国产精品国产三级国产专业不| 亚洲曰韩产成在线| 97成人在线观看| 伊人久久久久久久久久久久久| 538在线观看| 99re在线国产| 91精品国产乱码久久久久久| 久久综合久久色| 波多野结衣一区二区三区| 色婷婷在线视频观看| 欧美三级三级三级爽爽爽| 视频在线观看你懂的| 国产综合在线看| 欧美中文高清| 国产免费色视频| 日本大胆欧美人术艺术动态| 青青草成人免费视频| 一区二区高清视频在线观看| 一级α片免费看刺激高潮视频| 亚洲老司机av| 天堂av中文在线观看| 国产精品免费视频一区二区| 国产精品麻豆久久| 奇米影视四色在线| 国产女人aaa级久久久级| 久久99国产综合精品免费| 亚洲第一福利网| 日本孕妇大胆孕交无码| 成人免费看片网站| 亚洲欧美文学| 亚洲精品乱码久久久久久9色| 亚洲欧洲综合另类在线 | 日韩精品在线网站| а√中文在线8| 91久久中文字幕| 性欧美69xoxoxoxo| 亚洲五月激情网| 亚洲精品一卡二卡| 成人h动漫精品一区二区无码| 久久综合伊人77777| 免费一级欧美在线大片| 特级西西人体www高清大胆| 国产精品一区二区在线观看不卡| 极品久久久久久| 欧美一区二区成人| 国产精品—色呦呦| 久久精品成人一区二区三区蜜臀| 一本久道久久久| 91成人在线免费视频| 成人影院av| 亚洲精品免费网站| 亚洲视频碰碰| 欧美做受喷浆在线观看| 色综合网站在线| 又爽又大又黄a级毛片在线视频| 成人国产精品一区二区| 亚洲一区色图| 又黄又爽的网站| 色婷婷狠狠综合| 免费在线你懂的| 成人在线视频网址| 亚洲免费一区二区| 国产三级黄色片| 日韩一级视频免费观看在线| 国产高清中文字幕在线| 日韩高清av| 国产成人综合在线播放| 国产精品久久久久久99| 在线观看欧美日韩| 免费看一区二区三区| 日韩av片在线看| 国产精品久久久久婷婷二区次| 精品国产亚洲一区二区麻豆| 欧美一区二区三区图| 日韩综合网站| 国产一线在线观看| 欧美中文字幕一区二区三区亚洲| 在线观看三级视频| 秋霞久久久久久一区二区| 国内成人自拍视频| 国产精品乱子伦| 久久精品国产视频| 欧美日韩大片免费观看| 亚洲欧美自偷自拍另类| 亚洲一区二区四区蜜桃| 成人影院免费观看| 国产精品视频入口| 久久精品二区亚洲w码|