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

MySQL 不同隔離級別,都使用了什么鎖?

數據庫 MySQL
今天我們是從隔離級別這個角度來看鎖的應用,但什么時候會用上記錄鎖?什么時候會用上間隙鎖?

大家好,我是樹哥。

如果查詢或更新時的數據特別多,是否從行鎖會升級為表鎖?

此外,還有朋友留言說到:不同的隔離級別可能會用不同的鎖,可以結合隔離級別來聊聊。其實上面雖然是兩個問題,但如果你把不同隔離級別下的加鎖問題搞清楚了,那么第一個問題自然也清楚了。

今天,就讓我帶著大家來聊聊不同隔離級別下,都會使用什么鎖!

圖片

文章思維導圖

說透 MySQL 鎖機制

在深入探討不同隔離級別的鎖內容之前,我們需要先回顧一下關于 MySQL 鎖的本質以及一些基礎內容,這樣有利于我們后續的理解。

對于 MySQL 來說,如果只支持串行訪問的話,那么其效率會非常低。因此,為了提高數據庫的運行效率,MySQL 需要支持并發訪問。

而在并發訪問的情況下,會發生各種各樣的問題,例如:臟讀、不可重復讀、幻讀等問題。為了解決這些問題,就出現了事務隔離級別。

本質上,事務隔離級別就是為了解決并發訪問下的數據一致性問題的。不同的事務隔離級別,解決了不同程度的數據一致性。

而我們所說的全局鎖、表鎖、行級鎖等等,其實都是事務隔離級別的具體實現。而 MVCC、意向鎖,則是一些局部的性能優化。

上面這段話,基本上就是對 MySQL 鎖機制很透徹的理解。當我們懂了這些概念之間的關系之后,我們才能更加清晰地理解知識點。

事務隔離級別

相信大家都知道,MySQL 的事務隔離級別有如下 4 個,分別是:

  • 讀未提交
  • 讀已提交(READ COMMITTED)
  • 可重復讀(REPEATABLE READ)
  • 串行化

讀未提交,可以讀取到其他事務還沒提交的數據。 在這個隔離級別下,由于可以讀取到未提交的值,因此會產生「臟讀」問題。舉個例子:A 事務更新了 price 為 30,但還未提交。此時 B 事務讀取到了 price 為 30,但后續 A 事務回滾了,那么 B 事務讀取到的 price 就是錯的(臟的)。

讀已提交,只能讀到其他事務已經提交的數據。 這個隔離級別解決了臟讀的問題,不會讀到未提交的值,但是卻會產生「不可重復讀」問題。「不可重復讀」指的是在同一個事務范圍內,前后兩次讀取到的數據不一樣。舉個例子:A 事務第 1 次讀取了 price 為 10。

隨后 B 事務將 price 更新為 20,接著 A 事務再次讀取 price 為 30。A 事務前后兩次讀取到的數據是不一樣的,這就是不可重復讀。

思考題:MySQL 讀已提交可以解決臟讀問題,那它具體是如何解決的?

可重復讀,指的是同一事務范圍內讀取到的數據是一致的。 這個隔離級別解決了「不可重復讀」的問題,只要是在同一事務范圍內,那么讀取到的數據就是一樣的。對于 MySQL Innodb 來說,其實通過 MVCC 來實現的。但「可重復讀」隔離級別會產生幻讀問題,即對于某個范圍的數據讀取,前后兩次可能讀取到不同的結果。

舉個例子:數據庫中有 price 為 1、3、5 三個商品,此時 A 事務查詢 price < 10 的商品,查詢到了 3 個商品。隨后 B 事務插入了一條 price 為 7 的商品。接著 A 事務繼續查詢 price < 10 的商品,這次卻查詢到了 4 個商品。

可以看到「幻讀」與「不可重復讀」是有些類似的,只是「不可重復讀」更多指的是某一條記錄,而「幻讀」指的則是某個范圍數據。對于 MySQL Innodb 來說,其通過行級鎖級別的 Gap Lock 解決了幻讀的問題。

串行化,指的是所有事務串行執行。 這個就最簡單了,不用去競爭,一個個去執行,但是效率也是最低的。

MySQL 鎖類型

在 MySQL 中有全局鎖、表級鎖、行級鎖三種類型,其中比較關鍵的是表級鎖盒行級鎖。

對于表級鎖而言,其又分為表鎖、元數據鎖、意向鎖三種。對于元數據鎖而言,基本上都是數據庫自行操作,我們無須關心。在 Innodb 存儲存儲引擎中,表鎖也用得比較少。

對于行級鎖而言,其又記錄鎖、間隙鎖、Next-Key 鎖。記錄鎖就是某個索引記錄的鎖,間隙鎖就是兩個索引記錄之間的空隙鎖,Next-Key 則是前面兩者的結合。

在 Innodb 存儲引擎中,我們可以通過下面的命令來查詢鎖的情況。

// 開啟鎖的日志
set global innodb_status_output_locks=on;
// 查看innodb引擎的信息(包含鎖的信息)
show engine innodb status\G;

查詢結果一般如下圖所示:

圖片

上面幾種不同類型的鎖,其各自的關鍵字為:

  • 表級的意向排它鎖(IX):lock mode IX。
  • 表級的插入意向鎖(LOCK_INSERT_INTENTION): lock_mode X locks gap before rec insert intention
  • 行級的記錄鎖(LOCK_REC_NOT_GAP): lock_mode X locks rec but not gap
  • 行級的間隙鎖(LOCK_GAP): lock_mode X locks gap before rec
  • 行級的 Next-key 鎖(LOCK_ORNIDARY): lock_mode X

通過上面的命令,我們就可以知道不同的事務隔離級別使用了哪些鎖了。

接下來,我們一個個來看看:不同事務隔離級別,都使用了哪些鎖來實現。

讀未提交

首先,我們創建一個 price_test 表并插入一些測試數據。

// 創建 price_test 表
CREATE TABLE `test`.`price_test` (
`id` BIGINT(64) NOT NULL AUTO_INCREMENT,
`name` varchar(32) not null,
`price` INTEGER(4) NULL,
PRIMARY KEY (`id`));
// 插入測試數據
INSERT INTO price_test(name,price) values('apple', 10);

接著,我們打開兩個命令行窗口,并且都修改事務隔離級別為「讀未提交」。

// 設置隔離級別
SET session TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
// 查看隔離級別
select @@transaction_isolation;

接著,事務 A 執行如下命令,查詢出 id 為 1 記錄的 price 值。

// 執行命令
beign;
select * from price_test where id = 1;
// 執行結果
+----+-------+-------+
| id | name | price |
+----+-------+-------+
| 1 | apple | 10 |
+----+-------+-------+
1 row in set (0.00 sec)

接著,事務 B 執行如下命令,修改 price 為 20。

begin;
update price_test set price = 20 where id = 1;

接著,事務 A 再次讀取 id 為 1 記錄的 price 值。

select * from price_test where id = 1;

從下圖可以看到,事務 A 讀取到了事務 B 未提交的數據,這其實就是臟讀了。

圖片

從這個例子,我們可以得出一些結論:在「讀未提交」事務隔離級別下,讀寫是可以同時進行的,不會阻塞。

看到這里,我突然想到了一個問題:那么寫寫是否會阻塞阻塞呢?

接下來,我們繼續做一個測試:事務 A 和 事務 B 同時對 id 為 1 的記錄進行更新,看看是否能夠更新成功。

圖片

如上圖所示,我先用如下命令在事務 A(上邊的窗口)執行,將 price 修改為 15。

begin;
update price_test set price = 15 where id = 1;

結果執行成功了,但此時事務 A 還未提交。

接著,我先用如下命令在事務 B(下邊的窗口)執行,將 price 修改為 20。

從圖中可以看到,事務 B 阻塞卡住了。

從這個例子,我們可以得出結論:在「讀未提交」事務隔離級別下,寫寫不可以同時進行的,會阻塞。

此時,我們通過查看鎖信息可以看到,其是加上一個行級別的記錄鎖,如下圖所示。

圖片

當我使用 rollback 命令回滾事務 A 之后,事務 B 立刻就執行了,并且事務 A 還讀取到了事務 B 設置的值,如下圖所示。

圖片

有些小伙伴會說:如果指定了非索引的列作為查詢條件,是否會觸發間隙鎖呢?

接下來我們測試一下。

我們往 price_test 表再插入一條數據,此時數據庫中的數據如下所示。

圖片

接著,我們在事務 A 執行如下命令,查詢 price > 15 的記錄。

mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from price_test where price > 15 for update;
+----+--------+-------+
| id | name | price |
+----+--------+-------+
| 2 | orange | 30 |
+----+--------+-------+
1 row in set (0.00 sec)

接著,我們在事務 B 執行如下命令,查詢 price > 5 的記錄。

begin;
select * from price_test where price > 5 for update;

從如下結果可以看到,事務 B 阻塞住了。

圖片

此時我們在事務 A 查看鎖的情況,如下圖所示。

圖片

從上圖可以看出,MySQL 只是加上了一個記錄鎖,并沒有加間隙鎖。

最后我們總結一下:在「讀未提交」隔離級別下,讀寫操作可以同時進行,但寫寫操作無法同時進行。與此同時,該隔離級別下只會使用行級別的記錄鎖,并不會用間隙鎖。

讀已提交

在「讀已提交」隔離級別下,我們按之前的方式進行測試。

首先,我們設置一下隔離級別為「讀已提交」。

// 設置隔離級別
SET session TRANSACTION ISOLATION LEVEL READ COMMITTED;
// 查看隔離級別
select @@transaction_isolation;

接著,我們測試同時對 id 為 1 的數據進行更新,看看會發生什么。

事務 A 執行如下命令:

begin;
update price_test set price = 15 where id = 1;

事務 B 執行如下命令

begin;
update price_test set price = 20 where id = 1;

事務 B 阻塞了。查看下鎖信息,如下圖所示。

圖片

可以看到,其鎖是一個行級別的記錄鎖,結果和「讀未提交」的是一樣的。

接下來,我們繼續看看范圍的查詢是否會觸發間隙鎖。

事務 A 執行:

begin;
select * from price_test where price > 5 for update;

事務 B 執行:

begin;
select * from price_test where price > 15 for update;

事務 B 會阻塞,查看鎖信息如下圖所示。

圖片

可以看到,還是只有一個行級別的記錄鎖,并沒有間隙鎖。

看到這里,你會發現「讀已提交」和「讀未提交」非常相似。那么它們具體有啥區別呢?

其實他們的最大區別,就是「讀已提交」解決了臟讀的問題。

可重復讀

在「讀已提交」隔離級別下,我們按之前的方式進行測試。

首先,我們設置一下隔離級別為「讀已提交」。

// 設置隔離級別
SET session TRANSACTION ISOLATION LEVEL REPEATABLE READ;
// 查看隔離級別
select @@transaction_isolation;

接著,我們測試同時對 id 為 1 的數據進行更新,看看會發生什么。

事務 A 執行如下命令:

begin;
update price_test set price = 15 where id = 1;

事務 B 執行如下命令:

begin;
update price_test set price = 20 where id = 1;

事務 B 阻塞了。查看下鎖信息,毫無疑問,其實這里還是只會有間隙鎖,因為指定了索引。

接下來,我們繼續看看范圍的查詢是否會觸發間隙鎖。

事務 A 執行:

begin;
select * from price_test where price > 5 for update;

事務 B 執行:

begin;
select * from price_test where price > 15 for update;

事務 B 會阻塞,查看鎖信息如下圖所示。

圖片

可以看到,在這里就變成了 Next-Key 鎖,就是記錄鎖和間隙鎖結合體。

總結一下:在「可重復讀」隔離級別下,使用了記錄鎖、間隙鎖、Next-Key 鎖三種類型的鎖。

值得一提的是,我們前面說過:可重復讀存在幻讀的問題,但實際上在 MySQL 中,因為其使用了間隙鎖,所以在「可重復讀」隔離級別下,其實不存在幻讀問題。因此,MySQL 將「可重復讀」作為了其默認的隔離級別。

總結

看到這里,我想我們可以對文章開頭提出的問題做個解答了:MySQL 不同隔離級別,都使用了什么樣的鎖?

對于任何隔離級別,表級別的表鎖、元數據鎖、意向鎖都是會使用的,但對于行級別的鎖則會有些許差別。

在「讀未提交」和「讀已提交」隔離級別下,都只會使用記錄鎖,不會用間隙鎖,當然也不會有 Next-Key 鎖了。

而對于「可重復讀」隔離級別來說,會使用記錄鎖、間隙鎖和 Next-Key 鎖。

今天我們是從隔離級別這個角度來看鎖的應用,但什么時候會用上記錄鎖?什么時候會用上間隙鎖?后面有機會,我們將聊聊這部分的問題。

責任編輯:武曉燕 來源: 樹哥聊編程
相關推薦

2024-04-23 08:17:14

MySQL數據庫隔離

2018-12-19 16:46:38

MySQL事務隔離數據庫

2021-07-26 10:28:13

MySQL事務隔離

2024-04-26 09:17:20

MySQL事務隔離

2021-08-04 13:19:42

MySQL 事務隔離

2024-07-16 08:19:46

MySQL數據InnoDB

2021-12-27 09:20:13

事務模式隔離

2024-12-02 08:37:04

2014-04-28 10:51:24

GitHubJava庫

2021-10-19 10:10:51

MySQL事務隔離級別數據庫

2021-06-11 16:59:41

MySQLRepeatableRead

2010-11-19 16:13:06

oracle事務隔離級

2009-06-29 17:54:47

Spring事務隔離

2025-03-03 08:20:00

MySQL事務隔離數據庫

2024-06-26 00:43:54

MySQL測試TOTAL?

2020-10-13 10:32:24

MySQL事務MVCC

2022-06-10 11:51:49

MySQL事務隔離

2025-01-13 13:12:54

2021-12-10 11:45:49

MySQLRRRC

2017-05-16 08:59:16

MVCCMYSQL樂觀鎖
點贊
收藏

51CTO技術棧公眾號

中文字幕中文字幕在线一区| avove在线播放| a毛片在线观看| 久久国产麻豆精品| 一本色道久久88亚洲综合88| 在线观看日本一区二区| 久久久久综合一区二区三区| 理论片大全免费理伦片| 欧美××××黑人××性爽| 国产精品免费看片| 国产精品狠色婷| 国模无码国产精品视频| 综合干狼人综合首页| 欧美性猛交xxxx乱大交3| 亚洲高清视频一区二区| 伊人中文字幕在线观看| 91成人精品| 亚洲精品白浆高清久久久久久| 日韩欧美黄色大片| а_天堂中文在线| 欧美国产精品v| 国模精品娜娜一二三区| 国产成人麻豆免费观看| 在线观看不卡| 麻豆国产精品va在线观看不卡| 日韩成人精品视频在线观看| www.日韩| 一二三区精品视频| 亚洲v国产v在线观看| 国产欧美亚洲精品| 黄色在线免费播放| 国产精久久一区二区| 一区二区三区国产豹纹内裤在线| 日韩电影天堂视频一区二区| 人人妻人人澡人人爽久久av| 日韩国产成人精品| 韩国精品久久久999| 日日骚一区二区三区| 91青青国产在线观看精品| 亚洲欧美日韩精品| www.自拍偷拍| 噜噜噜狠狠夜夜躁精品仙踪林| 91精品欧美一区二区三区综合在 | 亚洲乱码国产乱码精品精| 亚洲美女性囗交| 日韩a**中文字幕| 亚洲成人www| 欧美狂野激情性xxxx在线观| 99福利在线| 中文字幕va一区二区三区| 国产日韩精品一区| 国产日韩欧美一二三区| 日韩三级视频在线| 99成人在线| 91精品国产电影| 中文字幕亚洲精品在线| 影音先锋亚洲一区| 啊v视频在线一区二区三区 | 无码aⅴ精品一区二区三区浪潮| 18在线观看的| 一区二区三区在线视频观看| 妞干网这里只有精品| 成人免费网址| 亚洲一区视频在线| 一区二区在线高清视频| 黄色视屏免费在线观看| 亚洲免费看黄网站| 久久99久久99精品| www久久日com| 亚洲主播在线播放| 精品国产一区三区| 亚洲天堂av在线| 一本大道久久精品懂色aⅴ | 欧美成熟毛茸茸复古| 欧美熟妇交换久久久久久分类| 国产在线视频不卡二| 亚洲综合精品一区二区| 亚洲国产精品国自产拍久久| 床上的激情91.| 精品日本一区二区三区| 久久99久久| 国产精品免费久久久久| 少妇高潮大叫好爽喷水| 123区在线| 午夜欧美视频在线观看| 久久久久久久久久福利| 成人影院在线免费观看| 日韩亚洲电影在线| 久久久久久久久免费看无码 | 男人天堂资源网| 成人免费av| 久久精品国产91精品亚洲| 精品少妇爆乳无码av无码专区| 欧美激情在线| 国产不卡在线观看| 奇米影音第四色| jizz国产在线观看| 久久精品国产999大香线蕉| 国产成人啪精品视频免费网| 国产精品久久久久久久久久久久久久久久久久 | 日韩欧美中文字幕一区二区| 日韩国产欧美三级| 99视频日韩| 黑人与亚洲人色ⅹvideos| 国产精品视频免费| 欧美二区在线视频| av成人在线播放| 亚洲第一中文字幕在线观看| 国产精品成人无码免费| 亚洲性感美女99在线| 国产精品久久久久久久久久99| 午夜精品一二三区| 国产日产精品一区| 精品在线免费观看| 91美女高潮出水| 日本人妖在线| 亚洲欧洲国产日韩| 一本大道熟女人妻中文字幕在线 | 91网在线免费观看| 欧美黄色小说| 亚洲一区二区不卡免费| 中文字幕国内自拍| 久久久久久毛片免费看 | 欧美图区在线视频| 91玉足脚交白嫩脚丫| 亚洲一区在线| 国产精品日韩专区| 极品白浆推特女神在线观看| 亚洲欧美自拍偷拍| 性生交免费视频| 香蕉精品久久| 97激碰免费视频| 中文字幕一区二区三区免费看| 99精品黄色片免费大全| 欧美日韩激情四射| 久久精品无码专区| 99se视频在线观看| 欧美日韩加勒比精品一区| 中文字幕亚洲日本| 欧美黄色一区| 51精品国产人成在线观看| 在线观看完整版免费| 午夜亚洲福利老司机| 久久精品aⅴ无码中文字字幕重口| 婷婷亚洲最大| 成人h片在线播放免费网站| www.中文字幕久久久| 色综合久久久久综合体桃花网| av av在线| 欧美在线看片| yy111111少妇影院日韩夜片| 18av在线播放| 日韩免费高清av| 五月婷婷一区二区| 成人永久看片免费视频天堂| 佐佐木明希av| 99a精品视频在线观看| 久久久久久久激情视频| 成人久久久精品国产乱码一区二区 | 天天av天天翘天天综合网| 精品国产午夜福利在线观看| 中文字幕福利视频| 日韩最新在线| 91av在线视频观看| 九色在线视频蝌蚪| 欧美自拍丝袜亚洲| 女人18毛片毛片毛片毛片区二| 狂野欧美一区| 亚洲欧洲一二三| 亚洲综合资源| 欧美激情免费观看| 亚洲av综合色区无码一区爱av| 亚洲国产aⅴ成人精品无吗| 国产精品入口麻豆| 国产一级久久| 日韩资源av在线| 国产精品3区| 欧美精品成人在线| 免费福利在线观看| 欧美精品在线观看播放| 少妇被躁爽到高潮无码文| 成人综合婷婷国产精品久久 | 亚洲视频福利| 欧美人与物videos另类| 51一区二区三区| 欧美日韩国产123| 每日更新av在线播放| 91青青国产在线观看精品| www.xxxx欧美| 国产免费黄色网址| 亚洲第一av色| 2019男人天堂| 另类人妖一区二区av| 精品免费久久久久久久| 亚洲人成网亚洲欧洲无码| 久久久久久国产| 国产黄在线观看免费观看不卡| 在线免费一区三区| 激情五月婷婷在线| 国产色产综合色产在线视频| 超级砰砰砰97免费观看最新一期 | 国产精品成人网| 日韩成人av一区二区| 久久精品国产久精国产| www.99热这里只有精品| 日韩在线精品| 国偷自产av一区二区三区小尤奈| 麻豆最新免费在线视频| 日韩精品亚洲元码| 中文字幕91爱爱| 精品美女久久久久久免费| 国产精品久久久久久成人| 成人午夜视频福利| 日韩av在线中文| 欧美久久久久| 欧美日韩国产综合视频在线观看中文| 四虎影院一区二区三区 | 成人激情av| 色成人免费网站| 久久久免费电影| 成人福利在线| 亚洲男子天堂网| 免费看av毛片| 91精品国产91久久久久久最新毛片 | 亚洲人成伊人成综合网小说| 婷婷色一区二区三区| 波波电影院一区二区三区| 杨幂一区二区国产精品| 久久国产精品露脸对白| 欧美在线观看视频网站| 99国产精品99久久久久久粉嫩| 黄色一级视频播放| 99视频精品全国免费| 色一情一乱一伦一区二区三区| 牲欧美videos精品| 国产日韩二区| 东京久久高清| 亚洲一区二区中文| 亚洲tv在线| 欧洲中文字幕国产精品| 爱情岛亚洲播放路线| 久久久亚洲影院| 92久久精品| 午夜一区在线| 精品综合久久| 日韩欧美激情| 国产美女久久精品| 日韩欧美专区| 91美女高潮出水| 日韩国产在线不卡视频| 3d动漫啪啪精品一区二区免费 | 国产二区在线播放| 亚洲精品成a人在线观看| 精品乱子伦一区二区| 日韩午夜av电影| av男人天堂网| 精品精品国产高清a毛片牛牛| 亚洲第一第二区| 欧美精品一区二| 亚洲三区在线播放| 亚洲人成网站色ww在线| 黄色片在线免费看| 国产丝袜高跟一区| 久久综合九色综合久| 在线看国产精品| 精精国产xxxx视频在线| 欧美成人精品在线观看| 男人天堂久久久| 亚洲片av在线| 成人精品一区二区| 久久精品成人欧美大片| 成在在线免费视频| 视频在线观看免费影院欧美meiju| 97久久久久久| 国产精品亚洲一区二区三区在线观看| 国产精品久久久久久久一区探花| 第四色男人最爱上成人网| 欧美有码在线视频| 日日夜夜精品| 成人91视频| 欧美精品尤物在线观看| 欧洲美女和动交zoz0z| 黄色成人91| 99热手机在线| 成人午夜又粗又硬又大| 亚洲色成人网站www永久四虎| 亚洲欧美在线视频观看| 久久成人小视频| 亚洲人成网站影音先锋播放| xxxxxx国产| 欧美日韩电影一区| 日本免费不卡视频| 中文字幕久久久av一区| 7777kkk亚洲综合欧美网站| 日本伊人精品一区二区三区介绍| 小黄鸭精品aⅴ导航网站入口| 亚洲一区亚洲二区亚洲三区| 国产精品高潮呻吟久久久久| 久久精品欧美| 亚洲精品网址| 免费在线激情视频| 欧美亚洲视频| 日本 片 成人 在线| 成人av资源在线| 一本加勒比波多野结衣| 日韩一区在线看| av无码久久久久久不卡网站| 国精产品一区| 久久久精品久久| 高潮一区二区| 成人在线视频电影| 成人3d精品动漫精品一二三| 人妻夜夜添夜夜无码av| 精品一区二区三区免费播放| 国产精久久久久| 亚洲欧美中日韩| 国产成人av免费| 欧美成人三级在线| 国产福利第一视频在线播放| 2019日本中文字幕| 久久久久久久久久久久电影| 视频一区国产精品| 精品电影一区| 亚洲911精品成人18网站| 国产精品麻豆久久久| 人妻 日韩精品 中文字幕| 91精品国产一区二区| av中文在线| 国产ts一区二区| 丁香综合av| av女优在线播放| 麻豆国产精品视频| 国产手机在线观看| 岛国精品视频在线播放| 国产伦理一区二区| 中文字幕欧美日韩精品| 精品123区| 欧美精品一区二区视频| 99精品国产在热久久婷婷| 最新日本中文字幕| 一区二区三区成人| 亚洲国产成人一区二区| 亚洲视频777| 日韩三级影视| 在线91免费看| 国产一级aa大片毛片| 日韩欧美一级在线播放| 综合久久2019| 国产精品成人va在线观看| 国产精品一区二区三区av麻 | 欧美三级日本三级少妇99| 亚洲欧美丝袜中文综合| 欧美激情欧美激情| 国内精品国产成人国产三级粉色 | 午夜成年人在线免费视频| 成人黄色免费网站在线观看| 99久久精品网| xxx中文字幕| 亚洲综合色婷婷| 全部免费毛片在线播放一个| 久久久久久香蕉网| 亚洲一二av| 黄页免费在线观看视频| 久久99精品视频| 毛片久久久久久| 91精品国产综合久久久久久久久久| 婷婷免费在线视频| 91精品国产一区二区三区动漫| 激情91久久| 一道本在线观看| 欧美日韩国产综合新一区| 国产在线一在线二| 91精品国产综合久久香蕉| 你懂的视频一区二区| 黄色av网址在线观看| 色综合久久久网| 欧美成人xxx| 91久久夜色精品国产网站| 五月天激情综合网| 欧美一区二区三区图| 92久久精品| 日韩精品一区二区三区四区五区 | 亚洲国产日韩精品| 色视频在线看| 国产日韩在线视频| 欧美日一区二区三区在线观看国产免| 日本一卡二卡在线| 欧美图区在线视频| 91制片在线观看| 亚欧洲精品在线视频免费观看| 国产盗摄一区二区三区| 久久久久久天堂| 一区二区av在线| 中文字幕av一区二区三区四区| 欧美色图另类小说| 国产精品初高中害羞小美女文| 日韩专区第一页| 成人激情免费在线| 亚洲黄色在线| 麻豆网址在线观看|