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

MySQL死鎖系列-常見加鎖場景分析

數據庫 MySQL
本文我們就從原理走向實戰,分析常見 SQL 語句的加鎖場景。了解了這幾種場景,相信小伙伴們也能舉一反三,靈活地分析真實開發過程中遇到的加鎖問題。

本文我們就從原理走向實戰,分析常見 SQL 語句的加鎖場景。了解了這幾種場景,相信小伙伴們也能舉一反三,靈活地分析真實開發過程中遇到的加鎖問題。

如下圖所示,數據庫的隔離等級,SQL 語句和當前數據庫數據會共同影響該條 SQL 執行時數據庫生成的鎖模式,鎖類型和鎖數量。

MySQL死鎖系列-常見加鎖場景分析

下面,我們會首先講解一下隔離等級、不同 SQL 語句 和 當前數據庫數據對生成鎖影響的基本規則,然后再依次具體 SQL 的加鎖場景。

隔離等級對加鎖的影響

MySQL 的隔離等級對加鎖有影響,所以在分析具體加鎖場景時,首先要確定當前的隔離等級。

  • 讀未提交(Read Uncommitted 后續簡稱 RU):可以讀到未提交的讀,基本上不會使用該隔離等級,所以暫時忽略。
  • 讀已提交(Read Committed 后續簡稱 RC):存在幻讀問題,對當前讀獲取的數據加記錄鎖。
  • 可重復讀(Repeatable Read 后續簡稱 RR):不存在幻讀問題,對當前讀獲取的數據加記錄鎖,同時對涉及的范圍加間隙鎖,防止新的數據插入,導致幻讀。
  • 序列化(Serializable):從 MVCC 并發控制退化到基于鎖的并發控制,不存在快照讀,都是當前讀,并發效率急劇下降,不建議使用。

這里說明一下,RC 總是讀取記錄的最新版本,而 RR 是讀取該記錄事務開始時的那個版本,雖然這兩種讀取的版本不同,但是都是快照數據,并不會被寫操作阻塞,所以這種讀操作稱為 快照讀(Snapshot Read)

MySQL 還提供了另一種讀取方式叫當前讀(Current Read),它讀的不再是數據的快照版本,而是數據的最新版本,并會對數據加鎖,根據語句和加鎖的不同,又分成三種情況:

  • SELECT ... LOCK IN SHARE MODE:加共享(S)鎖
  • SELECT ... FOR UPDATE:加排他(X)鎖
  • INSERT / UPDATE / DELETE:加排他(X)鎖

當前讀在 RR 和 RC 兩種隔離級別下的實現也是不一樣的:RC 只加記錄鎖,RR 除了加記錄鎖,還會加間隙鎖,用于解決幻讀問題。

不同 SQL 語句對加鎖的影響

不同的 SQL 語句當然會加不同的鎖,總結起來主要分為五種情況:

  • SELECT ... 語句正常情況下為快照讀,不加鎖;
  • SELECT ... LOCK IN SHARE MODE 語句為當前讀,加 S 鎖;
  • SELECT ... FOR UPDATE 語句為當前讀,加 X 鎖;
  • 常見的 DML 語句(如 INSERT、DELETE、UPDATE)為當前讀,加 X 鎖;
  • 常見的 DDL 語句(如 ALTER、CREATE 等)加表級鎖,且這些語句為隱式提交,不能回滾。

其中,當前讀的 SQL 語句的 where 從句的不同也會影響加鎖,包括是否使用索引,索引是否是唯一索引等等。

當前數據對加鎖的影響

SQL 語句執行時數據庫中的數據也會對加鎖產生影響。

比如一條最簡單的根據主鍵進行更新的 SQL 語句,如果主鍵存在,則只需要對其加記錄鎖,如果不存在,則需要在加間隙鎖。

至于其他非唯一性索引更新或者插入時的加鎖也都不同程度的受到現存數據的影響,后續我們會一一說明。

具體場景分析

具體 SQL 場景分析主要借鑒何登成前輩的《MySQL 加鎖處理分析》文章和 aneasystone 的系列文章,在他們的基礎上進行了總結和整理。

我們使用下面這張 book 表作為實例,其中 id 為主鍵,ISBN(書號)為二級唯一索引,Author(作者)為二級非唯一索引,score(評分)無索引。

MySQL死鎖系列-常見加鎖場景分析

UPDATE 語句加鎖分析

下面,我們先來分析 UPDATE 相關 SQL 在使用較為簡單 where 從句情況下加鎖情況。其中的分析原則也適用于 UPDATE,DELETE 和 SELECT ... FOR UPDATE等當前讀的語句。

聚簇索引,查詢命中

聚簇索引就是 InnoDB 存儲引擎下的主鍵索引,具體可參考《MySQL索引》。

下圖展示了使用 UPDATE book SET score = 9.2 WHERE ID = 10 語句命中的情況下在 RC 和 RR 隔離等級下的加鎖,兩種隔離等級下沒有任何區別,都是對 ID = 10 這個索引加排他記錄鎖。

MySQL死鎖系列-常見加鎖場景分析

聚簇索引,查詢未命中

下圖展示了 UPDATE book SET score = 9.2 WHERE ID = 16 語句未命中時 RR 隔離級別下的加鎖情況。

在 RC 隔離等級下,不需要加鎖;而在 RR 隔離級別會在 ID = 16 前后兩個索引之間加上間隙鎖。

MySQL死鎖系列-常見加鎖場景分析

值得注意的是,間隙鎖和間隙鎖之間是互不沖突的,間隙鎖唯一的作用就是為了防止其他事務的插入新行,導致幻讀,所以加間隙 S 鎖和加間隙 X 鎖沒有任何區別。

二級唯一索引,查詢命中

下圖展示了 UPDATE book SET score = 9.2 WHERE ISBN = 'N0003' 在 RC 和 RR 隔離等級下命中時的加鎖情況。

在 InnoDB 存儲引擎中,二級索引的葉子節點保存著主鍵索引的值,然后再拿主鍵索引去獲取真正的數據行,所以在這種情況下,二級索引和主鍵索引都會加排他記錄鎖。

MySQL死鎖系列-常見加鎖場景分析

二級唯一索引,查詢未命中

下圖展示了 UPDATE book SET score = 9.2 WHERE ISBN = 'N0008' 語句在 RR 隔離等級下未命中時的加鎖情況,RC 隔離等級下該語句未命中不會加鎖。

因為 N0008 大于 N0007,所以要鎖住 (N0007,正無窮)這段區間,而 InnoDB 的索引一般都使用 Suprenum Record 和 Infimum Record 來分別表示記錄的上下邊界。Infimum 是比該頁中任何記錄都要小的值,而 Supremum 比該頁中最大的記錄值還要大,這兩條記錄在創建頁的時候就有了,并且不會刪除。

所以,在 N0007 和 Suprenum Record 之間加了間隙鎖。

MySQL死鎖系列-常見加鎖場景分析

為什么不在主鍵上也加 GAP 鎖呢?歡迎留言說出你的想法。

二級非唯一索引,查詢命中

下圖展示了 UPDATE book SET score = 9.2 WHERE Author = 'Tom' 語句在 RC 隔離等級下命中時的加鎖情況。

我們可以看到,在 RC 等級下,二級唯一索引和二級非唯一索引的加鎖情況是一致的,都是在涉及的二級索引和對應的主鍵索引上加上排他記錄鎖。

MySQL死鎖系列-常見加鎖場景分析

但是在 RR 隔離等級下,加鎖的情況產生了變化,它不僅對涉及的二級索引和主鍵索引加了排他記錄鎖,還在非唯一二級索引上加了三個間隙鎖,鎖住了兩個 Tom 索引值相關的三個范圍。

那為什么唯一索引不需要加間隙鎖呢?間隙鎖的作用是為了解決幻讀,防止其他事務插入相同索引值的記錄,而唯一索引和主鍵約束都已經保證了該索引值肯定只有一條記錄,所以無需加間隙鎖。

MySQL死鎖系列-常見加鎖場景分析

需要注意的是,上圖雖然畫著 4 個記錄鎖,三個間隙鎖,但是實際上間隙鎖和它右側的記錄鎖會合并成 Next-Key 鎖。

所以實際情況有兩個 Next-Key 鎖,一個間隙鎖(Tom60,正無窮)和兩個記錄鎖。

二級非唯一索引,查詢未命中

下圖展示了 UPDATE book SET score = 9.2 WHERE Author = 'Sarah' 在 RR 隔離等級下未命中的加鎖情況,它會在二級索引 Rose 和 Tom 之間加間隙鎖。而 RC 隔離等級下不需要加鎖。

MySQL死鎖系列-常見加鎖場景分析

無索引

當 Where 從句的條件并不使用索引時,則會對全表進行掃描,在 RC 隔離等級下對所有的數據加排他記錄鎖。在RR 隔離等級下,除了給記錄加鎖,還會對記錄和記錄之間加間隙鎖。和上邊一樣,間隙鎖會和左側的記錄鎖合并成 Next-Key 鎖。

下圖就是 UPDATE book SET score = 9.2 WHERE score = 22 語句在兩種隔離等級下的加鎖情況。

MySQL死鎖系列-常見加鎖場景分析

聚簇索引,范圍查詢

上面介紹的場景都是 where 從句的等值查詢,而范圍查詢的加鎖又是怎么樣的呢?我們慢慢來看。

下圖是 UPDATE book SET score = 9.2 WHERE ID <= 25 在 RC 和 RR 隔離等級下的加鎖情況。

RC 場景下與等值查詢類似,只會在涉及的 ID = 10,ID = 18 和 ID = 25 索引上加排他記錄鎖。

MySQL死鎖系列-常見加鎖場景分析

而在 RR 隔離等級下則有所不同,它會加上間隙鎖,和對應的記錄鎖合并稱為 Next-Key 鎖。除此之外,它還會在(25, 30] 上分別加 Next-Key 鎖。這一點是十分特殊的,具體原因還需要再探究。

二級索引,范圍查詢

下圖展示了 UPDATE book SET ISBN = N0001 WHERE score <= 7.9 在 RR 級別下的加鎖情況。

MySQL死鎖系列-常見加鎖場景分析

修改索引值

UPDATE 語句修改索引值的情況可以分開分析,首先 Where 從句的加鎖分析如上文所述,多了一步 Set 部分的加鎖。

下圖展示了 UPDATE book SET Author = 'John' WHERE ID = 10 在 RC 和 RR 隔離等級下的加鎖情況。除了在主鍵 ID 上進行加鎖,還會對二級索引上的 Bob(就值) 和 John(新值) 上進行加鎖。

MySQL死鎖系列-常見加鎖場景分析

DELETE 語句加鎖分析

一般來說,DELETE 的加鎖和 SELECT FOR UPDATE 或 UPDATE 并沒有太大的差異。

因為,在 MySQL 數據庫中,執行 DELETE 語句其實并沒有直接刪除記錄,而是在記錄上打上一個刪除標記,然后通過后臺的一個叫做 purge 的線程來清理。從這一點來看,DELETE 和 UPDATE 確實是非常相像。事實上,DELETE 和 UPDATE 的加鎖也幾乎是一樣的。

INSERT 語句加鎖分析

接下來,我們來看一下 Insert 語句的加鎖情況。

Insert 語句在兩種情況下會加鎖:

  • 為了防止幻讀,如果記錄之間加有間隙鎖,此時不能 Insert;
  • 如果 Insert 的記錄和已有記錄造成唯一鍵沖突,此時不能 Insert;

除了上述情況,Insert 語句的鎖都是隱式鎖。隱式鎖是 InnoDB 實現的一種延遲加鎖的機制來減少加鎖的數量。

隱式鎖的特點是只有在可能發生沖突時才加鎖,減少了鎖的數量。另外,隱式鎖是針對被修改的 B+Tree 記錄,因此都是記錄類型的鎖,不可能是間隙鎖或 Next-Key 類型。

具體 Insert 語句的加鎖流程如下:

  • 首先對插入的間隙加插入意向鎖(Insert Intension Locks) 如果該間隙已被加上了間隙鎖或 Next-Key 鎖,則加鎖失敗進入等待; 如果沒有,則加鎖成功,表示可以插入;
  • 然后判斷插入記錄是否有唯一鍵,如果有,則進行唯一性約束檢查 如果不存在相同鍵值,則完成插入 如果存在相同鍵值,則判斷該鍵值是否加鎖 如果沒有鎖, 判斷該記錄是否被標記為刪除 如果標記為刪除,說明事務已經提交,還沒來得及 purge,這時加 S 鎖等待; 如果沒有標記刪除,則報 duplicate key 錯誤; 如果有鎖,說明該記錄正在處理(新增、刪除或更新),且事務還未提交,加 S 鎖等待;
  • 插入記錄并對記錄加 X 記錄鎖;

后記

本文中講解的 SQL 語句都是十分簡單的,當 SQL 語句包含多個查詢條件時,加鎖的分析過程就往往更加復雜。我們需要使用 MySQL 相關的工具進行分析,并且有時甚至需要查詢 MySQL 相關的日志信息來了解到底語句加了什么鎖或者為什么產生死鎖。

 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2020-06-04 07:51:30

MySQL死鎖加鎖

2017-06-07 16:10:24

Mysql死鎖死鎖日志

2017-05-15 18:00:43

MySQ加鎖處理

2023-07-18 09:24:04

MySQL線程

2020-12-09 10:10:24

MySQL數據庫算法

2021-07-04 22:29:12

MySQL死鎖云日志

2021-03-26 10:40:16

MySQL鎖等待死鎖

2020-04-14 10:20:12

MySQL數據庫死鎖

2024-10-16 11:40:47

2017-12-19 14:00:16

數據庫MySQL死鎖排查

2014-01-07 14:04:13

HadoopMapReduce

2018-05-29 11:44:22

數據庫MySQL死鎖

2021-06-08 08:38:36

MySQL數據庫死鎖問題

2011-08-24 17:41:16

MySQL死鎖

2017-06-14 22:11:57

數據庫MySQL死鎖

2014-09-29 09:48:54

MySQLMySQL實踐

2024-10-30 10:38:08

2020-12-14 12:17:47

MySQL記錄語句

2022-08-04 15:31:45

MySQL加鎖機制死鎖

2018-01-04 10:08:08

點贊
收藏

51CTO技術棧公眾號

国内精品久久久久久久97牛牛 | 久久99最新地址| 深夜福利日韩在线看| 青娱乐国产精品视频| 成人女同在线观看| 国产区在线观看成人精品| 成人妇女淫片aaaa视频| 日本少妇毛茸茸高潮| 精品国产一区探花在线观看| 日韩欧美色综合网站| 日韩欧美在线播放视频| 国产精品剧情一区二区在线观看| 99久久综合99久久综合网站| 成人av在线亚洲| 少妇一级淫片免费放中国 | 丝袜情趣国产精品| 50一60岁老妇女毛片| 欧美少妇激情| 欧美日韩在线视频一区| 亚洲av首页在线| wwwxxx在线观看| 成人免费精品视频| 92看片淫黄大片欧美看国产片| 九九热精品视频在线| 欧美在线亚洲综合一区| 伊人久久五月天| 日韩网站在线播放| 国产亚洲精品美女久久 | 成 人 黄 色 片 在线播放| 丝袜亚洲精品中文字幕一区| 国语对白做受69| 青青草原国产视频| 亚洲一本二本| 久久精品电影一区二区| 亚洲一二三四视频| 伊人春色之综合网| 日韩电影中文 亚洲精品乱码| 青娱乐精品在线| 成人在线精品| 欧美精品v日韩精品v韩国精品v| 手机看片福利盒子久久| 另类专区亚洲| 色综合天天综合狠狠| 拔插拔插海外华人免费| 一区二区免费在线观看| 男人在线观看视频| 色喇叭免费久久综合| 亚洲天堂成人在线视频| 亚洲色图14p| 欧美成人基地| 日韩风俗一区 二区| 老司机免费视频| 国产精品白浆| 日韩av网址在线观看| 在线免费观看污视频| 久久午夜影院| 亚洲激情视频在线| 国产精品一级黄片| 亚洲人成网亚洲欧洲无码| 亚洲国产欧美精品| 亚洲国产综合视频| 亚洲精品**不卡在线播he| 日韩精品在线免费| 蜜桃无码一区二区三区| 成久久久网站| 久久精品国产精品| 欧美黄色一级网站| 99精品视频免费观看| 欧美在线观看一区二区三区| 探花视频在线观看| 男人的天堂久久精品| 91精品久久久久久久久久| 国产又粗又猛视频| 国产成人精品三级| 精品蜜桃一区二区三区| 久久精品a一级国产免视看成人 | 国产精品一区二区欧美| 日本免费网站在线观看| 91久色porny| 亚洲国产精品久久久久婷婷老年 | 一区二区三区欧美日| 17c丨国产丨精品视频| 77thz桃花论族在线观看| 欧美视频裸体精品| 亚洲黄色av片| 九九热hot精品视频在线播放| 亚洲欧美国产一本综合首页| 一本色道久久88精品综合| 亚洲黄色片免费| 91精品啪在线观看国产爱臀| 日韩精品中文字| 一区二区三区在线播放视频| 午夜久久99| 国产成人福利视频| 国产精品伦理一区| 91免费版在线看| 伊人久久大香线蕉成人综合网| 性爱视频在线播放| 色吊一区二区三区| 少妇丰满尤物大尺度写真| 亚洲品质自拍| 免费av一区二区| 久久精品视频2| 成人晚上爱看视频| 亚洲巨乳在线观看| 国产无遮挡裸体视频在线观看| 欧美日韩综合色| 老熟女高潮一区二区三区| 欧美精品一区二区三区精品| 久久久久久久久国产| 中文字幕永久免费视频| 91在线视频18| 国产a级黄色大片| 成人看片毛片免费播放器| 精品国产免费久久| www.com.av| 水野朝阳av一区二区三区| 成人av片网址| 成人日日夜夜| 欧美日韩国产一级| 全黄一级裸体片| 国语精品一区| 亚洲一区二区久久久久久| 国产黄在线观看| 欧美午夜丰满在线18影院| 人妻精油按摩bd高清中文字幕| 日韩理论片av| 日韩av手机在线| 四虎精品一区二区三区| 亚洲黄色小说网站| 日韩高清第一页| 欧美在线观看视频一区| 欧美与黑人午夜性猛交久久久| 亚洲精品97久久中文字幕| 最新国产精品久久精品| 亚洲精品手机在线观看| re久久精品视频| 视频一区免费在线观看| 4p变态网欧美系列| 欧美一区二区三区黄片| 亚洲精选视频在线| 91性高潮久久久久久久| 99国产**精品****| 国产精品专区一| 二区三区在线| 欧美在线免费观看视频| 午夜理伦三级做爰电影| 欧美亚洲一级| 欧美日韩精品综合| 成人免费看黄| 亚洲网站在线看| 无码久久精品国产亚洲av影片| 久久久久久影视| 苍井空浴缸大战猛男120分钟| 一区二区美女| 国产精品igao视频| 91这里只有精品| 这里只有精品视频在线观看| 一级片一级片一级片| 国产一区二区免费视频| 91视频 - 88av| 久久av国产紧身裤| 欧美主播福利视频| 国产人成在线观看| 欧美三电影在线| 日日噜噜夜夜狠狠久久波多野| 国产成人福利片| 日韩av在线第一页| 国产一区二区三区探花 | 亚洲黄色小说图片| 久久精品一区蜜桃臀影院| 久久综合伊人77777麻豆最新章节| 日韩一区二区在线免费| 91免费版网站在线观看| 91九色在线播放| 亚洲色图在线观看| 国产精品人人妻人人爽| 亚洲国产aⅴ天堂久久| 一出一进一爽一粗一大视频| 美腿丝袜亚洲综合| av在线免费观看国产| 精品一区毛片| 91免费高清视频| 美女网站在线看| 这里只有精品在线播放| 亚洲av无码国产精品久久不卡 | 日韩欧美一区二| 成人黄色小视频| 亚洲午夜激情在线| 国产日韩在线看片| 91桃色在线观看| 伊人亚洲福利一区二区三区| 亚洲av无码国产精品永久一区| 欧美午夜精品伦理| 免费国产羞羞网站美图| 91美女蜜桃在线| 中文字幕 欧美日韩| 国产日韩欧美在线播放不卡| 一级特黄录像免费播放全99| 欧美重口另类| 亚洲www在线| 日韩av福利| 欧美激情日韩图片| 里番在线观看网站| 国产视频一区在线| www.97av.com| 欧美日韩中文精品| 日韩精品一卡二卡| 亚洲欧美日韩电影| 91社区视频在线观看| caoporn国产一区二区| 午夜一区二区视频| 天堂午夜影视日韩欧美一区二区| 久久久久久久久久久综合| 精品国产成人| 久久综合中文色婷婷| 国产精品一线| 99精品国产一区二区| 久久精品xxxxx| 国产成人av在线| 亚洲美女炮图| 97精品视频在线播放| 在线观看男女av免费网址| 中文字幕欧美精品在线 | 成人免费av在线| 中文字幕第一页在线视频| 欧美96一区二区免费视频| 日韩一级在线免费观看| 国产一区二区三区久久久久久久久 | 久久精品影视大全| 99国产精品| 亚洲精品久久久久久久蜜桃臀| 中文字幕免费精品| 三上悠亚免费在线观看| 日韩一区三区| 亚洲视频在线观看日本a| 狠狠色丁香婷婷综合影院| 欧美激情国产日韩| 久久精品66| 国内成+人亚洲| 青青草原在线亚洲| 蜜桃av噜噜一区二区三| 亚洲男人都懂第一日本| 欧美日韩精品免费在线观看视频| 日本韩国欧美超级黄在线观看| 国产青春久久久国产毛片| 91精品国产自产在线丝袜啪| 成人精品一二区| 这里视频有精品| 国产亚洲情侣一区二区无| 国产永久免费高清在线观看| 久久99精品国产麻豆不卡| 91色国产在线| 日韩av一区二区在线影视| 网站一区二区三区| 久久精品久久综合| 国内自拍第二页| 国产真实乱偷精品视频免| 中文国产在线观看| 国产高清无密码一区二区三区| 原创真实夫妻啪啪av| 成人亚洲一区二区一| 污污内射在线观看一区二区少妇| 99精品视频一区| 亚洲久久久久久久| 国产精品素人一区二区| 印度午夜性春猛xxx交| 亚洲午夜久久久久中文字幕久| 国产精品美女毛片真酒店| 懂色av一区二区三区| 久草热在线观看| 91精品国产综合久久精品app| 亚洲成a人片在线| 国产视频精品xxxx| 在线视频三区| 欧美人交a欧美精品| 日韩脚交footjobhd| 国产精品久久久久久一区二区| 中文字幕日韩亚洲| 国产伦视频一区二区三区| 精品国产一区二区三区久久久蜜臀| 三年中文高清在线观看第6集| 欧美.www| 国产成人手机视频| 国产精品亚洲а∨天堂免在线| 青青草视频播放| 国产精品初高中害羞小美女文| 国产在线成人精品午夜| 91黄色免费网站| 亚洲精品久久久久久动漫器材一区 | 亚洲乱熟女一区二区| 亚洲欧美精品一区| 国产婷婷视频在线| 5278欧美一区二区三区| 亚洲一区导航| 欧美日韩三区四区| 欧美精品麻豆| 日本激情综合网| 99久久伊人精品| 992在线观看| 五月综合激情日本mⅴ| 97人妻精品一区二区三区| 日韩久久精品电影| 日本中文字幕中出在线| 国产精品香蕉在线观看| 天海翼精品一区二区三区| 天堂av免费看| 日韩av电影一区| 国产精品久久无码| 亚洲精品一卡二卡| 在线免费av网| 亚洲久久久久久久久久久| 国产精品一区hongkong| 成人黄色免费片| 精品日本12videosex| 久久久999视频| 成人免费的视频| 欧美国产在线看| 欧美欧美午夜aⅴ在线观看| 日本啊v在线| 97超级碰碰碰久久久| 日韩一区二区三区精品| 相泽南亚洲一区二区在线播放 | 欧美一级高清免费| 成人在线视频中文字幕| 欧美三级午夜理伦三级老人| 蜜桃av噜噜一区| 国产伦精品一区二区三区视频女| 欧美视频不卡中文| 人妻少妇精品无码专区久久| 欧美成人精品在线播放| 电影一区二区三区久久免费观看| 日韩av免费电影| 久久久噜噜噜久久狠狠50岁| 亚洲男人在线天堂| 午夜精品一区在线观看| 六月丁香色婷婷| 久久人人爽人人爽人人片av高请| 无人区乱码一区二区三区| 精品一区二区三区毛片| 国产精品白丝av| 人妻久久一区二区| 日韩欧美精品在线视频| 中文字幕中文字幕在线中高清免费版 | 中文一区二区视频| 丰满少妇一区| 中文字幕一区二区三区四区五区六区| 免费观看久久久4p| 国产91在线播放九色| 6080国产精品一区二区| 精品孕妇一区二区三区| 91在线观看免费网站| 欧美1区2区视频| 性农村xxxxx小树林| 亚洲大片在线观看| 日本国产在线| 国产精品久久久久久久久久| 日韩久久视频| 久久人人爽人人片| 亚洲成人免费在线观看| 亚洲三级中文字幕| 国产精品久久久久久久一区探花| 手机在线一区二区三区| xxxx视频在线观看| 精品magnet| 成人免费一区二区三区视频网站| 国产精品专区第二| 狠狠88综合久久久久综合网| 国产夫妻性爱视频| 欧美色老头old∨ideo| 18在线观看的| 久久久久久久久久久久久久一区| 日韩在线a电影| 国产福利视频网站| 精品久久人人做人人爽| 亚洲天堂导航| 亚洲一区二区精品在线| 国产91在线观看| 福利网址在线观看| 超碰精品一区二区三区乱码| 麻豆一区二区麻豆免费观看| 密臀av一区二区三区| 亚洲欧美日本在线| 免费一级在线观看播放网址| 国产视频999| 亚洲免费精品| 国产美女网站视频| 亚洲第一二三四五区| 素人啪啪色综合| 日本久久久网站| 色综合中文网| 久久精品一区中文字幕| 99久久婷婷国产综合精品首页| 国产一二三四五| 久久久久久久性| 国产黄频在线观看| 国产精品人成电影在线观看| 亚洲东热激情| 日韩av手机在线免费观看| 日韩激情第一页|