精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久不见久久见国语| 色资源二区在线视频| 国产一区二区影院| 国模精品视频一区二区三区| 免费不卡的av| 91p九色成人| 亚洲综合色成人| 日本在线观看一区二区三区| 999免费视频| 久久在线精品| 色在人av网站天堂精品| 国产精品无码久久久久一区二区| 国产一区二区三区精品在线观看 | 亚洲精品久久视频| 欧美男女交配视频| aa视频在线观看| 国产精品久久久久久久久搜平片| 国产精品青青草| 在线观看毛片网站| 99精品视频免费观看视频| 日韩中文字幕在线看| 美国黄色一级毛片| 91亚洲无吗| 欧美一区二区三区四区久久| 能在线观看的av网站| av资源新版天堂在线| 亚洲欧美日韩人成在线播放| 亚洲春色在线视频| 国产精品国产高清国产| 国产高清在线精品| 国产欧美日韩中文| 天堂网中文字幕| 最新亚洲视频| 欧美超级免费视 在线| 精品熟妇无码av免费久久| 蜜桃国内精品久久久久软件9| 精品久久人人做人人爰| 九九久久久久久| 日韩一级特黄| 欧美日韩一区视频| 丁香啪啪综合成人亚洲| 亚洲妇女成熟| 五月天欧美精品| r级无码视频在线观看| 五月天激情在线| 一区二区三区四区激情| 中文字幕中文字幕一区三区| 香蕉视频在线免费看| 国产午夜久久久久| 日韩精品久久久免费观看| 三级理论午夜在线观看| 97超碰欧美中文字幕| 成人国产一区二区| 成人毛片在线精品国产| 成人夜色视频网站在线观看| 国产精品视频在线免费观看| 日韩一级片免费| 99久久精品免费| 开心色怡人综合网站| 色视频精品视频在线观看| 91视视频在线观看入口直接观看www | 五月天亚洲视频| 亚洲综合av一区二区三区| 在线视频你懂得一区二区三区| 成年人小视频网站| 99久久亚洲国产日韩美女| 欧美日韩成人在线一区| 色婷婷一区二区三区在线观看| 国产一区二区av在线| 日韩一区二区免费在线电影| 美国黄色一级视频| 久久精品亚洲成在人线av网址| 日韩毛片在线看| 性猛交ⅹxxx富婆video| 久久亚洲成人| 欧美激情xxxxx| 国产精品999在线观看| 鲁大师成人一区二区三区| 国产精品福利在线观看| 国产乱码久久久| 成人美女视频在线观看| 日本免费高清一区二区| 日本在线免费中文字幕| 亚洲一区二区高清| 亚洲精品乱码久久久久久自慰| 国外成人福利视频| 欧美成人一区二区三区在线观看| 欧美夫妇交换xxx| 欧美日韩国产传媒| 欧美高清videos高潮hd| 亚洲欧美一区二区三区在线观看 | 香蕉视频xxxx| 偷拍亚洲色图| 久久久999精品| 天堂网一区二区三区| 免费久久99精品国产| www日韩av| 98在线视频| 午夜精品久久久久久久99水蜜桃 | 中文字幕在线播放不卡| 国产精品香蕉一区二区三区| 欧美日韩日本网| 日本三级韩国三级欧美三级| 在线精品视频一区二区| 精品人妻伦一二三区久| 日韩欧美精品| 欧日韩不卡在线视频| www国产在线| 日本一区二区免费在线| 欧美一区二区中文字幕| 97精品资源在线观看| 国产午夜精品久久久| 婷婷伊人五月天| 视频精品一区二区| 俄罗斯精品一区二区三区| 色多多视频在线观看| 狠狠躁18三区二区一区| 日韩成人av免费| 国产一区二区三区站长工具| **欧美日韩vr在线| www.桃色av嫩草.com| 国产精品国产三级国产普通话三级| heyzo国产| 9999久久久久| 免费97视频在线精品国自产拍| 日批视频免费观看| 菠萝蜜视频在线观看一区| 麻豆一区二区三区在线观看| 亚洲美女色播| 中文字幕一区日韩电影| 亚洲图片在线视频| 99精品视频一区| 韩日视频在线观看| 91大神精品| 欧美精品在线免费播放| 国产精品熟女久久久久久 | 久草视频手机在线| 青娱乐精品在线视频| 欧美日韩亚洲一区二区三区在线观看| av电影在线地址| 精品国产凹凸成av人导航| 国产av 一区二区三区| 精品无人码麻豆乱码1区2区 | 精品国产污污免费网站入口| 青草影院在线观看| 国产在线一区观看| 国产日韩第一页| 警花av一区二区三区 | 少妇视频在线观看| 亚洲国产精品yw在线观看| 日本特黄特色aaa大片免费| 成人少妇影院yyyy| 国产人妻777人伦精品hd| eeuss鲁片一区二区三区| 久久久久久69| 深夜福利在线视频| 色综合天天综合在线视频| 性欧美丰满熟妇xxxx性仙踪林| 亚洲综合电影一区二区三区| 日韩欧美一区二区在线观看 | 欧美人与性禽动交精品| 原纱央莉成人av片| 伊人久久久久久久久久久久久| 中文天堂在线视频| 1区2区3区国产精品| 亚洲成人手机在线观看| 国内综合精品午夜久久资源| 国产一区二区三区高清| 手机av在线| 色偷偷88888欧美精品久久久 | 奇米777四色影视在线看| 亚洲91网站| 欧美一区二区三区精品电影| aiai在线| 亚洲成人黄色网址| 亚洲国产成人精品女人久久| 亚洲欧洲韩国日本视频| 日本久久久久久久久久| 久久久噜噜噜| 青少年xxxxx性开放hg| 大桥未久女教师av一区二区| 国产成人综合亚洲| 成人日韩欧美| 亚洲精品在线不卡| 国产精品丝袜黑色高跟鞋| 亚洲国产精品一区二区www在线| 欧美亚一区二区三区| 日本女优在线视频一区二区| 欧美少妇一区二区三区| 要久久爱电视剧全集完整观看| 国产在线观看不卡| 国产理论在线| 俺也去精品视频在线观看| 天堂在线资源网| 欧美剧情片在线观看| 韩国av免费观看| 成人免费一区二区三区在线观看| 国产伦精品一区二区三区妓女| 激情综合五月婷婷| 黄色片视频在线免费观看| 亚洲精品国产偷自在线观看| 欧美性天天影院| 国产精品久久久网站 | 美女福利一区| 成人天堂噜噜噜| 色尼玛亚洲综合影院| 欧美激情精品久久久久久黑人| lutube成人福利在线观看| 精品国产91九色蝌蚪| 91精品在线视频观看| 色呦呦网站一区| 国产无套粉嫩白浆内谢| 自拍偷自拍亚洲精品播放| a级大片在线观看| 成人黄色a**站在线观看| 在线播放免费视频| 男女男精品网站| 91精品91久久久中77777老牛| 韩日成人av| 男同互操gay射视频在线看| 国产传媒欧美日韩成人精品大片| 国产乱码一区| 亚洲视频三区| 亚洲淫片在线视频| 亚洲欧洲专区| 国产精品日韩在线| 亚洲天堂一区二区| 热久久99这里有精品| 欧美激情网站| 91av网站在线播放| 四虎影院观看视频在线观看| 久久这里有精品| 秋霞影院午夜丰满少妇在线视频| 在线精品91av| 成年人在线视频免费观看| 亚洲社区在线观看| 欧美男男同志| 亚洲人午夜精品免费| 天堂√在线中文官网在线| 亚洲精品大尺度| 天堂影院在线| 亚洲美腿欧美激情另类| 视频二区在线| 亚洲欧洲中文天堂| 九色视频网站在线观看| 国产一区二区三区三区在线观看| 国产二区在线播放| 伊人久久久久久久久久| 幼a在线观看| 色婷婷av一区二区三区在线观看 | 久久久久国产精品免费| 国产精品186在线观看在线播放| 欧美另类69精品久久久久9999| av在线免费网站| 久久久在线免费观看| yellow在线观看网址| 久久久久久com| 日韩伦理福利| 国产精品劲爆视频| av日韩在线免费观看| 91在线看网站| 久久超级碰碰| 色一情一乱一伦一区二区三区| 成人激情视频| 日本老太婆做爰视频| 国内自拍一区| 国产av无码专区亚洲精品| 日韩黄色免费电影| 日韩高清在线一区二区| 成人美女在线视频| 国产在线综合视频| 18涩涩午夜精品.www| 国产精品theporn动漫| 色呦呦日韩精品| 国产免费视频一区二区三区| 精品国产亚洲一区二区三区在线观看| 四虎国产精品永远| 日韩中文字幕在线免费观看| sm在线观看| 国产精品爱啪在线线免费观看 | 欧美精品v国产精品v日韩精品| 好吊色视频一区二区| 亚洲毛片在线看| 黄色成人影院| 欧美亚洲视频在线观看| 国产第一亚洲| 狠狠干一区二区| 国产精品久久观看| 国产亚洲精品网站| 国产在线日韩欧美| 精品无码在线视频| 亚洲啪啪综合av一区二区三区| 久久精品视频日本| 欧洲在线/亚洲| 日韩中文字幕免费观看| 最近2019好看的中文字幕免费| 波多野结衣久久| 国产精品综合久久久| 麻豆一区一区三区四区| 欧美性受xxxx黑人猛交88| 美女网站久久| 性活交片大全免费看| 中文字幕中文字幕中文字幕亚洲无线| 国产情侣在线视频| 欧美一区二区三区视频在线| 九色蝌蚪在线| 69久久夜色精品国产7777| 日本高清久久| 中文字幕色一区二区| 另类av一区二区| 黄色免费看视频| 一区二区三区欧美| 国产又黄又粗又猛又爽| 亚洲性线免费观看视频成熟| 1234区中文字幕在线观看| 18成人免费观看网站下载| 日韩国产欧美| 成人小视频在线看| www.成人在线| 久久久一区二区三区四区| 91精品欧美久久久久久动漫 | 久久免费精品日本久久中文字幕| 日韩第二十一页| 亚洲国产日韩美| 日韩精品视频网站| 国精产品一区二区三区| 五月激情六月综合| 成人爽a毛片一区二区| 久久伊人色综合| 欧美男女视频| 一区二区三区在线视频看| 日韩福利电影在线观看| 一区二区三区四区免费| 色综合色狠狠综合色| 欧美香蕉爽爽人人爽| 国产91成人video| 日本久久成人网| 精品中文字幕av| 91久色porny| 日韩欧美在线观看免费| 亚洲人成网站色ww在线| 欧美成人免费电影| 蜜桃视频在线观看成人| 欧美综合二区| 欧美激情亚洲色图| 欧美亚一区二区| 求av网址在线观看| 91亚洲午夜在线| 国产精品videosex极品| 国产人成视频在线观看| 欧美日韩国产丝袜美女| 色视频免费在线观看| 国产成人精品在线播放| 日韩精品永久网址| 日本在线观看视频一区| 悠悠色在线精品| 人妻妺妺窝人体色www聚色窝| 97热精品视频官网| 香蕉久久夜色精品国产更新时间| 免费在线观看毛片网站| 国产精品美女久久久久aⅴ国产馆| 怡红院成永久免费人全部视频| 久久大大胆人体| 极品一区美女高清| 北条麻妃在线一区| 国产精品第四页| 高h震动喷水双性1v1| 欧亚精品中文字幕| 精品99久久| 一级 黄 色 片一| 午夜精品久久久久久久| 波多野结衣在线影院| 亚洲自拍在线观看| 一区二区三区精品视频在线观看| 亚洲区自拍偷拍| 日韩一区二区在线观看视频播放| 国产美女高潮在线观看| 日韩影视精品| 国产精品18久久久久| 日本韩国欧美中文字幕| 这里只有视频精品| 日韩一区二区三区精品视频第3页| 国产黄视频在线| 国产精品久久网站| 亚洲精品字幕在线观看| 国产999精品久久久| 9191国语精品高清在线| 538国产视频| 在线成人av网站| 成人小电影网站| 婷婷视频在线播放| 91免费视频大全| a级片在线播放| 日产日韩在线亚洲欧美| 亚洲电影在线一区二区三区| 国产精品jizz| 日韩三级在线免费观看| 91九色综合| 97国产精东麻豆人妻电影| 亚洲欧美怡红院|