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

面試官:MySQL的可重復讀級別能解決幻讀問題嗎?

數據庫 MySQL
之前在深入了解數據庫理論的時候,了解到事務的不同隔離級別可能存在的問題。為了更好的理解所以在MySQL數據庫中測試復現這些問題。關于臟讀和不可重復讀在相應的隔離級別下都很容易的復現了。

引言

之前在深入了解數據庫理論的時候,了解到事務的不同隔離級別可能存在的問題。為了更好的理解所以在MySQL數據庫中測試復現這些問題。關于臟讀和不可重復讀在相應的隔離級別下都很容易的復現了。

但是對于幻讀,我發現在可重復讀的隔離級別下沒有出現,當時想到難道是MySQL對幻讀做了什么處理?

測試:

創建一張測試用的表dept: 

  1. CREATE TABLE `dept` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `name` varchar(20) DEFAULT NULL,  
  4.   PRIMARY KEY (`id`)  
  5. ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8   
  6. insert into dept(name) values("后勤部") 

根據上面的流程執行,預期來說應該是事務1的第一條select查詢出一條數據,第二個select查詢出兩條數據(包含事務2提交的數據)。

但是在實際測試中發現第二條select實際上也只查詢處理一條數據。這是但是根據數據庫理論的可重復讀的實現(排他鎖和共享鎖)這是不應該的情況。

在了解實際原因前我們先復習下事務的相關理論。

數據庫原理理論

事務

事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作組成。

在關系數據庫中,一個事務可以是一組SQL語句或整個程序。

為什么要有事務

一個數據庫事務通常包含對數據庫進行讀或寫的一個操作序列。它的存在包含有以下兩個目的:

  •  為數據庫操作提供了一個從失敗中恢復到正常狀態的方法,同時提供了數據庫在異常狀態下仍能保持一致性的方法。
  •  當多個應用程序在并發訪問數據庫時,可以在這些應用程序之間提供一個隔離方法,保證彼此的操作互相干擾。

事務特性

事務具有4個特性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為 ACID 特性。

  •  原子性(atomicity):一個事務應該是一個不可分割的工作單位,事務中包括的操作要么都成功,要么都不成功。
  •  一致性(consistency):事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
  •  隔離性(isolation):一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據在事務未提交前對并發的其他事務是隔離的,并發執行的各個事務之間不能互相影響。
  •  持久性(durability):一個事務一旦成功提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。

事務之間的幾個特性并不是一組同等的概念:

如果在任何時刻都只有一個事務,那么其天然是具有隔離性的,這時只要保證原子性就能具有一致性。

如果存在并發的情況下,就需要保證原子性和隔離性才能保證一致性。

數據庫并發事務中存在的問題

如果不考慮事務的隔離性,會發生以下幾種問題:

臟讀

臟讀是指在一個事務處理過程里讀取了另一個未提交的事務中的數據。當一個事務正在多次修改某個數據,而在這個事務中這多次的修改都還未提交,這時一個并發的事務來訪問該數據,就會造成兩個事務得到的數據不一致。

不可重復讀

不可重復讀是指在對于數據庫中的某條數據,一個事務范圍內多次查詢返回不同的數據值(這里不同是指某一條或多條數據的內容前后不一致,但數據條數相同),這是由于在查詢間隔,該事務需要用到的數據被另一個事務修改并提交了。

不可重復讀和臟讀的區別是,臟讀是某一事務讀取了另一個事務未提交的臟數據,而不可重復讀則是讀取了其他事務提交的數據。需要注意的是在某些情況下不可重復讀并不是問題。

幻讀

幻讀是事務非獨立執行時發生的一種現象。例如事務T1對一個表中所有的行的某個數據項做了從“1”修改為“2”的操作,這時事務T2又對這個表中插入了一行數據項,而這個數據項的數值還是為“1”并且提交給數據庫。

而操作事務T1的用戶如果再查看剛剛修改的數據,會發現還有一行沒有修改,其實這行是從事務T2中添加的,就好像產生幻覺一樣,這就是發生了幻讀。

幻讀和不可重復讀都是讀取了另一條已經提交的事務(這點就臟讀不同),所不同的是不可重復讀可能發生在update,delete操作中,而幻讀發生在insert操作中。

排他鎖,共享鎖

排它鎖(Exclusive),又稱為X 鎖,寫鎖。

共享鎖(Shared),又稱為S 鎖,讀鎖。

讀寫鎖之間有以下的關系:

  •  一個事務對數據對象O加了 S 鎖,可以對 O進行讀取操作,但是不能進行更新操作。加鎖期間其它事務能對O 加 S 鎖,但是不能加 X 鎖。
  •  一個事務對數據對象 O 加了 X 鎖,就可以對 O 進行讀取和更新。加鎖期間其它事務不能對 O 加任何鎖。

即讀寫鎖之間的關系可以概括為:多讀單寫

事務的隔離級別

在事務中存在以下幾種隔離級別:

讀未提交(Read Uncommitted)

解決更新丟失問題。如果一個事務已經開始寫操作,那么其他事務則不允許同時進行寫操作,但允許其他事務讀此行數據。該隔離級別可以通過“排他寫鎖”實現,即事務需要對某些數據進行修改必須對這些數據加 X 鎖,讀數據不需要加 S 鎖。

讀已提交(Read Committed)

解決了臟讀問題。讀取數據的事務允許其他事務繼續訪問該行數據,但是未提交的寫事務將會禁止其他事務訪問該行。這可以通過“瞬間共享讀鎖”和“排他寫鎖”實現, 即事務需要對某些數據進行修改必須對這些數據加 X 鎖,讀數據時需要加上 S 鎖,當數據讀取完成后立刻釋放 S 鎖,不用等到事務結束。

可重復讀取(Repeatable Read)

禁止不可重復讀取和臟讀取,但是有時可能出現幻讀數據。讀取數據的事務將會禁止寫事務(但允許讀事務),寫事務則禁止任何其他事務。

Mysql默認使用該隔離級別。這可以通過“共享讀鎖”和“排他寫鎖”實現,即事務需要對某些數據進行修改必須對這些數據加 X 鎖,讀數據時需要加上 S 鎖,當數據讀取完成并不立刻釋放 S 鎖,而是等到事務結束后再釋放。

串行化(Serializable)

解決了幻讀的問題的。提供嚴格的事務隔離。它要求事務序列化執行,事務只能一個接著一個地執行,不能并發執行。僅僅通過“行級鎖”是無法實現事務序列化的,必須通過其他機制保證新插入的數據不會被剛執行查詢操作的事務訪問到。

MySQL中的隔離級別的實現

上面的內容解釋了一些數據庫理論的概念,但是在MySQL、ORACLE這樣的數據庫中,為了性能的考慮并不是完全按照上面介紹的理論來實現的。

MVCC

多版本并發控制(Multi-Version Concurrency Control, MVCC)是MySQL中基于樂觀鎖理論實現隔離級別的方式,用于實現讀已提交和可重復讀取隔離級別的實現。

實現(隔離級別為可重復讀)

在說到如何實現前先引入兩個概念:

  •  系統版本號:一個遞增的數字,每開始一個新的事務,系統版本號就會自動遞增。
  •  事務版本號:事務開始時的系統版本號。

在MySQL中,會在表中每一條數據后面添加兩個字段:

  •  創建版本號:創建一行數據時,將當前系統版本號作為創建版本號賦值
  •  刪除版本號:刪除一行數據時,將當前系統版本號作為刪除版本號賦值

SELECT

select時讀取數據的規則為:創建版本號<=當前事務版本號,刪除版本號為空或>當前事務版本號。

創建版本號<=當前事務版本號保證取出的數據不會有后啟動的事務中創建的數據。這也是為什么在開始的示例中我們不會查出后來添加的數據的原因

刪除版本號為空或>當前事務版本號保證了至少在該事務開啟之前數據沒有被刪除,是應該被查出來的數據。

INSERT

insert是將當前的系統版本號賦值給創建版本號字段。

UPDATE

插入一條新記錄,保存當前事務版本號為行創建版本號,同時保存當前事務版本號到原來刪除的行,實際上這里的更新是通過delete和insert實現的。

DELETE

刪除時將當前的系統版本號賦值給刪除版本號字段,標識該行數據在那一個事務中會被刪除,即使實際上在位commit時該數據沒有被刪除。根據select的規則后開啟的數據也不會查詢到該數據。

MVCC真的解決了幻讀?

從最開始我們的測試示例和上面的理論支持來看貌似在MySQL中通過MVCC就解決了幻讀的問題,那既然這樣串行化讀貌似就沒啥意義了,帶著疑問繼續測試。

測試前數據:

根據上面的結果我們期望的結果是這樣的:

id name
1 財務部
2 研發部

但是實際上我們的經過是:

本來我們希望得到的結果只是第一條數據的部門改為財務,但是結果確實兩條數據都被修改了。

這種結果告訴我們其實在MySQL可重復讀的隔離級別中并不是完全解決了幻讀的問題,而是解決了讀數據情況下的幻讀問題。而對于修改的操作依舊存在幻讀問題,就是說MVCC對于幻讀的解決時不徹底的。

快照讀和當前讀

出現了上面的情況我們需要知道為什么會出現這種情況。在查閱了一些資料后發現在RR級別中,通過MVCC機制,雖然讓數據變得可重復讀,但我們讀到的數據可能是歷史數據,不是數據庫最新的數據。

這種讀取歷史數據的方式,我們叫它快照讀 (snapshot read),而讀取數據庫最新版本數據的方式,叫當前讀 (current read)。

select 快照讀

當執行select操作是innodb默認會執行快照讀,會記錄下這次select后的結果,之后select 的時候就會返回這次快照的數據,即使其他事務提交了不會影響當前select的數據,這就實現了可重復讀了。

快照的生成當在第一次執行select的時候,也就是說假設當A開啟了事務,然后沒有執行任何操作,這時候B insert了一條數據然后commit,這時候A執行 select,那么返回的數據中就會有B添加的那條數據。

之后無論再有其他事務commit都沒有關系,因為快照已經生成了,后面的select都是根據快照來的。

當前讀

對于會對數據修改的操作(update、insert、delete)都是采用當前讀的模式。在執行這幾個操作時會讀取最新的記錄,即使是別的事務提交的數據也可以查詢到。

假設要update一條記錄,但是在另一個事務中已經delete掉這條數據并且commit了,如果update就會產生沖突,所以在update的時候需要知道最新的數據。也正是因為這樣所以才導致上面我們測試的那種情況。

select的當前讀需要手動的加鎖: 

  1. select * from table where ? lock in share mode;  
  2. select * from table where ? for update; 

有個問題說明下

在測試過程中最開始我以為使用begin語句就是開始一個事務了,所以在上面第二次測試中因為先開始的事務1,結果在事務1中卻查到了事務2新增的數據,當時認為這和前面MVCC中的select的規則不一致了,所以做了如下測試:

 

  1. SELECT * FROM information_schema.INNODB_TRX //用于查詢當前正在執行中的事務 

可以看到如果只是執行begin語句實際上并沒有開啟一個事務。

下面在begin后添加一條select語句:

所以要明白實際上是對數據進行了增刪改查等操作后才開啟了一個事務。

如何解決幻讀

很明顯可重復讀的隔離級別沒有辦法徹底的解決幻讀的問題,如果我們的項目中需要解決幻讀的話也有兩個辦法:

  •  使用串行化讀的隔離級別
  •  MVCC+next-key locks:next-key locks由record locks(索引加鎖) 和 gap locks(間隙鎖,每次鎖住的不光是需要使用的數據,還會鎖住這些數據附近的數據)

實際上很多的項目中是不會使用到上面的兩種方法的,串行化讀的性能太差,而且其實幻讀很多時候是我們完全可以接受的。 

 

責任編輯:龐桂玉 來源: Java知音
相關推薦

2024-05-13 11:46:33

MySQL數據庫

2023-11-01 14:13:00

MySQL事務隔離級別

2024-03-11 00:00:00

mysqlInnoDB幻讀

2022-06-29 11:01:05

MySQL事務隔離級別

2023-10-26 00:41:46

臟讀數據幻讀

2024-04-19 08:18:47

MySQLSQL隔離

2023-02-02 07:06:10

2022-01-03 07:18:05

臟讀幻讀 MySQL

2024-04-24 08:26:35

事務數據InnoDB

2022-09-21 09:00:10

MySQL幻讀隔離級別

2023-08-09 17:22:30

MVCCMySQL數據

2020-07-02 08:22:56

MySQL間隙鎖過行鎖

2010-09-30 16:21:40

DB2隔離級別

2024-07-16 08:19:46

MySQL數據InnoDB

2019-03-21 09:06:00

數據庫復讀幻讀

2022-04-27 07:32:02

臟讀幻讀不可重復讀

2021-08-02 09:01:05

MySQL 多版本并發數據庫

2021-06-11 16:59:41

MySQLRepeatableRead

2021-07-26 10:28:13

MySQL事務隔離

2022-06-30 08:00:00

MySQL關系數據庫開發
點贊
收藏

51CTO技術棧公眾號

免费黄色成人| 亚洲日本天堂| 99re视频这里只有精品| 国产成人综合亚洲| 一级片一级片一级片| 国产suv精品一区| 91高清在线观看| 久久久久久久久影视| 天堂а√在线8种子蜜桃视频| 久久久久久黄| 久久6免费高清热精品| 中文字幕一区二区三区人妻不卡| 久久亚洲精品中文字幕| 亚洲成人高清在线| 亚洲国产精品一区二区第四页av| 亚洲成人一二三区| 免费观看在线综合| 国产69精品久久久久9| 岛国片在线免费观看| 99re6热只有精品免费观看| 色诱视频网站一区| 国产xxxx振车| 欧美18hd| 国产女人aaa级久久久级| 99伊人久久| 中文字幕人妻丝袜乱一区三区| 1024成人| 欧美高清视频在线观看| 国产精品视频看看| 久久av电影| 亚洲国产精品字幕| 蜜桃视频无码区在线观看| 本网站久久精品| 色狠狠桃花综合| 久久久久久久午夜| 色婷婷视频在线观看| 国产精品二三区| 日韩电影免费观看高清完整| 亚洲色图21p| av中文一区二区三区| 亚洲综合精品伊人久久| 艳妇乳肉豪妇荡乳av| 日韩国产欧美视频| 日本国产一区二区三区| 日韩黄色精品视频| 韩日成人在线| 久久久久久香蕉网| 九九热精品在线观看| 久久久久久久久久久妇女| 深夜福利日韩在线看| 在线视频第一页| 精品国产一区二区三区av片| 亚洲人精选亚洲人成在线| 色天使在线视频| 精品久久对白| 亚洲精品国产欧美| 日韩aaaaa| 日本福利一区| 亚洲色无码播放| 美国黑人一级大黄| 欧美高清视频手机在在线| 日韩在线观看免费av| 美国黄色特级片| 国产国产精品| 欧美成人免费在线观看| 免费三片在线播放| 在线亚洲观看| 国产成人精品a视频一区www| 国产女主播喷水视频在线观看| 日本亚洲三级在线| 国产精品视频在线观看| 亚洲一区二区人妻| 国内成人精品2018免费看| 亚洲自拍偷拍视频| 黄色av小说在线观看| www.日韩大片| 日韩成人av电影在线| 日本精品在线| 亚洲国产视频一区二区| 欧美亚洲日本一区二区三区| 一区一区三区| 欧美精品1区2区| 美女被艹视频网站| 久久精品福利| 最近中文字幕2019免费| 欧美丰满艳妇bbwbbw| 一区二区激情| 国产精品免费一区二区三区都可以| 艳妇乳肉豪妇荡乳av| 大陆成人av片| 日本不卡一区二区三区视频| 好了av在线| 岛国av一区二区三区| 亚洲欧美久久久久| 成人性生交大片免费看96| 亚洲天堂av网| 久久久久久久久久91| 老司机午夜精品视频| 91精品在线国产| 亚洲av成人精品毛片| 中文字幕一区二区三区四区不卡 | 欧美超碰在线| 欧美成人精品激情在线观看| 制服.丝袜.亚洲.中文.综合懂色| 麻豆精品视频在线观看免费| 国产乱码精品一区二区三区不卡| 国产天堂素人系列在线视频| 伊人夜夜躁av伊人久久| 自拍偷拍 国产| 国产精品调教视频| xxx欧美精品| 99久久久久久久久| 成人小视频免费在线观看| 亚洲一区二区高清视频| 高清毛片在线观看| 日韩欧美在线观看一区二区三区| 无码国产69精品久久久久同性| 欧美另类女人| 国产专区欧美专区| 男男激情在线| 婷婷中文字幕综合| 日本精品一二三| 国产精品99久久| 国产精品69久久| 男人天堂综合网| 综合久久久久综合| 欧美性猛交xxx乱久交| 蜜臀av一区| 欧美激情极品视频| jizz国产视频| 亚洲欧美视频在线观看视频| 天天干天天干天天干天天干天天干| 久久久久高潮毛片免费全部播放| 久久久精品视频成人| 国产99免费视频| 91丨porny丨国产入口| 免费看黄在线看| 98视频精品全部国产| 久久99国产综合精品女同| 一级特黄aaa| 中文无字幕一区二区三区| 青青视频在线播放| 猫咪成人在线观看| 午夜精品一区二区三区在线| 亚洲va天堂va欧美ⅴa在线| 亚洲人成小说网站色在线 | 亚洲欧美综合区自拍另类| 国产极品在线播放| 成人激情午夜影院| 久久av综合网| 欧美福利在线播放网址导航| 97精品国产91久久久久久| 亚洲精品一区二区三区不卡| 一区二区高清视频在线观看| 在线观看你懂的视频| 欧美日本一区二区高清播放视频| aaa级精品久久久国产片| 日本无删减在线| 精品1区2区在线观看| 日韩成人免费在线观看| 972aa.com艺术欧美| 高清在线观看免费| 国产中文精品久高清在线不| 国产精品久久久久久久7电影| 第一福利在线| 911国产精品| 久久亚洲av午夜福利精品一区| 成人中文字幕电影| 97av视频在线观看| 成人av动漫在线观看| 亚洲va码欧洲m码| 免费av不卡在线观看| 亚洲精品av在线| 久久久久久久久久久影院| 欧美国产精品专区| 黄色片子免费看| 99精品视频免费观看| 欧美一级爱爱| 高清不卡一区| 97超级碰在线看视频免费在线看 | 国产精品久久久久久久久久久久久久久久久久 | 成人国产精品免费| 欧美一级黄色片视频| 成人婷婷网色偷偷亚洲男人的天堂| 91精品国产综合久久男男 | 国产a级片视频| 久久综合婷婷| 400部精品国偷自产在线观看| www.久久东京| 国产精品高清网站| a免费在线观看| 亚洲精品视频播放| 国产又色又爽又黄又免费| 亚洲一区二区3| 国产123在线| 不卡的av电影| 天天色天天综合网| 99re国产精品| 国产日韩视频在线播放| 牛牛影视久久网| 91久久国产婷婷一区二区| 1234区中文字幕在线观看| 这里只有精品在线播放| 成人毛片视频免费看| 欧美亚洲一区二区在线观看| 久久网免费视频| 国产精品视频观看| 精品人妻一区二区免费视频| 国产综合色视频| 久草综合在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 日韩中文字幕一区| 农村少妇一区二区三区四区五区 | 国产精品片aa在线观看| www.成人三级视频| 色狠狠一区二区三区| 欧美中文在线观看国产| 国产美女一区视频| www.色综合| 国产日韩精品在线看| 日韩国产高清视频在线| 精品人妻一区二区三区麻豆91| 欧美这里有精品| wwwwww国产| 婷婷开心激情综合| 久久亚洲av午夜福利精品一区| 日韩一区欧美一区| 少妇av片在线观看| 久久久99久久精品欧美| 日本69式三人交| 国产成人综合在线| 青青草原播放器| 精彩视频一区二区三区| 视色视频在线观看| 日本在线不卡视频一二三区| 激情婷婷综合网| 久久av在线| 国产欧美在线一区| 亚洲欧美日本国产专区一区| 欧美成人高潮一二区在线看| 亚洲精品护士| 欧美成人三级在线视频| 亚洲精品字幕| 国产素人在线观看| av不卡免费看| 欧美黑人经典片免费观看| 国产一区日韩一区| 无码日本精品xxxxxxxxx| 欧美天天在线| 国产av熟女一区二区三区| 欧美片第1页综合| 男人c女人视频| 国精品一区二区| 欧美久久在线观看| 中文一区二区| 欧洲av无码放荡人妇网站| 一本色道久久综合| 国产成人久久婷婷精品流白浆| 日日欢夜夜爽一区| www.精品在线| 国产一区二区导航在线播放| 亚洲熟妇一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 性囗交免费视频观看| 久久久综合精品| 少妇的滋味中文字幕bd| 亚洲欧洲av在线| 欧美爱爱小视频| 天天综合色天天综合色h| 无码人妻丰满熟妇区bbbbxxxx| 在线精品视频小说1| 国产永久免费视频| 日韩一卡二卡三卡四卡| 欧洲av在线播放| 亚洲一级免费视频| 黄色在线免费看| 久久青草福利网站| 日韩三级影视| 成人精品在线视频| 国产成人在线中文字幕| 欧美亚洲另类久久综合| 国产精品毛片久久| 国自产拍偷拍精品啪啪一区二区| 久久综合九色| 国内精品国产三级国产aⅴ久| 不卡区在线中文字幕| 99久久99久久精品免费看小说.| 亚洲欧美经典视频| 免费看日批视频| 91精品国产综合久久精品性色 | 在线观看亚洲区| 性欧美video高清bbw| 奇米影视亚洲狠狠色| 国产精品视频一区二区三区综合 | 夜间精品视频| 欧美一区二区三区爽大粗免费| 久久精品国产久精国产爱| 黑人玩弄人妻一区二区三区| 中文字幕av一区二区三区免费看| 精品爆乳一区二区三区无码av| 色婷婷综合久久久中文一区二区| 国产三区在线播放| 国产丝袜一区二区三区| 亚洲www色| 国产精品久久久亚洲| 国产劲爆久久| 国产麻豆电影在线观看| 午夜亚洲影视| 中文字幕在线观看91| 国产精品久久久久久久岛一牛影视| 波多野结衣国产| 日韩精品在线看片z| 日本中文字幕在线看| 青青久久aⅴ北条麻妃| 911精品国产| 26uuu成人| 蜜桃视频在线观看一区| free性中国hd国语露脸| 亚洲国产精品一区二区久久| 国产日产亚洲系列最新| 中文字幕亚洲欧美一区二区三区 | 狠狠噜噜久久| 久久久久久久久久久久久久久国产| 国产亚洲欧美一级| 久草手机在线观看| 亚洲国产成人一区| 后进极品白嫩翘臀在线播放| 亚洲a中文字幕| 99国产精品免费视频观看| 中文字幕国内自拍| 久久久精品影视| 五月激情六月丁香| 日韩激情av在线播放| 电影在线观看一区| 国产视频精品网| 在线欧美一区| 无码任你躁久久久久久老妇| 一区二区视频在线| 精品国自产在线观看| 欧美片一区二区三区| 免费一级欧美片在线观看网站| 国产av不卡一区二区| 精东粉嫩av免费一区二区三区| 国产男女猛烈无遮挡在线喷水| 欧美日韩高清影院| 在线观看完整版免费| 国产美女直播视频一区| 日韩精品影视| 亚洲免费黄色录像| 亚洲精品一二三区| 国产夫妻自拍av| 久久久久久亚洲| 欧美一性一交| 无码日韩人妻精品久久蜜桃| 国产亚洲福利社区一区| 国产情侣免费视频| 中文字幕精品av| 精品一区91| 97视频久久久| 久久亚洲二区三区| 中文字幕乱码人妻二区三区| 色偷偷9999www| 国产成年精品| 久久国产精品网| 久久久亚洲高清| 中文字幕乱码无码人妻系列蜜桃| 色悠悠国产精品| 亚洲一区二区三区在线免费| 阿v天堂2017| 国产亚洲综合在线| 国产免费黄色网址| 午夜精品一区二区三区在线播放 | www.-级毛片线天内射视视| 国产剧情一区在线| 日韩毛片在线视频| 亚洲欧美制服中文字幕| 四虎在线精品| 久色视频在线播放| 中文av字幕一区| 亚洲国产成人精品一区二区三区| 97视频在线观看视频免费视频| 精品freesex老太交| 亚洲天堂网2018| 香蕉av福利精品导航| 成人在线免费视频| 成人欧美一区二区三区视频xxx| 亚洲主播在线| 蜜臀久久精品久久久用户群体| 亚洲国产中文字幕久久网| 123成人网| 韩日视频在线观看| 国产精品久久久久久久久久久免费看 | 亚洲精品.com| 久久久无码中文字幕久...| 91麻豆swag| 国产理论片在线观看| 欧美在线一级视频| 欧美午夜影院| 国产麻豆a毛片| 日韩精品中文字幕在线观看|