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

我以為我對MySQL事務很熟,直到我遇到了阿里面試官

數據庫 MySQL
本文介紹了我遇到了阿里面試官后講的MySQL的一些事務,一起來看看吧。

迎面走來了一個風塵仆仆的身穿格子衫的男子,手里拿著一個MacBook Pro,看著那稀少的發量,和那從容淡定的眼神。

我心里一顫,我去,這是架構師,架構師來面我技術面,我心里頓時不淡定了,表面很穩實則心里慌得一批。

果然,他手里拿著我的簡歷,快速的掃了一下,然后用眼角余光看了一下我,上來就開問。

面試官: 看你簡歷上說精通Mysql優化方法,你先來說說你對Mysql的事務的了解吧。

我心里喜了一下,這個簡單啊,哥我可是北大(背大)的,再來面試之前,早就有準備的,二話不說,上去就是背。

我: 好的,數據庫的事務是指一組sql語句組成的數據庫邏輯處理單元,在這組的sql操作中,要么全部執行成功,要么全部執行失敗。

我: 這里的一組sql操作,舉個簡單又經典的例子就是轉賬了,事務A中要進行轉賬,那么轉出的賬號要扣錢,轉入的賬號要加錢,這兩個操作都必須同時執行成功,為了確保數據的一致性。

面試官: 剛才你提到了數據一致性,你知道事務的特性嗎?說說你的理解。

我: 在Mysql中事務的四大特性主要包含:原子性(Atomicity)、一致性(Consistent)、隔離性(Isalotion)、持久性(Durable),簡稱為ACID。

我: 原子性是指事務的原子性操作,對數據的修改要么全部執行成功,要么全部失敗,實現事務的原子性,是基于日志的Redo/Undo機制。

我: 一致性是指執行事務前后的狀態要一致,可以理解為數據一致性。隔離性側重指事務之間相互隔離,不受影響,這個與事務設置的隔離級別有密切的關系。

我: 持久性則是指在一個事務提交后,這個事務的狀態會被持久化到數據庫中,也就是事務提交,對數據的新增、更新將會持久化到數據庫中。

我: 在我的理解中,原子性、隔離性、持久性都是為了保障一致性而存在的,一致性也是最終的目的。

心里暗自歡喜,背完了,平時背的多,面試就會說,幸好難不倒我。

面試官: 剛才你說原子性是基于日志的Redo/Undo機制,你能說一說Redo/Undo機制嗎?

啊哈?我都說了什么,不小心給自己埋了一顆大雷。不慌,哥腦子里還有貨,假裝若有所思的停了幾十秒,接著背。

我: Redo/Undo機制比較簡單,它們將所有對數據的更新操作都寫到日志中。

我: Redo log用來記錄某數據塊被修改后的值,可以用來恢復未寫入 data file 的已成功事務更新的數據;Undo log是用來記錄數據更新前的值,保證數據更新失敗能夠回滾。

我: 假如數據庫在執行的過程中,不小心崩了,可以通過該日志的方式,回滾之前已經執行成功的操作,實現事務的一致性。

面試官: 可以舉一個場景,說一下具體的實現流程嗎?

我: 可以的,假如某個時刻數據庫崩潰,在崩潰之前有事務A和事務B在執行,事務A已經提交,而事務B還未提交。當數據庫重啟進行 crash-recovery 時,就會通過Redo log將已經提交事務的更改寫到數據文件,而還沒有提交的就通過Undo log進行roll back。

面試官:  之前你還提到事務的隔離級別,你能說一說嗎?

我: 可以的,在Mysql中事務的隔離級別分為四大等級,讀未提交(READ UNCOMMITTED)、讀提交 (READ COMMITTED)、可重復讀 (REPEATABLE READ)、串行化 (SERIALIZABLE)。

我: 讀未提交會讀到另一個事務的未提交的數據,產生臟讀問題,讀提交則解決了臟讀的,出現了不可重復讀,即在一個事務任意時刻讀到的數據可能不一樣,可能會受到其它事務對數據修改提交后的影響,一般是對于update的操作。

我: 可重復讀解決了之前不可重復讀和臟讀的問題,但是由帶來了幻讀的問題,幻讀一般是針對inser操作。

我: 例如:第一個事務查詢一個User表id=100發現不存在該數據行,這時第二個事務又進來了,新增了一條id=100的數據行并且提交了事務。

我:  這時第一個事務新增一條id=100的數據行會報主鍵沖突,第一個事務再select一下,發現id=100數據行已經存在,這就是幻讀。

面試官:  小伙子你能演示一下嗎?我不太會你能教教我嗎?我電腦在這里,你演示我看一看。

男人的嘴騙人的鬼,我信你個鬼,你這糟老頭子壞得很,出來裝X總是要還的,只能默默含淚把它敲完。

我: 首先創建一個User表,最為一個測試表,測試表里面有三個字段,并插入兩條測試數據。 

  1. CREATE TABLE User (  
  2.   id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,  
  3.   name VARCHAR(20),  
  4.   age INTDEFAULT 0  
  5. ENGINE=InnoDB DEFAULT CHARSET=gb2312 
  6. INSERT INTO `user` VALUES (1, 'zhangsan', 23);  
  7. INSERT INTO `user` VALUES (2, 'lisi', 20); 

我: 在Mysql中可以先查詢一下他的默認隔離級別,可以看出Mysql的默認隔離級別是REPEATABLE-READ。

我: 先來演示一下讀未提交,先把默認的隔離級別修改為READ UNCOMMITTED。

我: 他設置隔離級別的語句中set global transaction isolation level read uncommitted,這里的global也可以換成session,global表示全局的,而session表示當前會話,也就是當前窗口有效。

我: 當設置完隔離級別后對于之前打開的會話,是無效的,要重新打開一個窗口設置隔離級別才生效。

我: 然后是開啟事務,Mysql中開啟事務有兩種方式begin/start transaction,最后提交事務執行commit,或者回滾事務rollback。

我: 在執行begin/start transaction命令,它們并不是一個事務的起點,在執行完它們后的第一個sql語句,才表示事務真正的啟動 。

我: 這里直接打開兩個新的窗口,同時開啟事務,在第一個窗口先update一個id=1的數據行name改為'非科班的科班',執行成功。

我: 然后再第二個窗口執行兩次的查詢,分別是窗口一update之前的查詢和update之后的查詢。

我: 第一個session產生的未提交的事務的狀態就會直接影響到第二sesison,也就是臟讀。

我: 對于讀提交也是一樣的,開啟事務后,第一個事務先執行查詢數據,然后第二個session執行update操作,但是還沒有commit,這是第一個session再次select,數據并沒有改變,再第二個session執行commit之后,第一個session再次select就是改變后的數據了。

我: 這樣第一個事務的查詢結果就會收到第二事務的影響,這個也就是產生不可重復讀的問題。

面試官:  小伙子你能畫一下他執行的過程圖嗎?你講的我有點亂,我還沒有徹底明白。

我心里一萬只什么馬在飛過,欲哭無淚,這面試官真難伺候,說時遲那時快,從左屁股兜抽出筆,從右屁股兜拿出紙,開始畫。

我: 這個是讀提交的時間軸圖,讀未提交的時間軸圖,原理也一樣的,第二個select的時候數據就已經改變了。

這是面試官拿過我的圖看了一點,微微的點了點頭,嘴角露出思思的笑意,我想你這糟老頭子應該不會再刁難我了吧。

面試官:  嗯,你接著演示你的可重復讀吧。

我: 嗯,好的,然后就是可重復讀,和之前一樣的操作。

我: 將兩個session開啟為REPEATABLE READ,同時開啟事務,在第一個事務中先select,然后在第二個事務里面update數據行,可以發現即使第二個事務已經commit,第一個事務再次select數據也還是沒有改變,這就解決了不可重復讀的問題。

我: 這里有個不同的地方就是在Mysql中,默認的不可重復讀個隔離級別也解決了幻讀的問題。

我: 從上面的演示中可以看出第一個事務中先select一個id=3的數據行,這條數據行是不存在的,返回Empty set,然后第二個事務中insert一條id=3的數據行并且commit,第一個事務中再次select的,數據也好是沒有id=3的數據行。

我: 最后的串行化,樣式步驟也是一樣的,結果也和Mysql中默認的個可重復讀隔離級別的結果一樣,串行化的執行流程相當于把事務的執行過程變為順序執行,我這邊就不再做演示了。

我: 這四大等級從上到下,隔離的效果是逐漸增強,但是性能卻是越來越差。

面試官:  哦?性能越來越差?為什么會性能越來越差?你能說一說原因嗎?

哎呀,我這嘴,少說一句會死啊,這下好了,這個得說底層實現原理了,從原來的假裝若有所思,變成了真正得若有所思。

我: 這個得從Mysq的鎖說起,在Mysql中的鎖可以分為分享鎖/讀鎖(Shared Locks)、排他鎖/寫鎖(Exclusive Locks) 、間隙鎖、行鎖(Record Locks)、表鎖。

我: 在四個隔離級別中加鎖肯定是要消耗性能的,而讀未提交是沒有加任何鎖的,所以對于它來說也就是沒有隔離的效果,所以它的性能也是最好的。

我: 對于串行化加的是一把大鎖,讀的時候加共享鎖,不能寫,寫的時候,加的是排它鎖,阻塞其它事務的寫入和讀取,若是其它的事務長時間不能寫入就會直接報超時,所以它的性能也是最差的,對于它來就沒有什么并發性可言。

我: 對于讀提交和可重復讀,他們倆的實現是兼顧解決數據問題,然后又要有一定的并發行,所以在實現上鎖機制會比串行化優化很多,提高并發性,所以性能也會比較好。

我: 他們倆的底層實現采用的是MVCC(多版本并發控制)方式進行實現。

面試官:  你能先說一下先這幾個鎖的概念嗎?我不是很懂,說說你的理解。

我: 哦,好的,共享鎖是針對同一份數據,多個讀操作可以同時進行,簡單來說即讀加鎖,不能寫并且可并行讀;排他鎖針對寫操作,假如當前寫操作沒有完成,那么它會阻斷其它的寫鎖和讀鎖,即寫加鎖,其它讀寫都阻塞 。

我: 而行鎖和表鎖,是從鎖的粒度上進行劃分的,行鎖鎖定當前數據行,鎖的粒度小,加鎖慢,發生鎖沖突的概率小,并發度高,行鎖也是MyISAM和InnoDB的區別之一,InnoDB支持行鎖并且支持事務 。

我: 而表鎖則鎖的粒度大,加鎖快,開銷小,但是鎖沖突的概率大,并發度低。

我: 間隙鎖則分為兩種:Gap Locks和Next-Key Locks。Gap Locks會鎖住兩個索引之間的區間,比如select * from User where id>3 and id<5 for update,就會在區間(3,5)之間加上Gap Locks。

我: Next-Key Locks是Gap Locks+Record Locks形成閉區間鎖select * from User where id>=3 and id=<5 for update,就會在區間[3,5]之間加上Next-Key Locks。

面試官:  那Mysql中什么時候會加鎖呢?

我:  在數據庫的增、刪、改、查中,只有增、刪、改才會加上排它鎖,而只是查詢并不會加鎖,只能通過在select語句后顯式加lock in share mode或者for update來加共享鎖或者排它鎖。

面試官:  你在上面提到MVCC(多版本并發控制),你能說一說原理嗎?

我:  在實現MVCC時用到了一致性視圖,用于支持讀提交和可重復讀的實現。

我:  在實現可重復讀的隔離級別,只需要在事務開始的時候創建一致性視圖,也叫做快照,之后的查詢里都共用這個一致性視圖,后續的事務對數據的更改是對當前事務是不可見的,這樣就實現了可重復讀。

我:  而讀提交,每一個語句執行前都會重新計算出一個新的視圖,這個也是可重復讀和讀提交在MVCC實現層面上的區別。

面試官: 那你知道快照(視圖)在MVCC底層是怎么工作的嗎?

我: 在InnoDB 中每一個事務都有一個自己的事務id,并且是唯一的,遞增的 。

我: 對于Mysql中的每一個數據行都有可能存在多個版本,在每次事務更新數據的時候,都會生成一個新的數據版本,并且把自己的數據id賦值給當前版本的row trx_id。

面試官: 小伙子你可以畫個圖我看看嗎?我不是很明白。

我有什么辦法呢?完全沒辦法,只能又從屁股兜里拿出筆和紙,迅速的畫了起來,要是這次面試不過就血虧啊,浪費了我兩張紙和筆水,現在的筆和紙多貴啊,只能豁出去了。

我: 如圖中所示,假如三個事務更新了同一行數據,那么就會有對應的三個數據版本。

我: 實際上版本1、版本2并非實際物理存在的,而圖中的U1和U2實際就是undo log,這v1和v2版本是根據當前v3和undo log計算出來的。

面試官: 那對于一個快照來說,你知道它要遵循什么規則嗎?

我: 嗯,對于一個事務視圖來說除了對自己更新的總是可見,另外還有三種情況:版本未提交的,都是不可見的;版本已經提交,但是是在創建視圖之后提交的也是不可見的;版本已經提交,若是在創建視圖之前提交的是可見的。

面試官: 假如兩個事務執行寫操作,又怎么保證并發呢?

我: 假如事務1和事務2都要執行update操作,事務1先update數據行的時候,先回獲取行鎖,鎖定數據,當事務2要進行update操作的時候,也會取獲取該數據行的行鎖,但是已經被事務1占有,事務2只能wait。

我: 若是事務1長時間沒有釋放鎖,事務2就會出現超時異常 。

面試官: 這個是在update的where后的條件是在有索引的情況下吧?

我: 嗯,是的 。

面試官: 那沒有索引的條件下呢?沒辦法快速定位到數據行呢?

我: 若是沒有索引的條件下,就獲取所有行,都加上行鎖,然后Mysql會再次過濾符合條件的的行并釋放鎖,只有符合條件的行才會繼續持有鎖。

我: 這樣的性能消耗也會比較大。

面試官: 嗯嗯

此時面試官看看手表一個多鐘已經過去了,也已經到了飯點時刻,我想他應該是肚子餓了,不會繼續追問吧,兩人持續僵了三十秒,他終于開口了。

面試官: 小伙子,現在時間也已經到了飯點了,今天的面試就到此結束吧,你回去等通知吧。

我: 。。。。。。。。。。 

 

責任編輯:龐桂玉 來源: 數據庫開發
相關推薦

2019-07-15 16:35:43

MySQL索引阿里

2019-08-13 09:29:14

Kafka運營數據

2021-03-09 07:37:42

技術Promise測試

2021-04-12 09:09:57

Webpack 工具架構

2020-04-09 13:38:40

MySQL數據庫臟讀

2020-02-25 16:56:02

面試官有話想說

2021-12-02 08:19:06

MVCC面試數據庫

2021-11-05 10:07:13

Redis哈希表存儲

2021-09-27 07:11:18

MySQLACID特性

2021-02-16 10:53:19

單例模式面試

2019-08-23 09:20:35

Spring 5編程Java

2019-04-19 12:46:18

面試丁校招簡歷

2022-11-15 17:45:46

數據庫MySQL

2020-07-20 07:48:53

單例模式

2020-08-26 10:03:31

MySQL索引

2020-07-02 07:52:11

RedisHash映射

2023-07-13 08:19:30

HaspMapRedis元素

2022-02-11 19:06:29

MySQL索引面試官

2020-10-14 15:53:45

秒殺秒殺系統流量

2025-08-18 01:15:00

點贊
收藏

51CTO技術棧公眾號

久久青青草原| 中文字幕日韩在线播放| 激情深爱综合网| 久久久久久女乱国产| 免费在线成人网| 色综合老司机第九色激情| 少妇精品一区二区| 国产69精品久久久久按摩| 亚洲综合丁香婷婷六月香| 久久久综合香蕉尹人综合网| 在线免费观看高清视频| 亚洲三级免费| yellow中文字幕久久| 亚洲一区二区三区无码久久| 日本免费成人| 欧美性猛交xxxx黑人| 黄色a级在线观看| 欧美色综合一区二区三区| 国产一区二区成人久久免费影院 | 国产三级在线看| 国产乱码精品一区二区三区av| 欧美在线视频免费| 中文字幕在线观看成人| 国产一区二区三区探花| 亚洲精品一区二区三区影院| 亚洲天堂国产视频| 黑人巨大精品| 亚洲r级在线视频| 色一情一乱一乱一区91| 国际av在线| 91蜜桃视频在线| 国产激情美女久久久久久吹潮| 91激情在线观看| 视频一区欧美精品| 97香蕉久久超级碰碰高清版| 私库av在线播放| 99re久久最新地址获取| 亚洲色图25p| 国产精品无码网站| 国产成人一二| 精品国产三级a在线观看| 性欧美在线视频| 嫩草伊人久久精品少妇av杨幂| 精品国产999| r级无码视频在线观看| 午夜激情在线| 亚洲男人都懂的| 国产av不卡一区二区| 麻豆传媒视频在线| 国产精品久久久久精k8| 亚洲精美视频| jizz在线观看视频| 欧美国产综合一区二区| 亚洲二区自拍| 嫩草在线视频| 中文字幕五月欧美| 在线免费观看成人| av免费观看一区二区| 国产日韩高清在线| 日韩欧美一区二区三区四区 | 久久免费偷拍视频| 欧美精品人人做人人爱视频| 四虎精品成人影院观看地址| 久久一日本道色综合| 久久精品一区二区三区不卡免费视频| 四虎永久在线观看| ww亚洲ww在线观看国产| 日本在线观看一区| 9191在线| 亚洲理论在线观看| 国产96在线 | 亚洲| 免费电影日韩网站| 欧洲中文字幕精品| 亚洲综合激情视频| 中文字幕日韩在线| 亚洲精品99久久久久| 短视频在线观看| 精品亚洲成人| 欧美成年人视频网站欧美| 久操视频免费在线观看| 亚洲尤物影院| 国产精品视频导航| 精品女同一区二区三区| 波多野结衣一区二区三区| 欧美精品123| av网站在线免费观看| 亚洲日本欧美天堂| 波多野结衣综合网| 国产第一精品| 亚洲爱爱爱爱爱| 波多野在线播放| 综合久久十次| 欧美性做爰毛片| 亚洲一线在线观看| 成人免费视频一区二区| 日本午夜精品电影| 菠萝菠萝蜜在线观看| 欧美日韩在线另类| 中文字幕第一页在线视频| 欧美sss在线视频| 色噜噜狠狠狠综合曰曰曰| 国产一级性生活| 日本一不卡视频| 国产精品麻豆免费版| 福利成人在线观看| 亚洲福利视频三区| 亚洲免费黄色网| 日韩大尺度在线观看| www.日韩.com| 五月天激情四射| 免费看电影在线| 日本一级淫片免费放| 噜噜噜久久,亚洲精品国产品| 精品一二三四区| 精品日产一区2区三区黄免费 | 成人av网址在线| 四虎永久国产精品| 亚洲国产精品久| 亚洲一区二区| 国产国产精品人在线视| 欧美一级淫片免费视频魅影视频| 国产精品久久久久桃色tv| 91传媒久久久| 岛国精品一区| 久久伊人精品天天| 啪啪小视频网站| 久久99视频| 免费h在线看| 国产在线视频网址| 国内国产精品久久| 蜜桃视频在线观看成人| 欧美大片黄色| 91精品国产综合久久福利 | 日本道在线观看| 91精品天堂福利在线观看| 日本精品va在线观看| 亚洲精品一区二区三区四区| 中文字幕亚洲在| 最新天堂中文在线| 国产欧美日韩| 国产91在线视频| 奇米影视888狠狠狠777不卡| 天天做天天摸天天爽国产一区| 日本一区二区免费视频| 欧美.www| av在线亚洲男人的天堂| 少女频道在线观看免费播放电视剧| 欧美另类变人与禽xxxxx| 欧美自拍偷拍网| 另类人妖一区二区av| 午夜精品区一区二区三| 99久久er| 久久精品福利视频| 国产人妖一区二区| 一区二区三区在线视频观看58 | 在线色欧美三级视频| 蜜臀精品一区二区三区| 久久久久久9999| 热久久精品免费视频| 成人情趣视频| 成人免费黄色网| www在线视频| 精品国免费一区二区三区| 久久精品国产亚洲AV无码麻豆 | www.综合网.com| 亚洲第一视频网| 日韩中文字幕在线观看视频| 国产日韩欧美高清在线| 污片在线免费看| 在线中文字幕第一区| 91精品国产高清久久久久久91裸体| 色操视频在线| 日韩国产在线播放| 国产男人搡女人免费视频| 国产精品毛片无遮挡高清| 色婷婷激情视频| 亚洲人www| 日本一区二区三区精品视频| 四虎精品在线观看| 欧美激情一级二级| 免费黄色在线视频网站| 欧美三级中文字幕在线观看| 五月天丁香激情| 99国产精品久久久| 亚洲36d大奶网| 欧美成人一区二免费视频软件| 精品国产一区二区三区日日嗨| 蜜桃成人精品| 欧美激情综合亚洲一二区| 亚洲欧美日韩动漫| 欧美日韩高清一区二区不卡| 久久综合综合久久| 国产午夜精品久久| 久久久久亚洲av片无码v| 国产一区二区三区的电影| 婷婷五月色综合| 精品亚洲精品| 成人国产精品久久久久久亚洲| 蜜臀久久精品| 欧美成人免费观看| 波多野结衣在线网站| 欧美精品一区二区三区高清aⅴ| 久久这里只有精品9| 亚洲一区二区三区四区中文字幕| 白白色免费视频| 成人国产精品视频| 亚洲欧美偷拍另类| 性欧美videos另类喷潮| 中国老女人av| 成人影视亚洲图片在线| 国产在线精品一区二区中文 | 很污很黄的网站| 91玉足脚交白嫩脚丫在线播放| 成人黄色一级大片| 日韩制服丝袜av| 777av视频| 欧美日本不卡高清| 超碰免费在线公开| 欧美理论视频| 蜜桃久久精品乱码一区二区| 欧美一区一区| 91精品久久久久久久久久久久久久 | 亚洲大奶少妇| 成人久久久久久| 91亚洲视频| 日本亚洲欧洲色α| 2019中文字幕在线电影免费| 欧美精品做受xxx性少妇| 在线观看黄av| 亚洲最新视频在线| 视频一区二区在线播放| 亚洲第一视频网站| 成人免费观看在线视频| 91精品婷婷国产综合久久性色| 久久久久久av无码免费看大片| 黑人狂躁日本妞一区二区三区 | 网爆门在线观看| 国产欧美一区二区三区鸳鸯浴 | 嫩草av久久伊人妇女超级a| 久久精品久久久| 视频在线99| 伊人久久大香线蕉av不卡| 国产日韩亚洲精品| a级日韩大片| 国产精品一区二区三区在线| 一区二区免费| 999视频在线观看| 一区二区三区无毛| 成人在线观看视频网站| 91成人在线网站| 成人在线激情视频| 精品999日本久久久影院| 91中文精品字幕在线视频| 国产美女久久| 91久久久久久久久| 粉嫩一区二区三区在线观看| 91精品在线看| 国内不卡的一区二区三区中文字幕| 成人a在线观看| 精品一区视频| 国产伦一区二区三区色一情| 国产欧美自拍一区| 欧美男人的天堂| 成人免费电影网址| 亚洲综合激情五月| 涩涩视频网站在线观看| 精品淫伦v久久水蜜桃| 欧美欧美欧美欧美首页| 国产精品传媒在线观看| 欧美日韩免费视频| 99er热精品视频| 日韩精品中文字幕一区二区三区 | 欧美大胆人体bbbb| 男人天堂网在线视频| 亚洲欧美日韩视频一区| av在线资源网| 欧美猛交免费看| 日本黄色免费在线| 国产精品一区二区三区毛片淫片 | 国产美女主播视频一区| 国产精久久久久| 久久综合久久综合久久| 国产又粗又猛又爽又黄的视频四季| 亚洲精品免费看| 国产免费观看av| 欧美人动与zoxxxx乱| 亚洲黄色在线播放| 亚洲欧美日韩精品久久奇米色影视| 香蕉视频免费在线播放| 亚洲性夜色噜噜噜7777| www.日本高清| 久久久久久久久一| 日本黄色小说视频| 色哟哟国产精品| 国产高潮流白浆喷水视频| 日韩精品中文字幕在线观看| 色三级在线观看| 欧美在线观看一区二区三区| 中文幕av一区二区三区佐山爱| 精品欧美一区二区三区久久久 | 国内av在线播放| 精品电影一区二区三区| 永久免费av在线| 777777777亚洲妇女| 四虎国产精品永久在线国在线| 国产欧美丝袜| 中文视频一区| 日本新janpanese乱熟| 不卡影院免费观看| 北条麻妃在线观看视频| 色嗨嗨av一区二区三区| 好吊色视频一区二区| 久久精品国产精品亚洲| 欧美成人性网| 精品国产乱码久久久久久108| 99久久激情| 欧美在线观看视频网站| 成人激情视频网站| 一区二区国产精品精华液| 欧美制服丝袜第一页| 天堂在线观看视频| 欧美大片在线影院| 国产亚洲高清一区| 亚洲高清视频在线观看| 久久久夜精品| 亚洲一区二区乱码| 亚洲电影在线免费观看| av中文字幕第一页| 色婷婷综合久久久久中文字幕1| 依依综合在线| 久久久久久久久久码影片| 激情视频一区| 无码人妻一区二区三区精品视频| 亚洲欧洲制服丝袜| 中文字幕有码视频| 在线观看免费高清视频97| 欧美电影免费观看| 日本一区二区三区免费看| 久久不射网站| 日韩一级av毛片| 在线免费观看日本一区| 国产中文字幕在线| 国产精品成熟老女人| 国产欧美日韩在线观看视频| 国产一区视频免费观看| 久久久久青草大香线综合精品| 亚洲午夜18毛片在线看| 亚洲美女中文字幕| 伊人久久视频| 日韩av影视| 免播放器亚洲一区| 老司机精品免费视频| 在线播放一区二区三区| 国产在线观看91| 亚洲精品欧美一区二区三区| 欧美日韩一卡| 亚洲国产综合视频| 色悠久久久久综合欧美99| 国产高清视频在线| 国产精品一区二区久久| 午夜精品视频一区二区三区在线看| 亚洲高清视频免费| 一区二区三区在线免费播放| 动漫av一区二区三区| 91av在线免费观看| 精品国产一区二区三区| 一级黄色在线播放| 亚洲自拍偷拍图区| 日韩毛片在线一区二区毛片| 国产精品99久久久久久久久| 999久久久精品一区二区| 亚洲r级在线视频| 欧洲精品在线播放| 亚洲美女尤物影院| 欧美日韩中文另类| 亚洲av无码国产精品久久| 精品国产户外野外| 成年人视频在线免费观看| 91精品国产自产在线| 国内揄拍国内精品久久| 国产精品无码永久免费不卡| 欧美午夜影院一区| 调教一区二区| 日本电影一区二区三区| 极品美女销魂一区二区三区免费| 免费在线看黄网址| 亚洲人精品午夜在线观看| 国产精品日本一区二区三区在线| 福利视频一区二区三区四区| 国产精品毛片无码| 国产日韩在线视频| 亚洲国产影院| 2017亚洲天堂| 日韩精品视频免费专区在线播放| 国产一区高清| 免费观看精品视频| 亚洲精品国产一区二区精华液| 日韩专区一区二区| 2022国产精品| 美女视频第一区二区三区免费观看网站|