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

幻讀為什么會被 MySQL 單獨拎出來解決?

數據庫 MySQL
所謂幻讀,即一個事務在前后兩次查詢同一個范圍的時候,后一次查詢看到了前一次查詢沒有看到的行,這個回答估計大伙兒已經背爛了,但是它具體有什么后果呢?

[[437528]]

本文轉載自微信公眾號「飛天小牛肉」,作者飛天小牛肉 。轉載本文請聯系飛天小牛肉公眾號。

所謂幻讀,即一個事務在前后兩次查詢同一個范圍的時候,后一次查詢看到了前一次查詢沒有看到的行,這個回答估計大伙兒已經背爛了,但是它具體有什么后果呢?為什么會被 MySQL 單獨拎出來解決呢?MySQL 又是如何解決的呢?

當前讀和快照讀

在了解幻讀以及 MySQL 是如何解決幻讀這個問題前,我們需要知道,什么是當前讀、什么是快照讀。

  • 快照讀:讀取快照中的數據,不需要進行加鎖。看到快照這兩個字,各位肯定馬上就想到 MVCC 了,是這樣,MVCC 作用于讀取已提交和可重復讀(默認)這兩個隔離級別,這倆隔離級別下的普通 select 操作就是快照讀
  • 當前讀:讀取的是最新版本的數據, 并且對讀取的記錄加鎖, 阻塞其他事務同時改動相同記錄,避免出現安全問題。

除了讀取已提交和可重復讀這倆隔離級別下的普通 select 操作,其余操作都是當前讀:

  1. select...lock in share mode (共享讀鎖) 
  2. select...for update 
  3. updatedeleteinsert 

舉個例子,來直觀感受下快照讀和當前讀,以可重復讀隔離級別為例,假設我們目前有一張 user 表,有如下的數據:

開啟兩個事務:

事務 1 先來個快照讀看看:

沒毛病,很正常。

事務 2 修改 age = 99,然后提交:

你猜,這時候,事務 1 快照讀出來的數據應該是多少?

是的,仍然是舊數據:

那事務 1 “當前讀” 出來的數據肯定是最新的了:

幻讀到底有什么問題

所謂幻讀,即一個事務在前后兩次查詢同一個范圍的時候,后一次查詢看到了前一次查詢沒有看到的行。

在可重復讀隔離級別下,普通的查詢是快照讀,當前事務是不會看到別的事務插入的數據的。因此,幻讀問題在 “當前讀” 下才會出現。

也有很多的文章說用 MVCC 來解決 "快照讀" 下的幻讀問題,我覺得沒必要糾結吧,甚至可能面試官更可能愿意聽到 MVCC 的原理。

不過,話說回來,沒有 MVCC 機制,哪來快照讀這個東西?

那么,幻讀到底有什么問題?它具體有什么后果呢?

不多廢話,直接上例子:

我們有一張表 user(id, username, age),已經有兩條數據 (1, "Jack", 20), (2, "Tom", 18)

有如下三個事務:

眾所周知,select for update 語句會加行鎖,假設,注意這里是假設奧!!!假設事務 1 的 select * from user where name = 'Jack' for update 只在 id = 1 的這一行上加行鎖

可以看到,事務 1 執行了三次查詢,都是要查出 name = "Jack" 的記錄行。注意我們假設這里只在 name = 'Jack' 行上加行鎖

  • 第一次查詢只返回了 id = 1 這一行
  • 在第二次查詢之前,事務 2 把 id = 2 這一行的 name 值改成了 "Jack",因此事務 1 第二次查詢的結果是 id = 1 和 id = 2 這兩行
  • 在第三次查詢之前,事務 3 插入了一個 name = "Jack" 的新數據,因此事務 1 第三次查詢的結果是 id = 1、id = 2 以及 id = 3 這三行

顯然,第三次查詢讀到的 id = 3 這一行的現象,就是幻讀

但其實從邏輯上來說,這似乎是沒有問題的。

因為這三個查詢都是加了 for update,都是當前讀。而當前讀的規則,就是要能讀到所有已經提交的記錄的最新值,所以第二次查詢和第三次查詢就是應該看到事務 2 和事務 3 的操作效果。

那么,幻讀到底有啥問題?

首先是語義上的。事務 1 在第一次查詢的時候就聲明了,我要把所有 name = "Jack" 的行鎖住,拒絕別的事務對 name = "Jack" 的行進行讀寫操作。

但是,實際上,這個語義被破壞了,舉個例子,我再往事務 2 里加一條 SQL 語句(黃色框框):

事務 2 的第二條語句的意思是 "把 id = 2 這一行的 age 值改成了 40",這行的 name 值是 "Jack"。

而在這之前,事務 1 只是給 id = 5 的這一行加了行鎖,并沒有給 id = 2 這行加鎖。所以,事務 2 是可以執行這條 update 語句的。

這樣,事務 2 先將 id = 2 的 name 改為 Jack,然后再將 age 改為 40,破壞了事務 1 對要把所有 "name = Jack 的行鎖住" 的聲明

其次,最重要的是,是數據一致性的問題。

眾所周知,加鎖是為了保證數據的一致性,這個一致性,不僅包括數據的一致性,還包括數據和日志的一致性,舉個例子:

給事務 1 再加上一條 SQL 語句(黃色框框)

我在上圖中圈出了四個時刻, T1 T2 T3 和 T4,我們來分析下經過這四個時刻的數據庫狀態:

  • 經過 T1 時刻,id = 1 這一行變成 (1, Tom, 20),注意這是在 T4 才正式提交的
  • 經過 T2 時刻,id = 2 這一行變成 (2, Jack, 40)
  • 經過 T3 時刻,表里面多了一行 (3, Jack, 30)

再來看看這時候 binlog 日志里面的內容,binlog 就是記錄下我們做了哪些操作嘛:

T2 時刻,事務 2 提交,寫入了 2 條 update 語句;

  1. update user set name = "Jack" where id = 2 
  2. update user set age = "40" where id = 2 /*(2, Jack, 40)*/ 

T3 時刻,事務 3 提交,寫入了 1 條語句; 

  1. insert into user values(3, "Jack", 30) /*(3, Jack, 30)*/ 

T4 時刻,事務 1 提交,binlog 中寫入了 update user set name = "Tom" where name = "Jack" 這條語句

  1. update user set name = "Tom" where name = "Jack" 

就是說,把所有 name = Jack 的行,都給我改成 name = "Tom"

這樣,問題就來嘍,binlog 一般都是用于備庫同步主庫的對吧,這個 binlog 一執行,那豈不是原先 (2, Jack, 40) 和 (3, Jack, 30) 這兩行的 name 全都變成了 Tom。

也就是說,id = 2 和 id = 3 這兩行,發生了數據不一致。

注意!這個數據不一致到底是怎么發生的?是假設事務 1 的 select * from user where name = 'Jack' for update 只在 id = 1 的這一行上加行鎖導致的。

很顯然,分析到這里,我們已經明白,只鎖這一行是不合理的。那好辦,讓 select for update 把所有掃描到的行都給鎖住不就行了?

這樣,事務 2 在 T2 時刻就會被阻塞住,直到事務 1 在 T4 時刻 commit 釋放鎖。

由于 session A 把所有的行都加了寫鎖,所以 session B 在執行第一個 update 語句的時候就被鎖住了。需要等到 T6 時刻 session A 提交以后,session B 才能繼續執行。

But,這樣看似沒問題,是否真的沒問題呢?

來看 binlog,執行序列是這樣的:

  1. 事務 3: 
  2. insert into user values(3, "Jack", 30) /*(3, Jack, 30)*/ 
  3.  
  4. 事務 1: 
  5. update user set name = "Tom" where name = "Jack" 
  6.  
  7. 事務 2: 
  8. update user set name = "Jack" where id = 2 
  9. update user set age = "40" where id = 2 /*(2, Jack, 40)*/ 

可以看到,事務 2 的問題確實是解決了,Jack 保住了,仍然是 (2, Jack, 40)

但是!!!注意事務 3,在數據庫里面的結果是 (3, "Jack", 30),而根據 binlog 的執行結果是 (3, Tom, 30),也就是說幻讀的問題還是沒有解決。

那為什么我們已經把所有能夠掃描到的記錄都加上了鎖,還是阻止不了 id = 3 這一行的插入和更新呢?

很簡單。在我們給所有行加鎖的時候,id = 3 這一行還不存在,數據庫掃描不到,也就當然加不上鎖了。

這也是為什么幻讀問題會被單獨拿出來解決的原因,即使我們把所有的的記錄都加上鎖,還是阻止不了新插入的記錄。

MySQL 如何解決幻讀

現在你知道了,產生幻讀的原因是,行鎖只能鎖住行,但是新插入記錄這個動作,操作的是鎖住的行之間的 “間隙”。因此,為了解決幻讀問題,InnoDB 只好引入新的鎖,也就是間隙鎖 (Gap Lock)。

這樣,當你執行 select * from user where name = 'Jack' for update 的時候,就不止是給數據庫中已有的 n 個記錄加上了行鎖,還同時加了 n + 1 個間隙鎖(這兩個合起來也成為 Next-Key Lock 臨鍵鎖)。也就是說,在數據庫一行行掃描的過程中,不僅掃描到的行加上了行鎖,還給行兩邊的空隙也加上了鎖。這樣就確保了無法再插入新的記錄。

這里多提一嘴,update、delete 語句用不上索引是很恐怖的。

對非索引字段進行 select .. for update、update 或者 delete 操作,由于沒有索引,走全表查詢,就會對所有行記錄 以及 所有間隔 都進行上鎖。而對于索引字段進行上述操作,只有索引字段本身和附近的間隔會被加鎖。

總結下 MySQL 解決幻讀的手段:

隔離級別:可重復讀

  • 快照讀 MVCC + 當前讀 Next-Lock Key(只在可重復讀隔離級別下生效)

隔離級別:SERIALIZABLE

  • 在這個隔離級別下,事務在讀操作時,先加表級別的共享鎖,直到事務結束才釋放;事務在寫操作時,先加表級別的排它鎖,直到事務結束才釋放。也就是說,串行化鎖定了整張表,幻讀不存在的

最后放上這道題的背誦版:

面試官:幻讀有什么問題,MySQL 是如何解決幻讀的

小牛肉:幻讀就是一個事務在前后兩次查詢同一個范圍的時候,后一次查詢看到了前一次查詢沒有看到的行。

幻讀的后果就是數據庫中的數據和 binlog 的執行結果會不一致,其原因就在于,我們無法阻止新插入的數據。就是說,我們在給掃描到的行加鎖的時候,你等會要插入的行還不存在,也就沒法對他進行加鎖,那么這個新插入的數據,可能在主庫中是這個樣子,從庫執行完 binlog 后其實是會被修改的。

這也就是為啥幻讀會被單獨拎出來解決的原因了。

幻讀問題在 "當前讀" 下才會出現。

所謂當前讀就是,讀取的是最新版本的數據, 并且對讀取的記錄加鎖, 阻塞其他事務同時改動相同記錄,避免出現安全問題。

與之對應的,快照讀,讀取的是快照中的數據,不需要進行加鎖。讀取已提交和可重復讀這倆隔離級別下的普通 select 操作就是快照讀。其實就是 MVCC 機制,或者說,在快照讀下,采用 MVCC 機制解決幻讀。

然后,對于當前讀這種情況,前面我們說,由于無法阻止新插入的數據,所以無法解決幻讀問題,所以,我們考慮,不僅對掃描到的行進行加鎖,還對行之間的間隙進行加鎖,這樣就能杜絕新數據的插入和更新。這個其實就是記錄鎖 Record Lock 和間隙鎖 Gap Lock,也被稱為臨鍵鎖 Next-Lock Key。

 額臨鍵鎖只在可重復讀也就是 InnoDB 的默認隔離級別下生效。也可以采用更高的可串行化隔離級別,所有的操作都是串行執行的,可以直接杜絕幻讀問題。

 

責任編輯:武曉燕 來源: 飛天小牛肉
相關推薦

2022-06-30 08:00:00

MySQL關系數據庫開發

2023-08-09 17:22:30

MVCCMySQL數據

2019-05-28 13:50:27

MySQL幻讀數據庫

2024-04-19 08:18:47

MySQLSQL隔離

2023-06-05 00:28:24

MySQL數據庫非鎖定讀

2024-09-02 00:00:00

MySQL幻讀數據

2024-05-13 11:46:33

MySQL數據庫

2020-01-13 10:16:53

TCPUDP協議

2020-04-01 15:30:19

TCPUDP服務器

2020-01-15 08:42:16

TCP三次握手弱網絡

2018-03-13 09:34:36

Kubernetes容器系統

2012-05-22 00:25:41

.NET

2021-10-13 06:49:15

網絡 IO

2024-04-24 08:26:35

事務數據InnoDB

2021-04-20 19:21:50

臟讀MySQL幻讀

2019-12-24 14:50:01

MySQL可重復讀數據庫

2010-11-09 10:36:39

求職

2021-02-11 13:30:56

Nodejs源碼c++

2024-04-25 08:16:06

InnodbReadMVCC

2020-07-06 14:16:22

Fastjson漏洞開源
點贊
收藏

51CTO技術棧公眾號

欧美日韩在线视频首页| 99精品偷自拍| 不卡伊人av在线播放| 成人在线观看一区二区| 激情国产在线| 中文字幕精品综合| http;//www.99re视频| 欧美一级特黄视频| 亚洲mv大片欧洲mv大片| 亚洲精品www久久久久久广东| 成人在线观看黄| 成人午夜在线影视| 26uuu精品一区二区在线观看| 国产精品视频99| 久久高清免费视频| 久久一区二区三区电影| 日韩电影大全免费观看2023年上| 伊人影院综合在线| 国产免费拔擦拔擦8x在线播放 | 亚洲国产精品第一页| 校园春色亚洲色图| 亚洲一区电影777| 亚洲欧美日韩精品综合在线观看| 日本黄色免费视频| 美足av综合网| 日韩精品久久久久久久软件91| 亚洲www啪成人一区二区麻豆| 韩国一区二区三区美女美女秀| 一级特黄aaa大片在线观看| 一区二区国产在线观看| 久国内精品在线| 国产日韩精品中文字无码| 欧美日韩看看2015永久免费 | 免费久久精品| 精品女同一区二区| www.污污视频| 韩国成人在线| 日韩欧美在线播放| 免费无码毛片一区二三区| 国产三区视频在线观看| 国产精品伦一区| 色狠狠久久av五月综合| 欧美孕妇孕交xxⅹ孕妇交| 国产.精品.日韩.另类.中文.在线.播放| 国产精品第1页| 国产黄色免费观看| 在线播放精品| 久久久最新网址| 在线观看成人毛片| 欧美91视频| 欧美日本黄视频| 日日噜噜噜夜夜爽亚洲精品| 18禁免费无码无遮挡不卡网站| 宅男网站在线免费观看| 一区精品在线播放| 永久域名在线精品| 久久bbxx| 一区二区三区中文字幕| 99亚洲精品视频| av网址在线播放| 一区二区三区日本| 97碰在线视频| av漫画网站在线观看| 性做久久久久久免费观看欧美| 欧美这里只有精品| 久久av色综合| 婷婷成人激情在线网| 国产中文字幕在线免费观看| 僵尸再翻生在线观看| 精品福利一区二区| 黄色a级片免费| 欧美亚洲大片| 91 com成人网| 国产精品一级无码| 国产精品毛片久久久| 精品亚洲va在线va天堂资源站| 蜜桃精品一区二区| 欧美一二区在线观看| 日韩中文字幕在线免费观看| 男女做暖暖视频| 亚洲天堂偷拍| 国产精品1234| 国产乱码精品一区二区| 福利一区福利二区| 欧美一区二区三区在线免费观看 | 日本美女视频一区| 四虎国产精品免费久久5151| 日韩欧美电影在线| 亚洲综合自拍网| 精品视频久久| 中文乱码免费一区二区| 欧美性淫爽ww久久久久无| 无码人妻精品一区二区三区在线 | 欧美激情在线| 91国产美女视频| 中文字幕乱码中文字幕| 粉嫩蜜臀av国产精品网站| 欧美精品亚洲精品| 黄色一级大片在线免费看产| 亚洲国产aⅴ天堂久久| 久久精品免费网站| 亚洲图色一区二区三区| 亚洲天堂成人在线视频| 欧美日韩综合一区二区| 久久午夜精品| 91精品久久久久久蜜桃| 国产午夜在线观看| 一区二区三区在线免费| 国产成人手机视频| 中文字幕一区图| 一本久久综合亚洲鲁鲁| 国产成人精品亚洲男人的天堂 | 国产调教打屁股xxxx网站| 亚洲婷婷影院| 久久久免费av| 97人妻精品一区二区三区动漫| 99精品视频在线观看| 在线免费观看成人网| 伊人久久国产| 欧美成人精品二区三区99精品| 日本爱爱爱视频| 在线视频免费在线观看一区二区| 成人精品视频99在线观看免费| 性感美女一级片| 亚洲精品国产视频| 嫩草影院国产精品| 伊人久久大香线蕉综合网蜜芽| 欧美激情欧美狂野欧美精品| 亚洲无码精品国产| 久久久九九九九| 蜜桃传媒一区二区三区| 日本一区二区三区播放| 最近中文字幕mv在线一区二区三区四区| 日本在线观看视频网站| 国产mv日韩mv欧美| 中国黄色录像片| 亚洲91在线| 在线视频日韩精品| 无码任你躁久久久久久久| 波多野结衣视频一区| 女人床在线观看| 免费观看亚洲天堂| 久久久久999| 一级特黄色大片| 国产精品无人区| 国产精品一区二区羞羞答答| 国产精品自拍区| 国产91免费看片| 精品久久av| 91久久人澡人人添人人爽欧美| 欧美特黄一区二区三区| 性色一区二区| 欧洲亚洲一区二区| 欧美三级精品| 中文字幕九色91在线| 中文字幕精品一区二| 国产精品人妖ts系列视频| 国产高潮免费视频| 日韩在线高清| 91|九色|视频| av丝袜在线| 日韩精品极品在线观看播放免费视频 | 成人免费视频久久| 激情五月综合| 国产色视频一区| 中中文字幕av在线| 亚洲国产精品大全| 国产www在线| 国产亚洲制服色| 一道本在线免费视频| 亚洲国产老妈| 国产精品乱码| sis001欧美| 在线精品高清中文字幕| 国产精品嫩草影院精东| 伊人夜夜躁av伊人久久| 国产麻豆xxxvideo实拍| 久久午夜激情| 日本丰满大乳奶| 国产精品极品| 国产精品高潮呻吟久久av无限| 欧美猛烈性xbxbxbxb| 日韩三级电影网址| 青草视频在线观看免费| 国产精品妹子av| 亚洲精品一区二区18漫画| 99综合精品| 一区二区成人国产精品| 9999久久久久| 国产精品久久久久久久久免费看| gogo在线观看| 亚洲欧美另类在线观看| 国产麻豆免费视频| 欧美日韩另类字幕中文| 黄色精品视频在线观看| 成人国产视频在线观看| 三级在线视频观看| 最新国产乱人伦偷精品免费网站| 日韩三级电影| 久9re热视频这里只有精品| 国产精品扒开腿做| 黄色成人在线网| 正在播放亚洲1区| 六月婷婷综合网| 欧美三级日韩在线| 日韩欧美性视频| 亚洲日本在线看| 熟女俱乐部一区二区| 国产美女精品人人做人人爽| 男人添女人下面高潮视频| 希岛爱理一区二区三区| 欧美综合激情| 欧美一区自拍| 成人蜜桃视频| 祥仔av免费一区二区三区四区| 奇米成人av国产一区二区三区| 18videosex性欧美麻豆| 中文字幕不卡在线视频极品| 午夜成人免费影院| 欧美不卡在线视频| 在线免费看av的网站| 欧美性xxxxx极品| 久草视频在线资源| 亚洲欧美在线观看| 白白色免费视频| 91在线观看视频| 欧美熟妇精品一区二区| 久久精品99久久久| 可以免费在线看黄的网站| 亚洲久色影视| 无码人妻少妇伦在线电影| 一区二区不卡| 好色先生视频污| 91欧美国产| 一区二区冒白浆视频| 禁果av一区二区三区| 久久av一区二区| 久久影视三级福利片| 国产精品一级久久久| 日韩中文字幕视频网| 亚洲xxx自由成熟| 国产美女精品视频免费播放软件| 国产三级精品网站| 日韩成人精品一区二区三区| 国产精品流白浆视频| 91久久久久久白丝白浆欲热蜜臀| 日韩av免费在线观看| 在线视频超级| 日韩av电影在线网| 国产成人免费9x9x人网站视频| 欧美最猛性xxxxx免费| 欧美黑人粗大| 国产精品久久久久91| 精品三区视频| 国产日韩欧美一二三区| 成人在线视频国产| 91日韩在线播放| 日韩免费一级| 国产日韩在线一区二区三区| 欧美影院天天5g天天爽| 欧美精品久久| 色135综合网| 视色,视色影院,视色影库,视色网| 亚洲蜜桃视频| 成人免费性视频| 99国产精品视频免费观看一公开 | 亚洲图片欧洲图片日韩av| 日本一区二区在线看| 香蕉精品视频在线| 国产精品vip| 欧美s码亚洲码精品m码| 日韩中文字幕1| 手机在线国产视频| 国产成人免费视频一区| 最新在线黄色网址| 国产网站一区二区| 亚洲国产美女视频| 亚洲成av人片www| 黄色av网站免费观看| 欧美丰满嫩嫩电影| 亚洲国产一二三区| 亚洲人av在线影院| 国产精品刘玥久久一区| 久久久人成影片一区二区三区| 黑人巨大亚洲一区二区久| 国产又爽又黄的激情精品视频| 9l亚洲国产成人精品一区二三| 久久国产精品高清| 91视频综合| 免费观看美女裸体网站| 青青草国产成人99久久| 亚洲少妇一区二区| 久久久.com| 九九视频在线观看| 欧美主播一区二区三区| 精品人妻一区二区三区麻豆91 | 欧美丰满一区二区免费视频| 日本黄色不卡视频| 久久精品91久久久久久再现| 不卡av免费观看| 成人国产精品久久久久久亚洲| 看全色黄大色大片免费久久久| 午夜精品福利一区二区| 在线播放亚洲| 污污视频在线免费| 国产亚洲美州欧州综合国| 久久精品国产av一区二区三区| 欧美日韩一卡二卡三卡| 天天躁日日躁狠狠躁喷水| 精品国产一区二区在线| 最新日韩三级| 国语精品免费视频| 在线精品国产| 中文字幕欧美人妻精品一区| 波波电影院一区二区三区| 免费看一级大片| 欧美色涩在线第一页| 日本大片在线观看| 久久久久久久久久久久久久久久久久av | 精品av一区二区| 97超碰国产精品| 精品一区二区久久| av电影网站在线观看| 午夜精品久久久久久久久久| 99在线精品视频免费观看20| 在线精品国产欧美| 美女写真久久影院| 精品国产一区二区三区四区精华| 欧美三级第一页| 爱情岛论坛亚洲自拍| 亚洲欧洲精品一区二区三区不卡| 一级黄色av片| 亚洲欧洲在线看| 厕沟全景美女厕沟精品| 国产一区二区黄色| 亚洲国内精品| 在线观看亚洲免费视频| 亚洲综合激情网| 好吊色一区二区三区| 欧美日韩福利视频| 中文字幕视频精品一区二区三区| 欧美一级爱爱视频| 国产精品中文字幕欧美| 精品国产精品国产精品| 欧美精品自拍偷拍| 黄色免费网站在线| 成人午夜激情免费视频| 伊人色**天天综合婷婷| 中文字幕在线视频一区二区三区| 国产精品久久久久久户外露出 | 欧美三级韩国三级日本三斤在线观看 | 丁香花高清在线观看完整版| 99爱精品视频| 国产精品a级| 蜜臀av粉嫩av懂色av| 午夜精品一区二区三区免费视频| 天堂成人在线视频| 国产97色在线| 成人一区不卡| 久久综合在线观看| 亚洲一区二区精品3399| 欧美一级免费片| 日韩av手机在线| 清纯唯美亚洲综合一区| 亚洲18在线看污www麻豆| 亚洲欧美日韩中文字幕一区二区三区| 国产成a人亚洲精v品无码| 欧美激情亚洲自拍| 亚洲黄页在线观看| 美女网站色免费| 亚洲欧美日韩在线播放| www.色婷婷.com| 欧美性受xxx| 精品国产一区二区三区香蕉沈先生| 日韩av在线中文| 亚洲一区二区三区不卡国产欧美| 五月婷婷六月丁香| 国产精品久久一区| 在线中文一区| 黄色录像a级片| 欧美视频一区在线| 中文字幕在线观看播放| 久久精品人成| 毛片基地黄久久久久久天堂| 妺妺窝人体色www婷婷| 亚洲精品有码在线| 国产精品一区二区美女视频免费看 | 中文在线字幕免费观看| 国模一区二区三区私拍视频| 日韩精品乱码av一区二区| 免费人成在线观看| 国产亚洲一区精品| 波多野结衣欧美| 色哟哟精品视频| 亚洲成av人在线观看| 在线a免费看| 久久久久久久有限公司| 国产原创一区二区| aaaaaa毛片| 欧美高清视频在线播放|