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

MySQL 核心模塊—揭秘死鎖案例分析插入意向鎖

數據庫 MySQL
沒有其它事務在等待獲得這條記錄的鎖,事務 1 想要往這條記錄前面的間隙插入記錄,不需要等待獲得插入意向鎖,可以直接插入記錄。

1. 準備工作

創建測試表:

CREATE TABLE `t_deadlock_1` (
  `id` int NOT NULL AUTO_INCREMENT,
  `i1` int DEFAULT NULL,
  `i2` int DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_i1` (`i1`)
) ENGINE = InnoDB;

插入測試數據:

INSERT INTO `t_deadlock_1` (`id`, `i1`, `i2`)
VALUE (22, 2, 3), (23, 5, 4), (24, 6, 7);

把事務隔離級別設置為 REPEATABLE-READ(如已設置,忽略此步驟):

SET transaction_isolation = 'REPEATABLE-READ';

-- 確認設置成功
SHOW VARIABLES like 'transaction_isolation';
+-----------------------+-----------------+
| Variable_name         | Value           |
+-----------------------+-----------------+
| transaction_isolation | REPEATABLE-READ |
+-----------------------+-----------------+

2. 加鎖情況

創建 2 個 MySQL 連接,開啟 2 個事務,執行以下 SQL:

-- session 1(事務 1)
BEGIN; DELETE FROM t_deadlock_1 WHERE `i1` = 5;

-- session 2(事務 2)
BEGIN; DELETE FROM t_deadlock_1 WHERE `i1` = 5;

在 session 1 中執行以下 select 語句查看加鎖情況:

select
  engine_transaction_id, object_name, index_name,
  lock_type, lock_mode, lock_status, lock_data
from performance_schema.data_locks
where object_name = 't_deadlock_1'
and lock_type = 'RECORD'\G

***************************[ 1. row ]***************************
engine_transaction_id | 250490
object_name           | t_deadlock_1
index_name            | idx_i1
lock_type             | RECORD
lock_mode             | X
lock_status           | WAITING
lock_data             | 5, 23
***************************[ 2. row ]***************************
engine_transaction_id | 250489
object_name           | t_deadlock_1
index_name            | idx_i1
lock_type             | RECORD
lock_mode             | X
lock_status           | GRANTED
lock_data             | 5, 23
***************************[ 3. row ]***************************
engine_transaction_id | 250489
object_name           | t_deadlock_1
index_name            | PRIMARY
lock_type             | RECORD
lock_mode             | X,REC_NOT_GAP
lock_status           | GRANTED
lock_data             | 23
***************************[ 4. row ]***************************
engine_transaction_id | 250489
object_name           | t_deadlock_1
index_name            | idx_i1
lock_type             | RECORD
lock_mode             | X,GAP
lock_status           | GRANTED
lock_data             | 6, 24

加鎖情況第 2 ~ 4 條,是事務 1 的加鎖情況。

事務 1 執行 delete 語句過程中,會先掃描需要刪除的記錄,并對掃描到的記錄加鎖。

掃描過程使用了二級索引 idx_i1,先定位到這個索引中 <i1 = 5, id = 23> 的記錄,加排他 Next-Key 鎖,對應加鎖情況第 2 條(2. row)。

回表查詢主鍵索引中 <id = 23> 的記錄,加排他普通記錄鎖,對應加鎖情況第 3 條(3. row)。

掃描到匹配 where 條件的第 1 條記錄之后,接著掃描下一條記錄,也就是二級索引 idx_i1 中 <i1 = 6, id = 24> 的記錄,加排他間隙鎖,對應加鎖情況第 4 條(4. row)。

因為這條記錄不匹配 where 條件,不需要回表查詢對應的主鍵索引記錄,所以沒有對主鍵索引中 <id = 24> 的記錄加鎖。

按照 <i1 = 5, id = 23> 的記錄加鎖情況,<i1 = 6, id = 24> 的記錄也應該加排他 Next-Key 鎖,但實際上只加了排他間隙鎖。

這是因為 InnoDB 對命中索引的等值查詢條件做了特殊處理。

可重復讀隔離級別默認會對掃描到的記錄加排他 Next-Key 鎖。如果 InnoDB 發現記錄不匹配命中索引的等值查詢條件,會改為對這條記錄加排他間隙鎖,避免鎖定不匹配的記錄本身,以縮小加鎖范圍。

加鎖情況第 1 條(1. row),是事務 2 的加鎖情況。

事務 2 執行 delete 語句過程中,也會先掃描需要刪除的記錄,并對掃描到的記錄加鎖。

掃描過程同樣使用了二級索引 idx_i1,先定位到這個索引中 <i1 = 5, id = 23> 的記錄,加排他 Next-Key 鎖。

但是,因為事務 1 先對這條記錄加了排他 Next-Key 鎖,事務 2 的加鎖操作被阻塞,進入鎖等待狀態。

介紹完事務 1 和事務 2 的加鎖情況,我們再在 session 1 中執行以下 insert 語句,插入一條記錄:

INSERT INTO t_deadlock_1 (`id`, `i1`, `i2`) VALUES (25, 2, 10);

結果就出現了死鎖,事務 2 被選擇成為死鎖受害事務,回滾了:

(1213, 'Deadlock found when trying to get lock; try restarting transaction')

3. 死鎖分析

為了找到死鎖原因,我們需要借助死鎖日志,可以在 session 1 或者 session 2 中執行以下 show 語句,查看最新的死鎖日志:

SHOW ENGINE InnoDB STATUS\G

------------------------
LATEST DETECTED DEADLOCK
------------------------
2024-09-07 07:48:49 0x7000087c0000
*** TRANSACTION:
-- 事務 2
TRANSACTION 250490, ACTIVE 19 sec starting index read
...
DELETE FROM t_deadlock_1 WHERE `i1` = 5

*** HOLDS THE LOCK(S):
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250490 \
  lock_mode X waiting
Record lock, heap no 3 PHYSICAL RECORD: \
  n_fields 2; compact format; info bits 32
 0: len 4; hex 80000005; asc     ;;
 1: len 4; hex 80000017; asc     ;;


*** WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250490 \
  lock_mode X waiting
Record lock, heap no 3 PHYSICAL RECORD: \
  n_fields 2; compact format; info bits 32
 0: len 4; hex 80000005; asc     ;;
 1: len 4; hex 80000017; asc     ;;


*** TRANSACTION:
-- 事務 1
TRANSACTION 250489, ACTIVE 26 sec inserting
...
INSERT INTO t_deadlock_1 (`id`, `i1`, `i2`) VALUES (25, 2, 10)

*** HOLDS THE LOCK(S):
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250489 \
  lock_mode X
Record lock, heap no 3 PHYSICAL RECORD: \
  n_fields 2; compact format; info bits 32
 0: len 4; hex 80000005; asc     ;;
 1: len 4; hex 80000017; asc     ;;


*** WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250489 \
  lock_mode X locks gap before rec insert intention waiting
Record lock, heap no 3 PHYSICAL RECORD: \
  n_fields 2; compact format; info bits 32
 0: len 4; hex 80000005; asc     ;;
 1: len 4; hex 80000017; asc     ;;

以上是從 SHOW ENGINE InnoDB STATUS 結果中摘出來的最新的死鎖日志。

為了方便手機上閱讀,我對格式做了一些調整,內容也有一點小小的修改,去掉了事務前面的編號。

從死鎖日志可以看到,事務 1(250489)和事務 2(250490)加鎖發生死鎖,都是因為二級索引 idx_i1 中的一條記錄:

/* i1 字段 */ 0: len 4; hex 80000005; asc     ;;
/* id 字段 */ 1: len 4; hex 80000017; asc     ;;

在 《30. 死鎖日志詳解》這篇文章中,我們介紹過把死鎖日志中整數類型字段值轉換為整數的方法。

我們用這個方法,把上面死鎖日志中這條記錄的兩個字段值轉換為整數:

## i1 字段,輸出:5
echo $((0x80000005 ^ (1 << (4 * 8 - 1))))

## id 字段,輸出:23
echo $((0x80000017 ^ (1 << (4 * 8 - 1))))

從以上輸出可以看到,事務 1(250489)和事務 2(250490)加鎖發生死鎖,都是因為二級索引 idx_i1 中 <i1 = 5, id = 23> 的記錄。

*** TRANSACTION:
-- 事務 1
TRANSACTION 250489, ACTIVE 26 sec inserting
...
*** HOLDS THE LOCK(S):
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250489 \
  lock_mode X
...
*** WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250489 \
  lock_mode X locks gap before rec insert intention waiting
...

上面是從死鎖日志中摘出來的一小段,從這段日志可以看到,事務 1(250489)持有 <i1 = 5, id = 23> 的記錄的排他 Next-Key 鎖,等待獲得這條記錄的插入意向鎖。

*** TRANSACTION:
-- 事務 2
TRANSACTION 250490, ACTIVE 19 sec starting index read
...
DELETE FROM t_deadlock_1 WHERE `i1` = 5

*** HOLDS THE LOCK(S):
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250490 \
  lock_mode X waiting
...
*** WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 232 page no 5 n bits 72 \
  index idx_i1 of table `test`.`t_deadlock_1` trx id 250490 \
  lock_mode X waiting
...

上面也是從死鎖日志中摘出來的一小段,從這段日志可以看到,事務 2(250490)的 HOLDS THE LOCK(S) 和 WAITING FOR THIS LOCK TO BE GRANTED 的記錄都處于 waiting 狀態。

這是因為事務 2(250490)在等待獲得事務 1(250489)持有的 <i1 = 5, id = 23> 的記錄的排他 Next-Key 鎖,又阻塞了事務 1(250489)對 <i1 = 5, id = 23> 的記錄加插入意向鎖。

既然事務 1(250489)已經持有 <i1 = 5, id = 23> 的記錄的排他 Next-Key 鎖,也就是既鎖定了這條記錄,又鎖定了它前面的間隙。

理論上來說,事務 1(250489)再對這條記錄加插入意向鎖,可以直接獲得鎖。

為什么會被事務 2(250490)阻塞呢?

如果事務 1(250489)因為持有這條記錄的排他 Next-Key 鎖,就可以直接獲得這條記錄的插入意向鎖。

獲得插入意向鎖之后,插入 <i1 = 2, id = 25> 的記錄到 <i1 = 5, id = 23> 的記錄前面。

新插入的記錄,會導致事務 1 和事務 2 原來對 <i1 = 5, id = 23> 的記錄加的鎖都需要拆分。

已經獲得的鎖,拆分是沒有問題的。

事務 2(250490)在等待獲得 <i1 = 5, id = 23> 的記錄的排他 Next-Key 鎖,也會拆分,得到兩個處于等待狀態的鎖。

然而,InnoDB 卻不允許一個事務同時有兩個處于等待狀態的鎖。

基于這個規則,雖然事務 1(250489)已經持有 <i1 = 5, id = 23> 的記錄的排他 Next-Key 鎖,但是因為事務 2(250490)在等待獲得這條記錄的排他 Next-Key 鎖,事務 1(250489)想要對這條記錄加插入意向鎖,也需要等待。

事務 1(250489)和事務 2(250490)相互等待,就形成了死鎖,過程如下:

  • 事務 1 持有鎖。
  • 事務 2 等待獲得事務 1 持有的鎖。
  • 事務 1 等待事務 2 獲得并釋放鎖之后,才能獲得插入意向鎖。

4. 總結

如果事務 1 已經對某條記錄加了排他 Next-Key 鎖:

  • 沒有其它事務在等待獲得這條記錄的鎖,事務 1 想要往這條記錄前面的間隙插入記錄,不需要等待獲得插入意向鎖,可以直接插入記錄。
  • 其它事務在等待獲得這條記錄的鎖,事務 1 想要往這條記錄前面的間隙插入記錄,需要等待其它事務獲得并釋放鎖之后,事務 1 才能獲得插入意向鎖,然后才能往這個間隙插入記錄。
責任編輯:武曉燕 來源: 愛可生開源社區
相關推薦

2023-07-03 08:15:46

MySQLInnoDB

2022-11-28 14:27:17

插入意向鎖age

2024-05-15 09:23:45

MySQL排他鎖共享鎖

2022-04-21 10:39:29

InnoDB意向鎖SQL

2024-08-28 08:50:11

MySQL核心模塊

2024-09-04 08:44:18

MySQL核心模塊

2025-06-04 02:55:00

MySQL意向鎖記錄鎖

2024-06-05 11:49:33

2024-05-15 09:05:42

MySQL核心模塊

2024-04-03 08:20:53

MySQL核心模塊

2024-08-07 14:58:00

MySQL釋放鎖核心模塊

2023-12-28 17:33:25

意向鎖MySQL開發者

2024-10-16 11:11:51

隔離InnoDB死鎖

2021-03-26 10:40:16

MySQL鎖等待死鎖

2024-03-27 13:33:00

MySQLInnoDB事務

2017-06-07 16:10:24

Mysql死鎖死鎖日志

2024-05-29 10:17:01

2022-07-20 08:06:57

MySQL表鎖Innodb

2025-02-26 08:26:38

2023-07-18 09:24:04

MySQL線程
點贊
收藏

51CTO技術棧公眾號

91精品国产闺蜜国产在线闺蜜| 国产一级片黄色| 动漫av一区二区三区| 久久精品午夜| 色妞久久福利网| youjizz.com日本| 精品国产欧美日韩一区二区三区| 一区二区三区四区在线免费观看 | 久久精品一区二区| 亚洲va男人天堂| 天天综合网久久综合网| 91精品一区二区三区综合| 亚洲国产一区二区三区在线观看| 91亚洲精品久久久蜜桃| 国产精品一区在线| 久久久久久久国产精品| 天天干天天操天天拍| 亚洲一区二区三区中文字幕在线观看 | 欧美日韩xx| 成人h动漫精品一区二| 国产精品18久久久久久首页狼| 精品99久久久久成人网站免费 | 成人污视频在线观看| 国产精品久久久久久中文字 | 欧美视频中文一区二区三区在线观看 | 大胆av不用播放器在线播放| jvid福利写真一区二区三区| 亚洲va欧美va国产综合剧情| 国产精品露脸视频| 亚洲精一区二区三区| 欧美成在线观看| 在线观看亚洲大片短视频| 视频福利一区| 亚洲精品在线三区| 极品人妻一区二区| 四虎精品在线观看| 欧美三级日韩在线| 日本黄网站免费| 天堂中文在线播放| 午夜精品福利一区二区蜜股av| 欧美a级免费视频| 中文字幕人妻一区二区| 在线最新版中文在线| 一区av在线播放| 青春草在线视频免费观看| 欧美成人片在线| 97久久精品人人做人人爽| 成人免费看片网址| 午夜精品久久久久久久96蜜桃| 精品一区二区三区影院在线午夜 | 加勒比av一区二区| 国产精品老女人精品视频| 国产一区免费看| 久久亚洲国产精品一区二区| 奇门遁甲1982国语版免费观看高清| 国产精品二区一区二区aⅴ| 一区在线视频| 国模视频一区二区三区| 国产 欧美 日韩 在线| 亚洲激情精品| 欧美在线观看视频| 无码人妻一区二区三区免费| 日日夜夜精品免费视频| 国产成人亚洲综合| 欧美性受xxx黑人xyx性爽| 日本麻豆一区二区三区视频| 国产精品亚洲精品| 国产露脸无套对白在线播放| 国产一区二区91| 成人91视频| 日本国产在线| 国产精品免费看片| www.黄色网址.com| 不卡的av影片| 一本色道久久综合亚洲91| 亚洲一区二区三区四区五区xx| 国产一区高清| 精品少妇一区二区三区在线视频| 第四色在线视频| 欧美猛男同性videos| 伊人久久久久久久久久久久久| 国产探花在线视频| 欧美日韩a区| 日本久久久久久久久久久| 亚洲天堂视频网| 国产91综合网| 视频一区不卡| 日本色护士高潮视频在线观看| 黑人巨大精品欧美一区二区三区| www.天天射.com| 日韩中文字幕无砖| 亚洲人免费视频| 日韩欧美123区| 久久福利一区| 91成人在线看| 国产在线超碰| 一个色综合av| 手机看片一级片| 成人爽a毛片免费啪啪红桃视频| 亚洲精品国产精品自产a区红杏吧| 国产1区2区在线观看| 亚洲午夜精品久久久久久app| 人体精品一二三区| 亚洲成人777777| 国产日韩v精品一区二区| 少妇一晚三次一区二区三区| 精品视频在线一区二区在线| 精品国偷自产国产一区| 综合 欧美 亚洲日本| 亚洲区欧美区| 亚洲精品免费网站| 高清在线观看av| 亚洲妇熟xx妇色黄| 国产不卡的av| 欧美电影《睫毛膏》| 欧美一级免费视频| 精品久久久久中文慕人妻| 欧美极品另类videosde| 狠狠干 狠狠操| 精品久久亚洲| 日韩在线免费高清视频| 亚洲 欧美 日韩 综合| 国产精品一二三四五| 五月天色一区| 日韩成人影音| 日韩国产高清视频在线| 久久精品欧美一区二区| 韩国三级中文字幕hd久久精品| 欧美日韩一区综合| 国产福利片在线观看| 日韩一二三四区| 九九这里只有精品视频| 青青草原综合久久大伊人精品优势| 精品国产一区二区三区麻豆免费观看完整版 | 国产一区日韩一区| 亚洲一区二区三区视频| 五月婷婷在线视频| 欧美午夜在线一二页| 欧美图片第一页| 久久国产欧美| 欧美在线激情| 欧美韩国亚洲| 一区二区亚洲精品国产| 亚洲精品国产精品乱码视色| 久久久99精品久久| 日日碰狠狠躁久久躁婷婷| 日韩黄色网络| 91高清免费视频| 精品视频三区| 欧美亚洲综合一区| 99精品全国免费观看| 日本欧洲一区二区| 亚洲制服中文| 2019中文亚洲字幕| 欧美人与物videos| 天堂av资源在线| 欧美日韩中文字幕综合视频| 玖玖爱在线观看| 日韩av一区二| 一区二区三视频| 久久视频免费| 午夜精品视频在线| 三级在线观看| 欧美人伦禁忌dvd放荡欲情| 九九热久久免费视频| 久久99久久久久久久久久久| 粉嫩av一区二区三区天美传媒| 一区二区日韩| 欧美亚洲激情在线| yjizz视频网站在线播放| 欧美三级电影精品| 精品爆乳一区二区三区无码av| 成人av资源站| 免费裸体美女网站| 久久久久久久久丰满| 国产精品久久久久久久久久久久午夜片 | 中文字幕免费一区| 手机av在线网站| 日韩一级不卡| 亚洲不卡1区| 欧美黄色成人| 午夜精品蜜臀一区二区三区免费| 国产在线观看免费| 日韩欧美国产三级电影视频| 精品国产乱码一区二区| 国产精品视频免费| 国产香蕉精品视频| 喷水一区二区三区| 国产va亚洲va在线va| 国产在线日韩精品| 成人免费视频网站| 日韩一区二区三区免费视频| 久久成人精品视频| 国产一区电影| 精品国产乱码久久久久久免费| 中文字幕日本视频| 香蕉加勒比综合久久| 国产第一页精品| 99久久国产综合色|国产精品| 天天操天天干天天做| 国产精品久久久久久模特| 亚洲综合视频一区| 天堂在线精品| 亚洲自拍偷拍视频| 日韩制服一区| 国产91精品久久久| 色屁屁www国产馆在线观看| 一本大道亚洲视频| 视频二区在线观看| 欧美一区欧美二区| 中文字幕第99页| 精品色蜜蜜精品视频在线观看| 久久国产波多野结衣| 久久精品欧美一区二区三区不卡| 五月天丁香社区| 国产一区二区三区四区五区美女| 日本熟妇人妻中出| 国产乱码精品| 久激情内射婷内射蜜桃| 欧美在线91| 在线视频一区观看| 欧美日韩在线网站| 免费亚洲一区二区| 国产乱人伦丫前精品视频| 91网站在线免费观看| yy6080久久伦理一区二区| 欧洲成人免费视频| 麻豆成全视频免费观看在线看| 久操成人在线视频| av免费在线免费| 久久天天躁狠狠躁夜夜躁| 欧美猛烈性xbxbxbxb| 亚洲视频在线播放| 天堂网www中文在线| 亚洲国产高清福利视频| 亚洲精品国偷拍自产在线观看蜜桃| 在线成人高清不卡| 国产精品视频一二区| 欧美少妇bbb| 中文字幕 日韩有码| 在线观看三级视频欧美| 成人一二三四区| 色国产精品一区在线观看| 九九热在线免费观看| 婷婷综合另类小说色区| 日韩久久精品视频| 欧美日韩一区二区免费在线观看| 日韩在线视频免费播放| 欧美日韩免费网站| 日日夜夜狠狠操| 欧美在线一二三| 一级成人免费视频| 欧美一区二区在线观看| 国产白浆在线观看| 精品久久久久久久久久久院品网| 亚洲精品一级片| 亚洲第一福利网| 性xxxxbbbb| 亚洲欧美色图片| av网站大全在线观看| 精品国模在线视频| 日韩成人伦理| 91国在线精品国内播放| 欧美黑人一区| 成人免费看黄网站| 大桥未久女教师av一区二区| 国产综合第一页| 国内成人精品| 日本三级福利片| 亚洲第一网站| 欧美三级午夜理伦三级| 青青草原综合久久大伊人精品优势 | 亚洲国产欧美一区二区丝袜黑人| 毛片在线播放网站| www.久久色.com| 国产区美女在线| 国产精品久久999| 亚洲**毛片| 欧美福利精品| 欧美一区免费| 欧美三级午夜理伦三级| 国内精品写真在线观看| 亚洲一区二区三区综合| 中文字幕精品综合| 日本少妇在线观看| 欧美午夜免费电影| 欧美 日韩 国产 成人 在线 91| 亚洲欧洲在线看| 久草在线视频福利| 国产精品第二页| 国产欧美自拍一区| 一区二区三区四区五区视频| 最新成人av网站| 久热精品在线观看视频| 国产成都精品91一区二区三| 99久久久无码国产精品衣服| 亚洲动漫第一页| 91丨九色丨丰满| 日韩极品精品视频免费观看| yellow91字幕网在线| 日本最新高清不卡中文字幕| 亚洲一级大片| 亚洲欧美日韩综合一区| 国产视频一区欧美| 午夜诱惑痒痒网| 中文字幕欧美三区| 久久午夜免费视频| 日韩你懂的在线播放| 福利成人在线观看| 91精品国产777在线观看| 综合久草视频| 亚洲第一在线综合在线| 国产精品嫩草99av在线| 好吊操视频这里只有精品| 国产精品久久久久久久久搜平片 | 貂蝉被到爽流白浆在线观看| 精品国产精品自拍| www.色视频| 久久偷看各类女兵18女厕嘘嘘| 日韩高清不卡| 欧美在线激情| 久久国产精品亚洲77777| 大尺度在线观看| 亚洲最大的成人av| 精品久久国产视频| 欧美成人免费观看| 91久久青草| gogogo免费高清日本写真| 青青草97国产精品免费观看| 91成人在线免费视频| 欧美午夜无遮挡| 日产精品久久久久久久性色| 性欧美xxxx交| 视频福利一区| 欧美三级一级片| 99re亚洲国产精品| 在线观看中文字幕视频| 亚洲黄页视频免费观看| 国产三级电影在线播放| 精品不卡一区二区三区| 99伊人成综合| 午夜一区二区三区免费| 五月天久久比比资源色| 手机av在线免费观看| 97在线观看视频| 外国成人在线视频| 能在线观看的av| 国产欧美日韩不卡| 中文字幕乱码中文字幕| 日韩性xxxx爱| 欧美三级一区| 18禁裸男晨勃露j毛免费观看| 丰满白嫩尤物一区二区| 国产福利拍拍拍| 亚洲精品视频在线观看视频| 久久久久久久| 在线观看欧美激情| 韩国精品久久久| 久久久久久久久久一区二区三区| 欧美精品一区二区三区四区 | 精品日韩av| 久久精品二区| 奇米影视一区二区三区| 少妇被躁爽到高潮无码文| 日韩视频在线永久播放| 国模私拍一区二区国模曼安| 欧美成人dvd在线视频| 日本不卡视频在线观看| 免费国产羞羞网站美图| 日韩美一区二区三区| 欧美办公室脚交xxxx| 亚洲精品国产精品国自产| 国产老肥熟一区二区三区| 亚洲欧洲日本mm| 成人久久18免费网站图片| 五月久久久综合一区二区小说| 一区二区三区国产好的精华液| 亚洲视频小说图片| 香蕉视频黄在线观看| 国产精品成人aaaaa网站| 亚洲色图网站| www.自拍偷拍| 96sao精品免费视频观看| 久久国产精品免费观看| eeuss影院一区二区三区| 老熟妇一区二区三区| 欧美成人免费一级人片100| 人妻 丝袜美腿 中文字幕| 97aⅴ精品视频一二三区| 日本精品入口免费视频| 欧美成人免费全部| 精品国产精品久久一区免费式 | 国产午夜精品一区二区理论影院 | 国产一区福利视频| 日本午夜精品一区二区三区电影| 精品视频在线观看免费| 在线观看日韩欧美| 欧美亚洲国产日韩| 亚洲精品mv在线观看| 色婷婷国产精品|