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

MySQL next-key lock 加鎖范圍是什么?

數(shù)據(jù)庫 MySQL
A next-key lock is a combination of a record lock on the index record and a gap lock on the gap before the index record.官網(wǎng)的解釋大概意思就是:next-key 鎖是索引記錄上的記錄鎖和索引記錄之前的間隙上的間隙鎖的組合。

[[403851]]

前言

某天,突然被問到 MySQL 的 next-key lock,我瞬間的反應(yīng)就是:

這都是啥啥啥???

這一個(gè)截圖我啥也看不出來呀?

仔細(xì)一看,好像似曾相識(shí),這不是《MySQL 45 講》里面的內(nèi)容么?

1什么是 next-key lock

A next-key lock is a combination of a record lock on the index record and a gap lock on the gap before the index record.

官網(wǎng)的解釋大概意思就是:next-key 鎖是索引記錄上的記錄鎖和索引記錄之前的間隙上的間隙鎖的組合。

先給自己來一串小問號(hào)???

  1. 在主鍵、唯一索引、普通索引以及普通字段上加鎖,是鎖住了哪些索引?
  2. 不同的查詢條件,分別鎖住了哪些范圍的數(shù)據(jù)?
  3. for share 和 for update 等值查詢和范圍查詢的鎖范圍?
  4. 當(dāng)查詢的等值不存在時(shí),鎖范圍是什么?
  5. 當(dāng)查詢條件分別是主鍵、唯一索引、普通索引時(shí)有什么區(qū)別?

既然啥都不懂,那只好從頭開始操作實(shí)踐一把了!

先看看看 《MySQL 45 講》中丁奇老師的結(jié)論:

看了這結(jié)論,應(yīng)該可以解答一大部分問題,不過有一句非常非常重點(diǎn)的話需要關(guān)注:MySQL 后面的版本可能會(huì)改變加鎖策略,所以這個(gè)規(guī)則只限于截止到現(xiàn)在的最新版本,即 5.x 系列<=5.7.24,8.0 系列 <=8.0.13

所以,以上的規(guī)則,對(duì)現(xiàn)在的版本并不一定適用,下面我以 MySQL 8.0.25 版本為例,進(jìn)行多角度驗(yàn)證 next-key lock 加鎖范圍。

2環(huán)境準(zhǔn)備

MySQL 版本:8.0.25

隔離級(jí)別:可重復(fù)讀(RR)

存儲(chǔ)引擎:InnoDB

  1. mysql> select @@global.transaction_isolation,@@transaction_isolation\G 
  2. mysql> show create table t\G 

如何使用 Docker 安裝 MySQL,可以參考另一篇文章《使用 Docker 安裝并連接 MySQL》

3主鍵索引

首先來驗(yàn)證主鍵索引的 next-key lock 的范圍

此時(shí)數(shù)據(jù)庫的數(shù)據(jù)如圖所示,對(duì)主鍵索引來說此時(shí)數(shù)據(jù)間隙如下:

主鍵等值查詢 —— 數(shù)據(jù)存在

  1. mysql> beginselect * from t where id = 10 for update

這條 SQL,對(duì) id = 10 進(jìn)行加鎖,可以先思考一下加了什么鎖?鎖住了什么數(shù)據(jù)?

可以通過 data_locks 查看鎖信息,SQL 如下:

  1. # mysql> select * from performance_schema.data_locks; 
  2. mysql> select * from performance_schema.data_locks\G 

具體字段含義可以參考 官方文檔[1]

結(jié)果主要包含引擎、庫、表等信息,咱們需要重點(diǎn)關(guān)注以下幾個(gè)字段:

  • INDEX_NAME:鎖定索引的名稱
  • LOCK_TYPE:鎖的類型,對(duì)于 InnoDB,允許的值為 RECORD 行級(jí)鎖 和 TABLE 表級(jí)鎖。
  • LOCK_MODE:鎖的類型:S, X, IS, IX, and gap locks
  • LOCK_DATA:鎖關(guān)聯(lián)的數(shù)據(jù),對(duì)于 InnoDB,當(dāng) LOCK_TYPE 是 RECORD(行鎖),則顯示值。當(dāng)鎖在主鍵索引上時(shí),則值是鎖定記錄的主鍵值。當(dāng)鎖是在輔助索引上時(shí),則顯示輔助索引的值,并附加上主鍵值。

結(jié)果很明顯,這里是對(duì)表添加了一個(gè) IX 鎖 并對(duì)主鍵索引 id = 10 的記錄,添加了一個(gè) X,REC_NOT_GAP 鎖,表示只鎖定了記錄。

同樣 for share 是對(duì)表添加了一個(gè) IS 鎖并對(duì)主鍵索引 id = 10 的記錄,添加了一個(gè) S 鎖。

可以得出結(jié)論:

對(duì)主鍵等值加鎖,且值存在時(shí),會(huì)對(duì)表添加意向鎖,同時(shí)會(huì)對(duì)主鍵索引添加行鎖。

主鍵等值查詢 —— 數(shù)據(jù)不存在

  1. mysql> select * from t where id = 11 for update

如果是數(shù)據(jù)不存在的時(shí)候,會(huì)加什么鎖呢?鎖的范圍又是什么?

在驗(yàn)證之前,分析一下數(shù)據(jù)的間隙。

  1. id = 11 是肯定不存在的。但是加了 for update,這時(shí)需要加 next-key lock,id = 11 所屬區(qū)間為 (10,15] 的前開后閉區(qū)間;
  2. 因?yàn)槭堑戎挡樵儯恍枰i id = 15 那條記錄,next-key lock 會(huì)退化為間隙鎖;
  3. 最終區(qū)間為 (10,15) 的前開后開區(qū)間。
  4. 使用 data_locks 分析一下鎖信息:

看下鎖的信息 X,GAP 表示加了間隙鎖,其中 LOCK_DATA = 15,表示鎖的是 主鍵索引 id = 15 之前的間隙。

此時(shí)在另一個(gè) Session 執(zhí)行 SQL,答案顯而易見,是 id = 12 不可以插入,而 id = 15 是可以更新的。

可以得出結(jié)論,在數(shù)據(jù)不存在時(shí),主鍵等值查詢,會(huì)鎖住該主鍵查詢條件所在的間隙。

主鍵范圍查詢(重點(diǎn))

  1. beginselect * from t where id >= 10 and id < 11 for update

根據(jù) 《MySQL 45 講》分析得出下面結(jié)果:

  1. id >= 10 定位到 10 所在的區(qū)間 (10,+∞);
  2. 因?yàn)槭?>= 存在等值判斷,所以需要包含 10 這個(gè)值,變?yōu)?[10,+∞) 前閉后閉區(qū)間;
  3. id < 11 限定后續(xù)范圍,則根據(jù) 11 判斷下一個(gè)區(qū)間為 15 的前開后閉區(qū)間;
  4. 結(jié)合起來則是 [10,15]。(不完全正確)

先看下 data_locks

可以看到除了表鎖之外,還有 id = 10 的行鎖(X,REC_NOT_GAP)以及主鍵索引 id = 15 之前的間隙鎖(X,GAP)。

所以實(shí)際上 id = 15 是可以進(jìn)行更新的。也就是說前開后閉區(qū)間出現(xiàn)了問題,個(gè)人認(rèn)為應(yīng)該是 id < 11 這個(gè)條件判斷,導(dǎo)致不需要進(jìn)行了鎖 15 這個(gè)行鎖。

結(jié)果驗(yàn)證也是正確的,id = 12 插入阻塞,id = 15 更新成功。

當(dāng)范圍的右側(cè)是包含等值查詢呢?

  1. mysql> beginselect * from t where id > 10 and id <= 15 for update

來分析一下這個(gè) SQL:

  1. id > 10 定位到 10 所在的區(qū)間 (10,+∞);
  2. id <= 15 定位是 (-∞, 15];
  3. 結(jié)合起來則是 (10,15]。

同樣先看一下 data_locks

可以看出只添加了一個(gè)主鍵索引 id = 15 的 X 鎖。

驗(yàn)證下 id = 15 是否可以更新?再驗(yàn)證 id = 16 是否可以插入?

事實(shí)證明是沒有問題的!

當(dāng)然,這里有小伙伴會(huì)說,在 《MySQL 45 講》 里面說這里有一個(gè) bug,會(huì)鎖住下一個(gè) next-key。

《MySQL 45 講》 第 21 講

事實(shí)證明,這個(gè) bug 已經(jīng)被修復(fù)了。修復(fù)版本為 MySQL 8.0.18。但是并沒有完全修復(fù)!!!

參考鏈接地址:

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html#mysqld-8-0-18-bug

搜索關(guān)鍵字:Bug #29508068)

咱們可以分別用 8.0.17 進(jìn)行復(fù)現(xiàn)一下:

MySQL 8.0.17

在 8.0.17 中 id <= 15 會(huì)將 id = 20 這條數(shù)據(jù)也鎖著,而在 8.0.25 版本中則不會(huì)。所以這個(gè) bug 是被修復(fù)了的。

再來看下是前開后閉還是前開后開的問題,嚴(yán)謹(jǐn)一下,使用 8.0.17 和 8.0.18 做比較。

MySQL 8.0.17

MySQL 8.0.18

現(xiàn)在我估計(jì)大概率是在 8.0.18 版本修復(fù) Bug #29508068 的時(shí)候,把這個(gè)前開后閉給優(yōu)化成了前開后開了。

對(duì)比 data_locks 數(shù)據(jù):

注意紅色下劃線部分,在 8.0.17 版本中 id < 17 時(shí) LOCK_MODE 是 X,而在 8.0.25 版本中則是 X,GAP。

4總結(jié)

本文主要通過實(shí)際操作,對(duì)主鍵加鎖時(shí)的 next-key lock 范圍進(jìn)行了驗(yàn)證,并查閱資料,對(duì)比版本得出不同的結(jié)論。

結(jié)論一:

  1. 加鎖時(shí),會(huì)先給表添加意向鎖,IX 或 IS;
  2. 加鎖是如果是多個(gè)范圍,是分開加了多個(gè)鎖,每個(gè)范圍都有鎖;(這個(gè)可以實(shí)踐下 id < 20 的情況)
  3. 主鍵等值查詢,數(shù)據(jù)存在時(shí),會(huì)對(duì)該主鍵索引的值加行鎖 X,REC_NOT_GAP;
  4. 主鍵等值查詢,數(shù)據(jù)不存在時(shí),會(huì)對(duì)查詢條件主鍵值所在的間隙添加間隙鎖 X,GAP;
  5. 主鍵等值查詢,范圍查詢時(shí)情況則比較復(fù)雜:
  • 8.0.17 版本是前開后閉,而 8.0.18 版本及以后,進(jìn)行了優(yōu)化,主鍵時(shí)判斷不等,不會(huì)鎖住后閉的區(qū)間。
  • 臨界 <= 查詢時(shí),8.0.17 會(huì)鎖住下一個(gè) next-key 的前開后閉區(qū)間,而 8.0.18 及以后版本,修復(fù)了這個(gè) bug。

優(yōu)化后,導(dǎo)致后開,這個(gè)不知道是因?yàn)閮?yōu)化后,主鍵的區(qū)間會(huì)直接后開,還是因?yàn)槭莻€(gè) bug。具體小伙伴可以嘗試一下。

結(jié)論二

通過使用 select * from performance_schema.data_locks; 和操作時(shí)間,可以看出 LOCK_MODE 和 LOCK_DATE 的關(guān)系:

LOCK_MODE LOCK_DATA 鎖范圍
X,REC_NOT_GAP 15 15 那條數(shù)據(jù)的行鎖
X,GAP 15 15 那條數(shù)據(jù)之前的間隙,不包含 15
X 15 15 那條數(shù)據(jù)的間隙,包含 15
  1. LOCK_MODE = X 是前開后閉區(qū)間;
  2. X,GAP 是前開后開區(qū)間(間隙鎖);
  3. X,REC_NOT_GAP 行鎖。

基本已經(jīng)摸清主鍵的 next-key lock 范圍,注意版本使用的是 8.0.25。

疑問

  1. 那唯一索引的 next-key lock 范圍是什么?
  2. 當(dāng)索引覆蓋時(shí)鎖的范圍和加鎖的索引分別是什么?
  3. 我為什么說這個(gè) bug 沒有完全修復(fù),也是在非主鍵唯一索引中復(fù)現(xiàn)了這個(gè) bug。

文章篇幅有限,小伙伴可以先自己思考一下,盡量自己操作試一試,實(shí)踐出真知。至于具體答案,那就需要下一篇文章進(jìn)行驗(yàn)證并總結(jié)結(jié)論了。

引用鏈接:

[1]The data_locks Table: https://dev.mysql.com/doc/mysql-perfschema-excerpt/8.0/en/performance-schema-data-locks-table.html

本文轉(zhuǎn)載自微信公眾號(hào)「程序員小航」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序員小航公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 程序員小航
相關(guān)推薦

2021-06-08 09:41:26

MySQL加鎖范圍

2025-08-15 07:55:20

2025-04-24 10:56:01

MySQLInnoDB數(shù)據(jù)庫鎖

2024-06-12 14:03:31

MySQLInnoDB

2022-04-29 11:39:28

MySQL幻讀Gap Lock

2025-11-14 00:00:15

2025-11-20 10:18:11

2023-06-05 08:15:30

MySQLInnoDB

2025-09-01 09:05:00

2021-06-06 13:03:53

MySQL普通索引

2017-05-15 18:00:43

MySQ加鎖處理

2020-12-14 12:17:47

MySQL記錄語句

2024-12-23 13:00:00

MySQLMVCC數(shù)據(jù)庫

2017-03-21 23:29:44

DevOps運(yùn)維開發(fā)

2024-12-25 16:04:53

2025-02-20 10:04:35

2020-03-05 10:28:19

MySQLMRR磁盤讀

2021-06-28 17:21:49

MySQL性能Java

2018-04-09 14:25:06

數(shù)據(jù)庫MySQL索引

2024-01-02 14:17:31

MySQLMDL LOCK語句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品久久久久9999高清| 亚洲精品三区| 久久人人爽爽爽人久久久| 青青青国产精品一区二区| 久久精品视频18| 亚洲伊人伊成久久人综合网| 亚洲精品美国一| 久久精品99久久| 国产又粗又长又大视频| 一区二区亚洲| 最近2019年好看中文字幕视频| 波多野结衣在线免费观看| 手机在线观看av网站| 国产精品久久久久影院色老大| 国产精品大全| 中文字幕乱码视频| 亚洲黄页一区| 久久精品小视频| 波多野吉衣中文字幕| 视频精品国内| 欧美手机在线视频| 国产在线青青草| 手机av在线播放| 欧美激情在线看| 精品免费一区二区三区蜜桃| 99免费在线视频| 免费精品视频在线| 国产成人91久久精品| 欧美片一区二区| 欧美高清视频手机在在线| 亚洲国产中文字幕久久网| 一级片免费在线观看视频| 黄色精品视频| 色婷婷av一区二区三区大白胸| 加勒比海盗1在线观看免费国语版| 国产福利电影在线| 91麻豆免费视频| 国产高清在线一区二区| 精品国产av鲁一鲁一区| 极品少妇xxxx精品少妇| 国产精品久久久久久久久免费看 | 在线观看xxx| 国产99精品在线观看| 91最新在线免费观看| 亚洲天堂网在线观看视频| 日日夜夜免费精品| 国产激情久久久| 中文字幕亚洲乱码熟女1区2区| 亚洲黄色大片| 久久久久久久香蕉网| 在线免费观看亚洲视频| 最新国产精品| 美日韩精品免费视频| 国产在线免费看| 91综合视频| 精品国产一区二区三区久久久狼| 久久久久久成人网| 日韩视频在线观看| 日韩在线观看免费av| 亚洲国产123| 久久精品亚洲欧美日韩精品中文字幕| 久久精彩免费视频| 男的操女的网站| 欧美日韩国产综合网| 久久99久久99精品免观看粉嫩| 欧美一区二区三区爽爽爽| 亚洲综合色站| 欧美激情亚洲视频| 国产成人在线免费视频| 国产精品毛片在线看| 青草成人免费视频| 中文字幕一区二区三区人妻四季| 久久 天天综合| 97人人澡人人爽| 十八禁一区二区三区| 91麻豆免费观看| 一卡二卡3卡四卡高清精品视频| 免费**毛片在线| 亚洲福利一区二区| 成人一级片网站| www.一区| 日韩美女一区二区三区| 日本xxxx裸体xxxx| 日韩1区2区| 欧美激情乱人伦| 区一区二在线观看| 国产精品一二三四| 蜜桃传媒视频麻豆第一区免费观看| 每日更新在线观看av| 国产精品免费aⅴ片在线观看| 亚洲欧美日韩不卡| 九色porny自拍视频在线播放| 一本大道久久a久久精二百| 三级视频中文字幕| xxxx日韩| 亚洲精品资源美女情侣酒店| 91香蕉视频污在线观看| 亚洲特级毛片| 国产精品久久久久久久午夜| 亚洲精品国产一区二| 欧美国产日韩a欧美在线观看 | 高潮毛片无遮挡| 欧美在线三级| 国产成人精品一区二区三区| 国产chinasex对白videos麻豆| 久久欧美中文字幕| 国产欧美日韩小视频| 在线一区视频观看| 亚洲国产精品久久| 日韩va亚洲va欧美va清高| 久久久天天操| 国产v亚洲v天堂无码| 午夜伦全在线观看| 狠狠躁夜夜躁人人爽超碰91| 手机在线观看日韩av| 精品久久久中文字幕| 97免费中文视频在线观看| 国产精品毛片一区二区在线看舒淇 | 欧美精品一区二区久久| 国内成人精品一区| 国产一区二区三区三州| 久久综合九色综合欧美98| 欧美一级爱爱视频| 五月天色综合| 中文字幕久热精品视频在线| 日本高清www免费视频| 国产福利一区二区三区在线视频| 日本亚洲导航| 亚洲成人短视频| 精品一区二区三区电影| 久草精品视频在线观看| 国产精品资源网站| 波多野结衣三级在线| 亚洲成人短视频| 亚洲欧美第一页| 久久久国产精品成人免费| 丰满白嫩尤物一区二区| 亚洲欧美一二三| 亚洲国产精选| 久久视频免费观看| 国产精品久久久久久免费免熟| 亚洲国产电影在线观看| 手机看片福利日韩| 久久影院一区| 国产精品视频一区二区高潮| 国产69精品久久app免费版| 色哟哟在线观看一区二区三区| 免费a在线观看播放| 99精品国产99久久久久久福利| 成人h在线播放| 啦啦啦中文在线观看日本| 日韩欧美成人激情| 欧美日韩国产精品综合| 岛国一区二区在线观看| 97久久国产亚洲精品超碰热| 影音先锋欧美激情| 97色在线观看免费视频| 五月天丁香视频| 丁香五六月婷婷久久激情| 久久久久国产精品区片区无码| 在线亚洲欧美| 日韩欧美亚洲日产国产| 欧美一级做一级爱a做片性| 久久五月天色综合| 亚洲av无码国产综合专区| 亚洲国产视频一区| 亚洲av无码国产精品久久| 日韩电影网1区2区| 国产盗摄视频在线观看| 国产丝袜一区| 国产精国产精品| 精品欧美色视频网站在线观看| 日韩欧美亚洲一区二区| 国产成人亚洲欧洲在线| 久久久久久久精| 天美一区二区三区| 亚洲高清av| 日韩在线第一区| 午夜日韩影院| 日本高清视频一区| 久草免费在线观看| 亚洲国产中文字幕久久网| 欧美一级做a爰片免费视频| 成人欧美一区二区三区视频网页| 91人妻一区二区三区| 国产精品久久久久久久免费软件 | 天堂www中文在线资源| 日日夜夜免费精品视频| 黄色高清视频网站| 日本久久成人网| 91久久久久久久久| 免费v片在线观看| 久久视频这里只有精品| 亚洲欧洲精品视频| 91精品国产色综合久久不卡蜜臀| 亚洲国产精品成人无久久精品| 日本一二三不卡| 91视频在线免费| 久久99深爱久久99精品| 欧美国产亚洲一区| 午夜精品影院| 一区二区视频在线免费| 欧美美女在线直播| 91传媒在线免费观看| 成人日韩在线| 久久久亚洲国产| 黄网址在线观看| 国产亚洲美女精品久久久| 黄片毛片在线看| 777色狠狠一区二区三区| 五月天综合激情网| 亚洲一区二区三区四区五区中文| www.av天天| 91视频com| 欧洲熟妇的性久久久久久| 激情综合网天天干| 久久午夜夜伦鲁鲁一区二区| 亚洲激情专区| 青青青在线观看视频| 日韩在线视频精品| 无遮挡亚洲一区| 国产日韩欧美一区二区三区| 国产精品一区二区三区精品| 91成人在线网站| 国产欧美精品一区二区三区介绍| 综合毛片免费视频| 91av国产在线| 91九色porn在线资源| 欧美精品久久久久久久| 成人在线免费看片| 日韩小视频在线观看| 成人高清免费观看mv| 亚洲欧美日韩直播| 青青操在线视频| 亚洲男女性事视频| 色中色在线视频| 精品香蕉一区二区三区| 天天操天天干天天舔| 日韩成人小视频| 亚洲黄色在线播放| 精品嫩草影院久久| 国产自产一区二区| 亚洲第一网站免费视频| 日韩中文字幕影院| 日韩av网站电影| 欧美少妇另类| 国产小视频国产精品| 国产二区视频在线观看| 中文字幕少妇一区二区三区| 成人18在线| 色一区av在线| 黄色网页在线观看| 欧美超级免费视 在线| www.在线视频| 国自产精品手机在线观看视频| 99爱在线观看| 欧日韩在线观看| 国产精品99久久久久久董美香| 国产精品日韩久久久久| 91亚洲精品在看在线观看高清| 成人精品久久av网站| 久久久久久久久久久久电影| 97碰碰视频| 欧美人与动xxxxz0oz| 日产精品高清视频免费| 99久久亚洲精品蜜臀| 欧美日韩午夜爽爽| 亚洲精选成人| 美女一区二区三区视频| 精品亚洲成a人| 中文字幕人妻一区二区三区| www欧美成人18+| 国内毛片毛片毛片毛片毛片| 亚洲乱码国产乱码精品精可以看| 日本熟妇成熟毛茸茸| 在线观看一区日韩| wwwav在线播放| 亚洲精选在线观看| 免费在线看黄网站| 91国产精品电影| 国产精品久久久久久吹潮| 99久re热视频这里只有精品6| 久久影视三级福利片| 日韩影片在线播放| 亚洲国产导航| 最新中文字幕免费视频| 国产a久久麻豆| 国产伦精品一区二区三区视频女| 亚洲精品中文字幕乱码三区| 五月婷婷中文字幕| 91精品国产91久久久久久最新毛片 | 日本福利一区二区三区| 在线一区免费| 日韩精品一区二区三区不卡| 国产美女在线精品| 亚洲区自拍偷拍| 亚洲一区中文日韩| 在线观看毛片视频| 国产午夜精品久久久| 黄色在线免费网站| 日本最新高清不卡中文字幕| 国产一区二区三区| 日韩国产在线一区| 韩国av一区| 香港日本韩国三级网站| 9人人澡人人爽人人精品| 99久久久免费精品| 在线影视一区二区三区| 后进极品白嫩翘臀在线视频| 久久精品美女视频网站| 姬川优奈av一区二区在线电影| 不卡一区二区三区视频| 99视频精品全国免费| 韩国一区二区av| av电影天堂一区二区在线观看| 日本爱爱小视频| 色94色欧美sute亚洲线路二| 日韩一区二区三区在线观看视频| 久久精品国产久精国产思思| 人人鲁人人莫人人爱精品| 国产一区二区三区高清| 欧美国产激情| 日本人dh亚洲人ⅹxx| 国产精品久久久久天堂| 波多野结衣高清视频| 亚洲色图在线观看| 蜜桃麻豆影像在线观看| 国产精品区一区二区三含羞草| 91精品一区二区三区综合在线爱| 欧美伦理片在线观看| 中文字幕免费一区| 最新中文字幕在线观看视频| 亚洲女人被黑人巨大进入| 日本在线啊啊| 精品国产乱码久久久久久88av| 国产在线不卡| aaa黄色大片| 亚洲二区在线视频| 免费看国产片在线观看| 久久久久国产一区二区三区| 久久国产精品美女| 91网站在线观看免费| 国产成人在线视频网站| 日韩一级片av| 精品少妇一区二区三区| 男女羞羞视频在线观看| 国产精品裸体一区二区三区| 激情欧美丁香| 99久久国产精| 在线视频你懂得一区二区三区| 能在线看的av| 国产精品入口免费视频一| 亚洲成人一区| 韩国三级在线看| 欧美日韩国产激情| 牛牛热在线视频| 国产精品一区=区| 91精品久久久久久久久久不卡| 999热精品视频| 亚洲成人免费视| 国产主播福利在线| 国产精品一区专区欧美日韩| 国产精品毛片一区二区在线看| 国产91在线免费观看| 香港成人在线视频| 国内精品在线视频| 成人a视频在线观看| 欧美久久视频| 老司机福利av| 欧美日本视频在线| 丁香花高清在线观看完整版| 麻豆91蜜桃| 精品一区二区免费看| 免费中文字幕视频| 亚洲新声在线观看| 999色成人| 欧美亚洲精品一区二区| 国产欧美1区2区3区| 精品人妻无码一区二区| 91国内在线视频| 91亚洲国产| 中文人妻一区二区三区| 51午夜精品国产| 精精国产xxxx视频在线播放| 欧美一区二区视频17c| 国内精品伊人久久久久av影院 | 国产精品三级在线观看无码| 欧美唯美清纯偷拍| 福利写真视频网站在线| 日本一区二区免费看| 国产91露脸合集magnet| 国产亚洲欧美日韩高清| 欧美日韩电影在线观看| 精品国精品国产自在久国产应用| 熟女人妻一区二区三区免费看| 欧美自拍偷拍午夜视频| av中文字幕在线看| 亚洲欧美日韩不卡| 国产三级欧美三级日产三级99| 国产自产一区二区|