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

MySQL 可重復讀,差點就讓我背上了一個 P0 事故!

數據庫 MySQL
為了保證資金安全,余額發生扣減時,需要比較現有余額與扣減金額大小,若扣減金額大于現有余額,扣減余額不足,扣減失敗。

 小黑黑的碎碎念

哎,最近有點忙,備考復習不利,明天還要搬家,好難啊!!

本想著這周鴿了,但是想想還是不行,爬起來,更新一下,周更可不能斷。偷懶一下,修改一下之前的一篇歷史文章,重新發布一下。

ps: 發這篇文章的時候,正在打加賽,JD 加油!!

[[328851]]

P0 事故:余額多扣!

這是一個真實的生產事件,事件起因如下:

現有一個交易系統,每次產生交易都會更新相應賬戶的余額,出賬扣減余額,入賬增加余額。

為了保證資金安全,余額發生扣減時,需要比較現有余額與扣減金額大小,若扣減金額大于現有余額,扣減余額不足,扣減失敗。

賬戶表(省去其他字段)結構如下:

  1. CREATE TABLE `account` 
  2.     `id`      bigint(20) NOT NULL
  3.     `balance` bigint(20) DEFAULT NULL
  4.     PRIMARY KEY (`id`) 
  5.  
  6. ) ENGINE = InnoDB 
  7.   DEFAULT CHARSET = utf8mb4 
  8.   COLLATE = utf8mb4_bin; 

扣減余額時,sql 語序如下所示:

更新余額 sql 語序

ps:看到上面的語序,有沒有個小問號?為什么相同查詢了這么多次?

其實這些 SQL 語序并不在同個方法內,并且有些方法被抽出復用,所以導致一些相同查詢結果沒辦法往下傳遞,所以只得再次從數據庫中查詢。

為了防止并發更新余額,在 t3 時刻,使用寫鎖鎖住該行記錄。若加鎖成功,其他線程的若也執行到 t3,將會被阻塞,直到前一個線程事務提交。

t5 時刻,進入到下一個方法,再次獲取賬戶余額,然后在 Java 方法內比較余額與扣減金額,若余額充足,在 t7 時刻執行更新操作。

上面的 SQL 語序看起來沒有什么問題吧,實際也是這樣的,賬戶系統已經在生產運行很久,沒出現什么問題。但是這里需要說一個前提,系統數據庫是 Oracle 。

但是從上面表結構,可以得知此次數據庫被切換成 MySQL,系統其他任何代碼以及配置都不修改(sql 存在小改動)。

就是這種情況下,并發執行發生余額多扣,即實際余額明明小于扣減金額,但是卻做了余額更新操作,最后導致余額變成了負數。

下面我們來重現并發這種情況,假設有兩個事務正在發執行該語序,執行順序如圖所示。

注意點:數據庫使用的是 MySQL,默認事務隔離等級,即 RR。數據庫記錄為 id=1 balance=1000,假設只有當時只有這兩個事務在執行。

各位讀者可以先思考一下,t2,t3,t4,t5,t6,t11 時刻余額多少。

下面貼一下事務隔離等級RR 下的答案。

事務 1 的查詢結果為:

  • t2 (1,1000)
  • t4 (1,1000)
  • t6 (1,1000)

事務 2 的查詢結果為:

  • t3 (1,1000)
  • t5 (1,900)
  • t11 (1,1000)

有沒有跟你想的結果的一樣?

接著將事務隔離等級修改成 RC,同樣再來思考一下 t2,t3,t4,t5,t6,t11 時刻余額。

再次貼下事務隔離等級RC 下的答案。

事務 1 的查詢結果為:

  • t2 (1,1000)
  • t4 (1,1000)
  • t6 (1,1000)

事務 2 的查詢結果為:

  • t3 (1,1000)
  • t5 (1,900)
  • t11 (1,900)

事務 1 的查詢結果,大家應該會沒有什么問題,主要疑問點應該在于事務 2,為什么換了事務隔離等級結果卻不太一樣?

下面我們先帶著疑問,了解一下 MySQL 的相關原理 ,看完你就會明白這一切。

  • MVCC
  • 一致性視圖
  • 快照讀與當前讀

MVCC

我們先來看下一個簡單的例子,

事務隔離等級為 RR , id=1 balance=1000

更新時序

事務 1 將 id=1 記錄 balance 更新為 900,接著事務 2 在 t5 時刻查詢該行記錄結果,很顯然該行記錄應該為 id=1 balance=1000。

如果 t5 查詢最新結果 id=1 balance=900,這就讀取到事務 1 未提交的數據,顯然不符合當前事務隔離級別。

從上面例子可以看到 id=1 的記錄存在兩個版本,事務 1 版本記錄為 balance=1000 ,事務 2 版本記錄為 balance=900。

上述功能,MySQL 使用 MVCC 機制實現功能。

MVCC:Multiversion concurrency control,多版本并發控制。摘錄一段淘寶數據庫月報的解釋:

多版本控制: 指的是一種提高并發的技術。最早的數據庫系統,只有讀讀之間可以并發,讀寫,寫讀,寫寫都要阻塞。引入多版本之后,只有寫寫之間相互阻塞,其他三種操作都可以并行,這樣大幅度提高了 InnoDB 的并發度。在內部實現中,與 Postgres 在數據行上實現多版本不同,InnoDB 是在 undolog 中實現的,通過 undolog 可以找回數據的歷史版本。找回的數據歷史版本可以提供給用戶讀(按照隔離級別的定義,有些讀請求只能看到比較老的數據版本),也可以在回滾的時候覆蓋數據頁上的數據。在 InnoDB 內部中,會記錄一個全局的活躍讀寫事務數組,其主要用來判斷事務的可見性。

可以看到 MVCC 主要用來提高并發,還可以用來讀取老版本數據。

在學習 MVCC 原理之前,首先我們需要了解 MySQL 記錄結構。

行記錄

如上圖所示,account 表一行記錄,除了真實數據之外,還會存在三個隱藏字段,用來記錄額外信息。

  • DB_TRX_ID:事務 id。
  • DB_ROLL_PTR: 回滾指針,指向 undolog。
  • ROW_ID:行 id,與此次無關。

MySQL InnoDB 里面每個事務都會有一個唯一事務 ID,它在事務開始的時候會跟 InnoDB 的事務系統申請的,并且嚴格按照順序遞增的。

每次事務更新數據時,將會生成一個新的數據版本,然后會把當前的事務 id 賦值給當前記錄的 DB_TRX_ID。并且數據更新記錄(1,1000---->1,900)將會記錄在 undo log(回滾日志)中,然后使用當前記錄的 DB_ROLL_PTR 指向 und olog。

這樣 MySQL 就可以通過 DB_ROLL_PTR 找到 undolog 推導出之前版本記錄內容。

查找過程如下:

查找過程

若需要知道 V1 版本記錄,首先根據當前版本 V3 的 DB_ROLL_PTR 找到 undolog,然后根據 undolog 內容,計算出上一個版本 V2。以此類推,最終找到 V1 這個版本記錄。

V1,V2 并不是物理記錄,沒有真實存在,僅僅具有邏輯意義。

一行數據記錄可能同時存在多個版本,但并不是所有記錄都能對當前事務可見。不然上面 t5 就可能查詢到最新的數據。所以查找數據版本時候 MySQL 必須判斷數據版本是否對當前事務可見。

一致性視圖

MySQL 會在事務開始后建立一個一致性視圖(并不是立刻建立),在這個視圖中,會保存所有活躍的事務(還未提交的事務)。

假設當前事務保存活躍事務數組為如下圖。

視圖數組

判斷版本對于當前事務是否可見時,基于以下規則判斷:

  • 若版本事務 id 小于當前活躍事務 id 數組最小值,比如版本 id 為 40,小于活躍數組最小值 45。這就代表當前版本的事務已提交,當前版本對于當前事務可見。
  • 若版本事務 id 大于當前活躍事務數組的最大值,如版本事務 id 為 100, 大于數組最大事務 id 90。說明了這個版本是當前事務創建之后生成,所以這個版本對于當前事務不可見。
  • 若版本事務 id 是當前活躍數組事務之一,比如版本事務 id 為 56。代表記錄版本所屬事務還未提交,所以該版本對于當前事務不可見。
  • 若版本事務 id 不是當前活躍數組事務之一,但是事務 id 位于活躍數組最小值與最大值之一,比如如事務 ID 57。代表當前記錄事務已提交,所以該版本對于當前事務可見。
  • 若版本事務 id 為當前事務 id,代表該行數據是當前事務變更的,當然得可見。

4 這個規則可能比較繞,結合上面圖片比較好理解。

以上判斷規則可能比較抽象,看不懂,沒事,我們再用大白話解釋一下:

  • 未提交事務生成的記錄版本,不可見。
  • 視圖生成前,已提交事務生成記錄版本可見。
  • 視圖生成后,新事務生成記錄版本不可見。
  • 自身事務更新永遠可見。

一致性視圖只會在 RR 與 RC 下才會生成,對于 RR 來說,一致性視圖會在第一個查詢語句的時候生成。而對于 RC 來說,每個查詢語句都會重新生成視圖。

當前讀與快照讀

MySQL 使用 MVCC 機制,可以讀取之前版本數據。這些舊版本記錄不會且也無法再去修改,就像快照一樣。所以我們將這種查詢稱為快照讀。

當然并不是所有查詢都是快照讀,select .... for update/ in share mode 這類加鎖查詢只會查詢當前記錄最新版本數據。我們將這種查詢稱為當前讀。

問題分析

講完原理之后,我們回過頭分析一下上面查詢結果的原因。

這里我們將上面答案再貼過來。

事務隔離級別為 RR,t2,t3 時刻兩個事務由于查詢語句,分別建立了一致性視圖。

t4 時刻,由于事務 1 使用 select.. for update 為 id=1 這一行上了一把鎖,然后獲取到最新結果。而 t5 時刻,由于該行已被上鎖,事務 2 必須等待事務 1 釋放鎖才能繼續執行。

t6 時刻根據一致性視圖,不能讀取到其他事務提交的版本,所以數據沒變。t8 時刻余額扣減 100,t9 時刻提交事務。

此時最新版本記錄為 id=1 balance=900。

由于事務 1 事務已提交,行鎖被釋放,t5 成功獲取到鎖。由于 t5 是當前讀,所以查詢的結果為最新版本數據(1,900)。

重點來了,當前這條記錄的最新版本數據為 (1,900),但是最新版本事務 id,卻是事務 2 創建之后未提交的事務,位于活躍事務數組中。所以最新記錄版本對于事務 2 是不可見的。

沒辦法只能根據 undolog 去讀取上一版本記錄 (1,1000) ,這個版本記錄剛好對于事務 2 可見,所以 t11 的記錄為 (1,1000)。

而當我們將事務隔離等級修改成 RC,每次都會重新生成一致性視圖。所以 t11 時刻重新生成了一致性視圖,這時候事務 1 已提交,當前最新版本的記錄對于事務 2 可見,所以 t11 的結果將會變為 (1,900)。

總結

MySQL 默認事務隔離等級為 RR,每一行數據(InnoDB)的都可以有多個版本,而每個版本都有獨一的事務 id。

MySQL 通過一致性視圖確保數據版本的可見性,相關規則總結如下:

對于 RR 事務隔離等級,普通查詢僅能查到事務啟動前就已經提交完成的版本數據。

對于 RC 事務隔離等級,普通查詢可以查到查詢語句啟動前就已經提交完成的版本數據。

當前讀總是讀取最新版本的數據。

參考資料

[1]https://dev.mysql.com/doc/refman/8.0/en/innodb-multi-versioning.html

[2]http://mysql.taobao.org/monthly/2017/12/01/

[3]http://mysql.taobao.org/monthly/2018/11/04/

[4]https://dev.mysql.com/doc/refman/8.0/en/innodb-consistent-read.html

本文轉載自微信公眾號「程序通事」,可以通過以下二維碼關注。轉載本文請聯系程序通事公眾號。

 

責任編輯:武曉燕 來源: 程序通事
相關推薦

2021-04-30 07:09:48

SQLP0事故

2025-03-10 08:20:53

代碼線程池OOM

2020-07-02 08:22:56

MySQL間隙鎖過行鎖

2022-10-17 08:31:03

生產環境P0項目

2022-03-13 22:50:47

P0故障HBase

2021-06-07 10:20:31

2023-12-05 09:46:30

2010-09-30 16:21:40

DB2隔離級別

2024-07-16 08:19:46

MySQL數據InnoDB

2021-08-05 06:46:39

P0故障公司

2021-10-08 07:50:57

軟件設計程序

2013-02-25 10:48:53

RubyWeb

2024-05-13 11:46:33

MySQL數據庫

2021-06-11 16:59:41

MySQLRepeatableRead

2021-06-28 14:13:34

OOM內存事故

2020-04-09 10:43:12

長事務P0故障

2024-04-22 00:00:01

Redis集群

2021-12-28 06:55:09

事故訂單號績效

2020-08-04 08:44:08

HashCode

2025-10-10 07:22:57

點贊
收藏

51CTO技術棧公眾號

欧美日韩国产色| av在线免费不卡| 色综合导航网站| 先锋资源av在线| 精品成人免费一区二区在线播放| 一区在线中文字幕| 国产一区在线免费| 一二三四区视频| 99热这里只有成人精品国产| 中文字幕亚洲综合| 精品人妻在线视频| 国产香蕉久久| 精品高清美女精品国产区| 亚洲精品无人区| 婷婷色在线视频| 久久av中文字幕片| 日韩美女在线观看| 久久久久成人网站| 成人一二三区| 精品一区二区三区四区| 五月天婷婷在线观看视频| 欧美美女日韩| 性久久久久久久久| 天天爱天天做天天操| 免费一级在线观看| 99在线精品观看| 97se亚洲综合在线| 91禁在线观看| 日韩国产精品久久久| 性欧美xxxx视频在线观看| 亚洲怡红院在线观看| 九一国产精品| 亚洲精品乱码久久久久久金桔影视 | 国产综合婷婷| 日韩在线观看免费高清| 97人妻精品一区二区免费| 免费观看成人www动漫视频| 欧美一区二区在线播放| 国产免费中文字幕| 黄色欧美视频| 欧美撒尿777hd撒尿| 国产美女三级视频| 麻豆免费在线| 精品高清美女精品国产区| 欧美无砖专区免费| 女人天堂av在线播放| 亚洲女子a中天字幕| 中文精品视频一区二区在线观看| porn视频在线观看| 亚洲国产精品高清| 视频一区免费观看| av福利在线播放| 国产精品免费免费| 亚洲精品自在在线观看| 日本视频在线观看| 国产精品福利一区| 国产成人精品免费看在线播放| 美女羞羞视频在线观看| 中文字幕五月欧美| 青青草原网站在线观看| 手机av免费在线| 亚洲综合在线第一页| 日韩在线观看a| 免费看男女www网站入口在线| 欧美日韩国内自拍| 亚洲人成无码www久久久| 91在线亚洲| 欧美一区二区三区视频在线 | 91在线视频18| 欧美日韩一区在线观看视频| av网站大全在线观看| 亚洲视频你懂的| 成年女人18级毛片毛片免费 | 色激情天天射综合网| 激情五月亚洲色图| 国产一区影院| 日韩欧美在线网站| 插我舔内射18免费视频| 国产中文精品久高清在线不| 久久精品国产2020观看福利| 青青草手机视频在线观看| 中日韩男男gay无套| 国产经典一区二区| av网站在线观看免费| 91在线播放网址| 亚洲二区三区四区| 青春草免费在线视频| 欧美日韩一区二区三区| 久热精品在线播放| 成人涩涩网站| 亚洲欧美变态国产另类| 2025国产精品自拍| 国产精品婷婷| 91成人免费看| 黑人与亚洲人色ⅹvideos| 日韩一区欧美一区| 国产中文字幕视频在线观看| 国产精品.xx视频.xxtv| 精品电影一区二区| 波多野结衣家庭教师在线观看| 激情综合久久| 成人免费午夜电影| 飘雪影视在线观看免费观看| 亚洲男人的天堂在线观看| 日本免费黄视频| 成人自拍视频| 正在播放亚洲1区| 国产无套内射又大又猛又粗又爽| 日本欧美一区二区三区乱码| 成人免费视频网站入口| 在线免费看黄网站| 精品国产老师黑色丝袜高跟鞋| 青青草原国产在线视频| 亚洲裸色大胆大尺寸艺术写真| 久久综合久久美利坚合众国| 成人毛片在线播放| 粉嫩aⅴ一区二区三区四区| 一本色道久久综合亚洲二区三区| 国产精品xx| 日韩欧美亚洲另类制服综合在线| 天堂网av2018| 日本不卡视频一二三区| 久热这里只精品99re8久| 欧洲在线视频| 91精品国产欧美一区二区| 国产真人做爰视频免费| 国产精品日韩| 精品国产一区二区三区日日嗨| 怡红院在线播放| 91精品国产91久久久久久一区二区 | 欧美日韩国内自拍| 最新版天堂资源在线| 欧美激情91| 91丨九色丨国产在线| 欧美13一16娇小xxxx| 欧美日韩黄色一区二区| 欧美巨胸大乳hitomi| 久久精品综合| 日韩欧美一区二区三区四区| 中文av在线全新| 亚洲欧美在线第一页| 日韩欧美在线观看免费| 91小视频在线| 99久久久无码国产精品6| 免费看久久久| 日本亚洲欧洲色α| 猫咪在线永久网站| 91成人国产精品| 一级二级黄色片| 久久狠狠亚洲综合| 在线看成人av电影| 精品国产三区在线| 欧美国产乱视频| 亚洲xxx在线| 亚洲成av人片在线| 特大黑人巨人吊xxxx| 亚洲二区免费| 日本成人三级| 成人一区视频| 欧美成人激情视频免费观看| 亚洲精品喷潮一区二区三区| 亚洲一级二级三级| 国产在线观看无码免费视频| 久久电影一区| 亚洲日本欧美在线| 精品视频在线一区| 九九精品在线视频| 日色在线视频| 欧美三级三级三级| 成人免费视频国产免费观看| 大陆成人av片| 欧美私人情侣网站| 91精品国产成人观看| 国产免费高清一区| 国产日韩另类视频一区| 色噜噜狠狠狠综合曰曰曰| 国产同性人妖ts口直男| 亚洲电影激情视频网站| 免费无码一区二区三区| 免费观看在线综合色| 强开小嫩苞一区二区三区网站| 久久九九热re6这里有精品| 日本久久久久久久久久久| 在线观看h片| 精品国产成人系列| 波多野结衣一区二区三区四区| 亚洲视频在线一区二区| 国产精品无码一区二区三区免费 | 久久aⅴ国产紧身牛仔裤| 亚洲视频sss| 欧美成人午夜77777| 国产精品自拍网| av岛国在线| 日韩中文视频免费在线观看| 亚洲人成色777777精品音频| 欧美日本一区二区在线观看| 久久精品免费av| 国产精品毛片大码女人| 小毛片在线观看| 久久综合综合久久综合| 无罩大乳的熟妇正在播放| 久久久久久免费视频| 欧美一区二区视频17c| 亚洲综合网站| 成人国产在线视频| 二区三区不卡| 久久久伊人欧美| 午夜小视频在线| 亚洲精品在线不卡| www久久久com| 正在播放一区二区| 日本丰满少妇做爰爽爽| 欧美日韩国产综合新一区 | 每日更新成人在线视频| 国产精品国三级国产av| 久久精品国产亚洲夜色av网站| 国产原创精品| 一区二区中文字幕在线观看| 成人有码在线视频| 影音成人av| 日韩免费不卡av| 狠狠躁少妇一区二区三区| 久久国产色av| 国产在线二区| 色老头一区二区三区在线观看| 九九九伊在人线综合| 亚洲精品www久久久久久广东| 亚洲成a人片77777精品| 91精品午夜视频| 91成年人视频| 3d动漫精品啪啪1区2区免费| 一二三区中文字幕| 欧美巨大另类极品videosbest| 进去里视频在线观看| 色综合天天综合色综合av| www..com国产| 亚洲成av人片在线观看| 五月天婷婷丁香| 亚洲成人7777| 日本特黄一级片| 亚洲精品伦理在线| 中文字幕亚洲欧美日韩| 亚洲柠檬福利资源导航| 中文字幕在线观看成人| 一区二区三区高清不卡| 国产一级二级毛片| 性久久久久久久久久久久| 九九热在线视频播放| 欧美日韩国产丝袜美女| 波多野结衣 久久| 日本韩国欧美国产| 青娱乐在线免费视频| 欧美日产国产精品| 国产视频在线免费观看| 精品奇米国产一区二区三区| 黄色三级网站在线观看| 亚洲精品aⅴ中文字幕乱码| 欧美套图亚洲一区| 这里只有精品在线播放| 黄黄的网站在线观看| 欧美极品第一页| 玛雅亚洲电影| 国产精品欧美日韩一区二区| 亚洲资源在线| 动漫3d精品一区二区三区| 欧美一级一片| 亚洲国产另类久久久精品极度| 亚洲成人精选| 日韩小视频在线播放| 久热re这里精品视频在线6| 爆乳熟妇一区二区三区霸乳| 精品综合免费视频观看| 久久久老熟女一区二区三区91| 久久综合给合久久狠狠狠97色69| 国产一区二区三区四区在线| 亚洲免费色视频| 午夜影院在线看| 欧美图区在线视频| www.超碰在线.com| 亚洲人成人99网站| 99在线视频观看| 欧洲午夜精品久久久| 国产精品高清一区二区| 含羞草久久爱69一区| 成人在线国产| 131美女爱做视频| 日本成人在线一区| 国产乱淫av片| 国产精品毛片久久久久久| 久久久综合久久久| 欧日韩精品视频| 欧美熟女一区二区| 一区二区三区www| 国产高清在线a视频大全| 国产精品高潮在线| 国产精东传媒成人av电影| 色噜噜色狠狠狠狠狠综合色一| 狠狠88综合久久久久综合网| 美女网站视频黄色| 99re热这里只有精品视频| 中文字幕美女视频| 欧美性猛交xxxx富婆弯腰| av男人天堂网| 日韩中文娱乐网| 性欧美freesex顶级少妇| 成人免费视频视频在| 欧美成人精品一区二区三区在线看| www.99热这里只有精品| 国产精品一区免费视频| 韩国三级hd中文字幕| 精品电影在线观看| 亚洲欧美激情另类| 日韩一区在线视频| 亚州一区二区三区| 国产在线精品一区二区三区| 亚洲有吗中文字幕| 伊人影院综合在线| 久久精品人人做人人综合| 精品无码一区二区三区电影桃花| 555www色欧美视频| 日本a在线播放| 国产精品一二三在线| 国产99亚洲| 欧美黄色免费影院| jlzzjlzz亚洲日本少妇| 国产中文字字幕乱码无限| 欧美一级日韩一级| 黄色动漫在线| 91美女福利视频高清| 色小子综合网| 手机视频在线观看| 中文字幕精品一区| 人人妻人人爽人人澡人人精品| 日韩高清a**址| 高潮在线视频| 美日韩免费视频| 天堂久久一区二区三区| 熟女人妻在线视频| 欧美日韩国产一区在线| 欧美婷婷久久五月精品三区| 7777免费精品视频| 亚洲aaa级| 成人免费无码av| 国产色一区二区| wwwwww在线观看| 神马久久久久久| 玖玖精品在线| 一级特黄妇女高潮| 粉嫩绯色av一区二区在线观看| 精品无码av在线| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 久久九九精品99国产精品| 国产精品麻豆| 亚洲精品无码国产| 91丨九色porny丨蝌蚪| 草莓视频18免费观看| 在线视频欧美性高潮| 国产精久久一区二区| 日韩精品综合在线| 久久亚洲精华国产精华液| 日韩精选在线观看| 久久久国产一区| 免费看久久久| 人人干人人干人人| 亚洲精品日韩专区silk| 天天操天天操天天| 国产97在线|亚洲| 久久久国产精品| 97精品人妻一区二区三区蜜桃| 日韩欧美精品免费在线| 免费高清在线观看| 国产精品一国产精品最新章节| 久久精品午夜| 国产女人被狂躁到高潮小说| 亚洲精品www久久久| 成人在线视频免费| 福利视频免费在线观看| 2021国产精品久久精品| 一级淫片免费看| 97色在线视频| 成人高清av| av天堂一区二区| 欧美日韩一级黄| av日韩中文| 一区二区免费电影| 夫妻av一区二区| 中文字幕精品一区二| 欧美激情久久久久| 国产精品日韩精品中文字幕| 中文写幕一区二区三区免费观成熟| 色呦呦日韩精品| 日韩精品亚洲人成在线观看| 欧美激情一区二区三区在线视频 | 欧美熟妇精品黑人巨大一二三区| 欧美视频一区二| 不卡视频观看| 91九色国产ts另类人妖| 久久夜色精品国产噜噜av| 99视频在线观看免费| 国产99久久久欧美黑人|