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

說說一致性讀實現原理?

開發(fā) 前端
這個問題是我當初在面天貓的時候,2面的面試官問我的,我之前已經寫過mvcc的文章了,但是在看到我筆記的里的這個問題的時候我準備單獨理一遍,所以就有了這個文章。

 [[353788]]

本文轉載自微信公眾號「三太子敖丙」,可以通過以下二維碼關注。轉載本文請聯系三太子敖丙公眾號。

這個問題是我當初在面天貓的時候,2面的面試官問我的,我之前已經寫過mvcc的文章了,但是在看到我筆記的里的這個問題的時候我準備單獨理一遍,所以就有了這個文章。

現在,主流關系型數據庫產品基本都實現了MVCC的特性,快照在MVCC中起著重要的作用,代表某一時刻數據的版本,它是實現一致性讀的基礎。在更新操作沒提交前,數據的前鏡像存儲在Undo中,利用Undo可以實現一致性讀,事務回滾以及異常恢復等操作,下面就聊聊MySQL事務,MVCC,快照及一致讀的原理與實現。

MySQL中的事務

事務在RDBMS系統(tǒng)中概念基本都是一樣的,是由一組DML語句構的工作單元,要么全部成功,要么全部失敗。

開發(fā)過程中,比較關心長事務,即包含DML語句多的工作單元,事務太長會導致一些錯誤,例如可能由于事務數據包大小超過參數max_allowed_packet設置會導致程序報錯,也可能有事務中某個SQL對應接口報錯,導致整個服務調用失敗,在程序設計時,應該考慮避免長事務帶來的業(yè)務影響。

事務的ACID

image-20201114221841801

原子性是事務隔離的基礎,隔離性和持久性是手段,最終目的是為了保持數據的一致性。

事務的并發(fā)問題

  • 臟讀:事務A讀取了事務B未提交的數據。
  • 不可重復度:事務A多次讀取同一份數據,事務B在此過程中對數據修改并提交,導致事務A多次讀取同一份數據的結果不一致。
  • 幻讀:事務A修改數據的同時,事務B插入了一條數據,當事務A提交后發(fā)現還有數據沒被修改,產生了幻覺。

不可重復讀側重于update操作,幻讀側重于insert或delete。解決不可重復讀的問題只需鎖住滿足條件的行,解決幻讀需要鎖表。

事務隔離級別

事務隔離是數據庫處理的基礎之一,隔離級別在多個事務同時進行更改和執(zhí)行查詢時,對性能與結果的可靠性、一致性和可再現性之間的平衡進行調整,InnoDB利用不同的鎖策略支持不同隔離級別。MySQL中有四種隔離級別,分別是讀未提交(READ UNCOMMITTED),讀已提交(READ COMMITTED),可重復讀(REPEATABLE READ)以及串行化(SERIALIZABLE)。

隔離級別 臟讀 不可重復讀 幻讀
READ UNCOMMITTED Yes Yes Yes
READ COMMITTED No Yes Yes
REPEATABLE READ No No Yes
SERIALIZABLE No No No

InnoDB并發(fā)控制

MVCC特性

InnonDB是一個支持行鎖的存儲引擎,為了提供更好支持的并發(fā),使用了非鎖定讀,不需要等待訪問數據上的鎖釋放,而是讀取行的一個快照,該方法是通過InnonDB MVCC特性實現的。

MVCC是Multi-Version Concurrency Control的簡稱,即多版本并發(fā)控制,作用是讓事務在并行發(fā)生時,在一定隔離級別前提下,可以保證在某個事務中能實現一致性讀,也就是該事務啟動時根據某個條件讀取到的數據,直到事務結束時,再次執(zhí)行相同條件,還是讀到同一份數據,不會發(fā)生變化。

MVCC的好處

讀不加鎖,讀寫不沖突。在讀多寫少的OLTP應用中,讀寫不沖突是非常重要的,可以增加系統(tǒng)的并發(fā)性能。

在MVCC中,有兩種讀操作:快照度和當前讀。

MVCC快照

MVCC內部使用的一致性讀快照稱為Read View,在不同的隔離級別下,事務啟動時或者SQL語句開始時,看到的數據快照版本可能也不同,在RR、RC隔離級別下會用到 Read view。

InnoDB 里面每個事務有一個唯一的事務ID,稱為Transaction ID,它是在事務開始的時候向InnoDB的事務系統(tǒng)申請的,是按申請順序嚴格遞增的。而每行數據都有多個版本。每次事務更新數據的時候,都會生成一個新的數據版本Read View,并且把Transaction ID賦值給這個數據版本的事務 ID,標記為 row_trx_id。同時舊的數據版本要保留,并且在新的數據版本中,能夠有信息可以直接拿到它,數據表中的一行記錄,其實可能有多個數據版本 ,每個版本有自己的 row_trx_id。

InnoDB行格式

目前InnoDB默認的行格式Dynamic,是Compat格式的增強版,記錄頭結構信息占用5個字節(jié),事務ID和回滾指針分別占用6和7個字節(jié),行格式如下:

記錄頭結構

項目 大小(bit) 描述
() 1 Unknown
() 1 Unknown
deleted_flag 1 數據行刪除標記
min_rec_flag 1 =1如果該記錄被預先被定義為最小的記錄
n_owned 4 擁有的記錄數
heap_no 13 索引堆中該條記錄的排序位置
record_type 3 記錄類型;000:普通,001:B+樹葉子節(jié)點,010:偽列Infinum,011:Supernum,1xx:保留
next_record 16 page中下一條記錄的相對位置
Transaction ID 48 記錄中的事務ID,固定6個字節(jié)
Rollback Pointer 56 回滾指針,固定7個字節(jié)

數據行存儲

  1. #創(chuàng)建表 
  2. mysql> create table store_users (id int not null auto_increment primary key comment '主鍵id',name varchar(20) not null default '' comment '姓名'); 
  3. # 查看表狀態(tài)信息 
  4. mysql> show table status like 'store_users'\G 
  5.      Row_format: Dynamic    #默認行格式為Dynamic 
  6.            Rows: 0          #行數 
  7.  Avg_row_length: 0          #平均行長度 
  8.     Data_length: 16384      #初始化段大小16K 
  9.      
  10. #開啟事務,插入數據 
  11. mysql> begin
  12. mysql> insert into store_users values(null'aaaaa'),(null'bbbbb'); 
  13. #查看InnoDB分配的事務ID 
  14. mysql> select trx_id from information_schema.innodb_trx\G 
  15. trx_id: 8407246  #事務ID 

分析表的行頭信息以及隱藏的事務ID和回滾指針。

  1. # 用Linux下的工具hexdump進行分析 
  2. $ hexdump -C -v /usr/local/var/mysql/test/store_users.ibd > store_users.txt  
  3. $ vi store_users.txt 
  4. 00010060  02 00 1b 69 6e 66 69 6d  75 6d 00 03 00 0b 00 00  |...infimum......| 
  5. 00010070  73 75 70 72 65 6d 75 6d  05 00 00 10 00 1c 80 00  |supremum........| 
  6. 00010080  00 01 00 00 00 80 48 ce  83 00 00 01 d8 01 10 61  |......H........a|   #Record Header信息 
  7. 00010090  61 61 61 61 05 00 00 18  ff d6 80 00 00 02 00 00  |aaaa............| 
  8. 000100a0  00 80 48 ce 83 00 00 01  d8 01 1d 62 62 62 62 62  |..H........bbbbb| 
  9. 000100b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| 
  • 10表示變長字段長度,只有一個varchar(20)沒有超過256字節(jié),且沒有NULL值。
  • 00代表NULL標志位,第一行沒有為NULL數據。
  • 字符a的十六進制是61,即61 61 61 61 61代表的是字段值aaaaa
  • 00 00 00 80 48 ce 6個字節(jié)就是Transaction ID,轉換成十進制8407246,正是上面information_schema.innodb_trx.trx_id列的值,trx_id: 8407246 。
  • 83 00 00 01 d8 01 10 7個字節(jié)是Rollback Pointer。
  • 1c 80 00 00 01 是5個字節(jié),代表Record Header信息。

隔離級別與快照

REPEATABLE READ

默認的隔離級別,一致讀快照(Read View)是在第一次SELECT發(fā)起時建立,之后不會再發(fā)生變化。如果在同一個事務中發(fā)出多個非 鎖定SELECT語句,那么這些SELECT語句在事務提交前返回的結果是一致的。

在RR下快照Read View不是事務發(fā)起時創(chuàng)建,而是在第一個SELECT發(fā)起后創(chuàng)建。

READ COMMITTED

在READ COMMITTED讀已提交下,一致讀快照(Read View)是在每次SELECT后都會生成最新的Read View,即每次SELECT都能讀取到已COMMIT的數據,就會存在不可重復讀、幻讀 現象。

Undo回滾段

當開啟事務執(zhí)行更新語句(insert/update/deeldte),會經過Server層的處理生成執(zhí)行計劃,然后調用存儲引擎層接口去讀寫數據,用戶沒有觸發(fā)COMMIT或ROLLBACK之前,這些Uncommitted Data的數據稱為前鏡像(Post Image),數據存儲在Undo Log,以便用戶回滾或者MySQL Server Crash的恢復,同時Undo Log是循環(huán)覆蓋使用。

  1. #開啟事務,更新賬戶余額,不提交事務。 
  2. mysql> start transaction
  3. mysql> update account set balance = 100000 where account_no = 10001; 
  4. Rows matched: 1  Changed: 1  Warnings: 0 

上面在RR隔離級別下,開啟一個事務,做update更新操作,不提交事務,通過show engine innodb status\G查看undo情況。

  1. Trx id counter 8407258 
  2. Purge done for trx's n:o < 8407257 undo n:o < 0 state: running but idle 
  3. History list length 33 
  4. ...... 
  5. ---TRANSACTION 8407257, ACTIVE 154 sec 
  6. 2 lock struct(s), heap size 1136, 4 row lock(s), undo log entries 1 

Trx id counter 8407258當前的事務ID,undo log entries 1使用了的undo entries,ACTIVE 154 sec事務持續(xù)時間,事務commit后,會調用Purge Thread把undo中的老數據清理掉。

回滾記錄

insert:反向操作是delete,undo里記錄的是delete相關信息,存儲主鍵id即可。

udpate:反向操作是update,undo里記錄的是update前的相關數據。

delete:反向操作是insert,undo里記錄的是insert values(…..)相關的記錄。

從這里可以知道,更新操作占用Undo空間的大小排序如下:

delete > update > insert

所以不建議物理delete刪除數據,會產生大量的Undo Log,Undo快被寫滿就會發(fā)生切換,在次期間會有大量的IO操作,導致業(yè)務的DML都會變得很慢。

一致性讀

MySQL官方文檔對一致讀的描述:

讀操作基于某個時間點得到一份那時的數據快照,而不管同時其他事務對數據的修改。查詢過程中,若其他事務修改了數據,那么就需要從 undo log中獲取舊版本的數據。這么做可以有效避免因為需要加鎖(來阻止其他事務同時對這些數據的修改)而導致事務并行度下降的問題。

在可重復讀(REPEATABLE READ,簡稱RR)隔離級別下,數據快照版本是在第一個讀請求發(fā)起時創(chuàng)建的。在讀已提交(READ COMMITTED,簡稱RC)隔離級別下,則是在每次讀請求時都會重新創(chuàng)建一份快照。

一致性讀是InnoDB在RR和RC下處理SELECT請求的默認模式。由于一致性讀不會在它請求的表上加鎖,其他事務可以同時修改數據不受影響。

一行數據有多個版本,每個數據版本有自己的trx_id,每個事務或者查詢通過trx_id生成自己的一致性視圖。普通select語句是一致性讀,一致性讀會根據row trx_id和一致性視圖確定數據版本的可見性,圖中UR1,UR2就是undo,存儲在Undo Log中,每次查詢時根據當前data page和 Undo page構造出一致性數據頁(Consistent Read Page),通過讀取CR Page將數據返回給用戶。

總結

介紹了MySQL事務,快照,MVCC以及Undo,雖然這些東西比較抽象,但是搞清楚這些東西是一件很有意義的事,能夠幫助我們更好的理解和使用MySQL,也可以把這種設計思想用在自己業(yè)務系統(tǒng)中。其中Undo在MySQL中的作用很重要,它是MVCC能夠快速創(chuàng)建快照基礎,支撐系統(tǒng)的高并發(fā)。

好啦,以上就是本期的全部內容了,我是敖丙,你知道的越多,你不知道的越多,我們下期見。

 

責任編輯:武曉燕 來源: 三太子敖丙
相關推薦

2017-07-25 14:38:56

數據庫一致性非鎖定讀一致性鎖定讀

2022-03-22 09:54:22

Hash算法

2011-05-04 10:19:13

MVCC

2020-09-10 16:50:32

mysqldump數據庫熱備

2018-08-08 15:51:44

Hash分布式算法

2024-04-10 10:34:34

Cache系統(tǒng)GPU

2022-12-14 08:23:30

2011-05-04 09:43:23

當前模式讀一致性讀

2022-11-10 07:49:09

hash算法代碼

2016-12-19 18:41:09

哈希算法Java數據

2021-02-05 08:00:48

哈希算法?機器

2021-02-02 12:40:50

哈希算法數據

2021-05-19 21:50:46

Hash算法測試

2023-08-14 08:10:33

CPU緩存RFO

2021-11-12 08:38:26

一致性哈希算法數據結構

2025-09-08 07:25:16

2020-05-12 10:43:22

Redis緩存數據庫

2021-06-30 21:13:49

CPUCache數據

2022-10-19 12:22:53

并發(fā)扣款一致性

2020-09-10 10:26:44

MySQL數據庫MVCC
點贊
收藏

51CTO技術棧公眾號

制服丝袜av在线| 久久艹国产精品| 国产又粗又长又黄| 亚洲视频在线免费| 精品国产3级a| 欧美视频第一区| 夜级特黄日本大片_在线| 国产在线不卡一区| 欧美一区在线直播| 免费在线观看a级片| 大桥未久女教师av一区二区| 欧美日韩在线免费观看| 自拍偷拍一区二区三区| 深夜福利视频网站| 免费av成人在线| 韩日精品中文字幕| 美国黄色片视频| 亚洲丁香日韩| 日韩一区二区免费视频| 国产男女激情视频| 日本三级在线观看网站| 国产午夜精品理论片a级大结局| 成人黄色网免费| 亚洲欧美综合自拍| 欧美.日韩.国产.一区.二区| 亚洲深夜福利在线| 欧美激情 亚洲| 亚洲男女网站| 日本韩国精品在线| 18禁网站免费无遮挡无码中文| av网在线观看| 91免费视频网| 国产精品久久亚洲7777| 在线视频播放大全| 久久久综合网| 97国产真实伦对白精彩视频8| 情侣偷拍对白清晰饥渴难耐| 免费看成人哺乳视频网站| 欧美草草影院在线视频| 一级黄色片在线免费观看| 性欧美超级视频| 午夜精品在线视频一区| www.99riav| 男人资源在线播放| 国产精品美女久久久久久久久久久 | 成人国产精品久久久网站| 大香伊人久久精品一区二区 | 91国产精品视频在线观看| h片在线观看视频免费| 亚洲柠檬福利资源导航| 在线免费观看成人| 成人亚洲综合天堂| 久久影音资源网| 蜜桃精品久久久久久久免费影院| 可以免费看毛片的网站| 懂色一区二区三区免费观看| 96sao精品视频在线观看| 97成人在线观看| 蜜臀av一区二区三区| 国产精品第一视频| 艳妇乳肉豪妇荡乳av无码福利 | 性欧美xxxx视频在线观看| 成人免费视频入口| 色小子综合网| 日韩在线观看免费全集电视剧网站| 色欲AV无码精品一区二区久久| 国产亚洲欧美日韩在线观看一区二区 | 国产精品久久久久久久久果冻传媒| 欧美一区二区综合| 国产中文字幕在线观看| 国产日韩欧美综合一区| 台湾成人av| 午夜伦全在线观看| 亚洲色图另类专区| 欧美一级免费播放| a欧美人片人妖| 色婷婷av一区二区| 亚洲精品性视频| 亚洲精品一区在线| 亚洲精品av在线播放| 一级性生活毛片| 精品福利久久久| 久久精品视频中文字幕| 久久精品欧美一区二区| 中文亚洲免费| 国产精品网站大全| 99在线小视频| 99久久精品国产一区| 日本在线视频不卡| 国产美女在线观看| 欧美性猛交xxxx久久久| 在线观看免费成人av| 亚洲热av色在线播放| 亚洲成人亚洲激情| 久久午夜福利电影| 亚洲国产精品成人| 欧美专区日韩视频| 一区二区三区精彩视频| 成人一区二区在线观看| 欧美日韩国产综合视频在线| 免费网站免费进入在线| 亚洲第一搞黄网站| 丰满少妇在线观看| 99久久免费精品国产72精品九九| 亚洲美女av网站| 成人在线观看高清| 久久免费高清| 国产高清一区视频| 成人在线免费视频| 亚洲主播在线观看| 久久婷五月综合| 精品三级av在线导航| 色悠悠久久久久| 五月天综合激情| 国产自产视频一区二区三区| 久久综合九色综合网站| 高潮毛片在线观看| 色久综合一二码| 久久久久久婷婷| 亚洲精品国产偷自在线观看| 欧洲美女免费图片一区| 精品国产av一区二区| 久久精品在线免费观看| 国产精品www在线观看| 亚洲精品成人一区| 亚洲三级免费看| 在线观看免费国产视频| 成人在线视频一区二区| 中文字幕日韩精品久久| 日日夜夜天天综合| 日韩av最新在线观看| 国产在线综合网| 国产精品69毛片高清亚洲| 亚洲精品一区二区三区四区五区 | 国产精品成人v| 色噜噜在线播放| 亚洲影院免费观看| 天天操精品视频| 亚洲精品在线观看91| 国产精品亚洲欧美导航| yiren22综合网成人| 欧美日韩性生活视频| 亚洲成人av免费在线观看| 国产一区日韩欧美| 91在线视频导航| 97人人在线| 欧美三电影在线| 欧美成人国产精品一区二区| 美女精品一区| 欧洲一区二区日韩在线视频观看免费 | 日韩毛片在线免费看| 国产精品毛片视频| 欧美精品videos| 日韩有码第一页| 亚洲成人黄色影院| 国产精品扒开腿做爽爽爽a片唱戏| 欧美日一区二区在线观看 | 18久久久久久| 无码精品人妻一区二区三区影院| 亚洲 欧美综合在线网络| 亚洲乱妇老熟女爽到高潮的片| 欧美va天堂在线| 91黄在线观看| xxxx视频在线| 亚洲国产精品久久精品怡红院| 中文字幕一区二区三区手机版| 成人亚洲一区二区一| 欧美爱爱视频免费看| 日日狠狠久久偷偷综合色| 欧美在线视频一区| 黄色影院在线播放| 欧美精品一二三| 欧美日韩一级大片| 成人免费毛片嘿嘿连载视频| 凹凸国产熟女精品视频| jlzzjlzz亚洲女人| 1区1区3区4区产品乱码芒果精品| 欧美巨大xxxx做受沙滩| 亚洲精品大尺度| 亚洲欧美偷拍视频| 国产精品久久久久久亚洲伦| 日本美女久久久| 亚洲国产专区| 日韩精品久久久毛片一区二区| 日韩电影精品| 久久露脸国产精品| 浮生影视网在线观看免费| 正在播放一区二区| 精品成人久久久| 国产精品色哟哟网站| 亚洲成人激情小说| 日韩精品一二三四| 糖心vlog在线免费观看| 日韩电影在线观看完整免费观看| 国产精品久久久久久久久久久不卡| 国产三区视频在线观看| 日韩高清免费在线| 一二区在线观看| 亚洲成人第一页| 99久久99久久精品免费看小说.| 国产成人精品一区二| 欧美性大战久久久久xxx | 国内精品视频| 国产91精品久| 菠萝菠萝蜜在线视频免费观看| 日韩成人在线视频网站| 国产裸体无遮挡| 色综合视频一区二区三区高清| 精品国产乱码久久久久久鸭王1| 91日韩一区二区三区| 色偷偷中文字幕| 三级久久三级久久久| 精品国产av无码一区二区三区| jiujiure精品视频播放| 精品国产_亚洲人成在线| 日韩一级视频| 国产精品久久av| 草草在线视频| 操91在线视频| 在线激情网站| 亚洲性生活视频| 黄色av免费观看| 欧美一区二区三区不卡| a片在线免费观看| 狠狠躁夜夜躁人人爽天天天天97| 免费视频网站www| 国产精品久久久久aaaa| 特级西西www444人体聚色| thepron国产精品| 性高潮久久久久久| 极品少妇一区二区三区精品视频| 国产免费人做人爱午夜视频| 在线欧美一区| 轻点好疼好大好爽视频| 欧美一区视频| 日本xxx免费| 久久久久久久久久久久久久| 亚洲资源在线网| 欧美精品乱码| 欧美日本亚洲| 老牛国内精品亚洲成av人片| 91色在线观看| www.久久久久爱免| 91色精品视频在线| 国产精品一区免费在线| 91欧美视频网站| 久久久久久久久久久久电影| 亚洲va欧美va国产综合剧情| 先锋影音一区二区| 成人国产精品色哟哟| 台湾天天综合人成在线| 国产热re99久久6国产精品| 成人黄色在线| 国产精品美女视频网站| 国产激情久久| 国产综合色香蕉精品| 日韩福利影视| 51国偷自产一区二区三区| 精品久久免费| 国产精品久久九九| 国偷自产av一区二区三区| 国产一区二区免费在线观看| 日韩精品导航| 日韩亚洲不卡在线| 日韩aaaa| 欧美 日韩 国产精品| 国产精品av一区二区| 免费无码不卡视频在线观看| 性欧美xxxx大乳国产app| 玩弄japan白嫩少妇hd| 免费在线一区观看| 久久久久无码精品| 99精品视频免费在线观看| 日本性高潮视频| 国产精品国产三级国产普通话三级 | 欧美人与物videos| 678在线观看视频| 国产精品福利在线观看| 99久久久国产| 国产乱码精品一区二区三区日韩精品 | 久久久精品午夜少妇| 一区二区三区入口| 国产99精品国产| 中文字幕xxx| 国产精品传媒在线| 日韩精品――中文字幕| 91久久精品一区二区三| 99热这里只有精品66| 亚洲女成人图区| 日本最新在线视频| 欧美激情综合亚洲一二区| 新片速递亚洲合集欧美合集| 91久久久久久久久久| 开心激情综合| 正义之心1992免费观看全集完整版| 欧美精品九九| 91蝌蚪视频在线观看| 成人精品视频网站| 国产午夜精品久久久久久久久| 亚洲综合在线第一页| 欧美一级黄视频| 亚洲国产成人久久综合一区| www.久久热.com| 午夜精品久久久久久久99热| 99久久综合国产精品二区| 国产精品久久国产三级国电话系列| 精品久久久久中文字幕小说| 国产精彩视频一区二区| 免费看欧美美女黄的网站| 青青草视频网站| 成人欧美一区二区三区小说| 久久国产视频一区| 精品福利一区二区三区免费视频| 在线观看免费高清完整| 青青a在线精品免费观看| 亚洲大奶少妇| 亚洲国产精品女人| 日韩精品电影一区亚洲| a天堂视频在线观看| 国产精品国模大尺度视频| 国产三级av片| 亚洲精品一区二区三区香蕉| 国产一区久久精品| 国产精品午夜视频| 久久不见久久见中文字幕免费| 草草视频在线免费观看| 国产又黄又大久久| 国产探花在线视频| 欧美人xxxx| 中文字幕在线观看日本| 青青久久av北条麻妃黑人| 精品在线网站观看| 亚洲爆乳无码精品aaa片蜜桃| 国精品**一区二区三区在线蜜桃| 国产一区二区三区精品在线| 色综合久久久久综合体| 日本精品999| 97国产一区二区精品久久呦 | 卡一卡二国产精品 | 午夜精品在线观看| 亚洲国产一区二区三区网站| 成人免费看片视频在线观看| 国产裸体歌舞团一区二区| 成人欧美一区二区三区黑人一 | 性做久久久久久久| 久久亚洲一区二区三区四区五区高 | 国产日韩av在线| 日韩在线第七页| 天天干天天操天天做| 国产精品伦理一区二区| 中国a一片一级一片| 中文字幕亚洲欧美日韩2019| 久草综合在线| 在线观看成人一级片| 麻豆成人久久精品二区三区小说| 2017亚洲天堂| 91精品国产乱| 午夜伦理在线视频| 国产区日韩欧美| 午夜一级在线看亚洲| 妺妺窝人体色WWW精品| 欧美视频自拍偷拍| 久做在线视频免费观看| 亚洲专区国产精品| 亚洲国产二区| 受虐m奴xxx在线观看| 欧美性淫爽ww久久久久无| 免费成人黄色| 99国产超薄肉色丝袜交足的后果| 在线看片日韩| 成年人免费观看视频网站| 欧美日韩国产综合草草| 在线观看h网| 久久影院理伦片| 美女视频一区二区| 黄色片在线观看网站| 亚洲第一视频在线观看| 午夜激情成人网| 麻豆视频传媒入口| 成人av免费在线观看| 中文字幕在线观看视频免费| 久久久av免费| 欧美1区2区3区4区| 91国产精品视频在线观看| 亚洲亚洲精品在线观看| 麻豆国产在线播放| 91久久精品在线| 国产情侣一区| 黄色一级大片在线免费观看| 精品久久久久一区二区国产| 欧美aaa视频| 2022中文字幕| 国产欧美精品一区| 亚洲av无码乱码在线观看性色| 欧美在线视频播放| 欧美成人日本| 国产毛片欧美毛片久久久| 欧美va亚洲va在线观看蝴蝶网| 色香欲www7777综合网| 18禁裸男晨勃露j毛免费观看|