精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产1区2区在线| 都市激情久久久久久久久久久| 噜噜噜在线视频| 白浆在线视频| 久久久欧美精品sm网站| 国产999精品| 999久久久国产| 国产视频一区二区在线播放| 一区二区成人在线视频| 久久99国产精品| 午夜精品久久久久久久蜜桃| 久久久影院免费| 日韩女优视频免费观看| 国产成人无码a区在线观看视频| 人妻偷人精品一区二区三区| 99精品热视频只有精品10| 亚洲美女在线看| 成人综合久久网| 国产三区在线观看| 91视频免费播放| 成人激情视频在线观看| 国产一级在线播放| 欧美日韩在线网站| 日韩久久久久久| 国产l精品国产亚洲区久久| 97电影在线观看| 成人a区在线观看| 日韩免费在线观看视频| 精品在线观看一区| 另类春色校园亚洲| 欧美日本在线视频| 人妻精品无码一区二区三区| 快射av在线播放一区| 99久久综合99久久综合网站| 国产精品天天狠天天看| 日韩男人的天堂| 亚洲最新色图| 亚洲亚裔videos黑人hd| 国产婷婷在线观看| 91九色成人| 欧美性xxxx极品高清hd直播| 蜜臀av性久久久久蜜臀av| 青青青免费视频在线2| 免费看精品久久片| 欧美日韩不卡合集视频| 在线视频这里只有精品| 婷婷综合一区| 精品电影一区二区| 污污视频在线免费| 欧美日韩激情电影| 午夜精品aaa| 免费看日本黄色| 尤物网在线观看| 91天堂素人约啪| 国产精品国产三级欧美二区| 国产精品老熟女视频一区二区| 久久亚洲欧洲| 91国内产香蕉| 91九色丨porny丨肉丝| 欧美人成在线| 欧美老少做受xxxx高潮| 99在线视频免费| 免费观看久久av| 亚洲激情在线观看| 国产精品19p| 日本高清久久| 欧美日韩中文字幕精品| 色欲av无码一区二区人妻| 欧美黑人猛交| 一区二区三区中文免费| 女女同性女同一区二区三区按摩| 尤物在线视频| 国产精品电影院| 亚洲精品一区二| 成人在线播放视频| 国产欧美一区二区精品婷婷| 日韩精品最新在线观看| 国产福利在线| 国产精品免费免费| 日韩国产欧美精品| 免费看男男www网站入口在线| 99久久精品一区| 欧美久久久久久| 欧美女优在线观看| 久久久久久电影| 欧美一区激情视频在线观看| 国产视频精品久久| 中文字幕不卡在线| 992tv快乐视频| 毛片在线导航| 欧美日韩午夜剧场| 日本女优爱爱视频| 精品三级在线| 欧美一区二区三区人| 一级黄色免费毛片| 成人av婷婷| 亚洲精品视频播放| 免费看一级黄色| 亚洲综合婷婷| 97视频网站入口| 亚洲成熟少妇视频在线观看| 麻豆精品一区二区三区| 91精品久久久久久久久久久| 亚洲精品国产一区二| 26uuu精品一区二区| 天天好比中文综合网| 高清免费电影在线观看| 亚洲动漫第一页| 成年人黄色片视频| 精品国产三区在线| 精品亚洲va在线va天堂资源站| 91精品久久久久久久久久久久| 91成人网在线观看| 668精品在线视频| 一级二级三级视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲天堂中文字幕| 黄色a级在线观看| 色综合亚洲图丝熟| 欧美高清一级片在线| 变态另类丨国产精品| 天堂网在线观看国产精品| 久久久精品国产网站| 99热在线观看免费精品| 国产一区不卡视频| 热re99久久精品国99热蜜月 | 久久国产精品久久精品| 欧美一区二区激情视频| 国产酒店精品激情| 日本最新一区二区三区视频观看| 日本性爱视频在线观看| 欧美性videosxxxxx| 日韩少妇一区二区| 五月天久久网站| 国产成人a亚洲精品| 精品人妻一区二区三区日产乱码| 中文字幕免费在线观看视频一区| 俄罗斯av网站| 在线精品国产亚洲| 日韩最新在线视频| 69xxxx国产| 成人午夜在线免费| 欧美三级午夜理伦三级老人| 99久久精品一区二区成人| 精品无人区太爽高潮在线播放| 欧美日韩黄色网| 蜜乳av一区二区| 欧美大香线蕉线伊人久久| 免费在线播放电影| 欧美一区二区人人喊爽| 18精品爽国产三级网站| 久热国产精品| 久久久久se| 超碰在线97国产| 69久久99精品久久久久婷婷| 欧美激情 一区| 日韩一区欧美二区| 欧美精品一区二区三区在线看午夜| 美足av综合网| 欧美成人官网二区| 国产精品久久久久久久精| 毛片av一区二区| 午夜精品视频在线观看一区二区| 欧美一区 二区 三区| 日韩精品视频免费| 看片网址国产福利av中文字幕| 成人av手机在线观看| 亚洲理论电影在线观看| 涩爱av色老久久精品偷偷鲁| 欧美乱大交xxxxx| 精品国精品国产自在久不卡| 亚洲综合色自拍一区| 国产精品自拍视频在线| 精品一区电影| 国产专区欧美专区| 成在在线免费视频| 欧美日韩国产综合久久| fc2ppv在线播放| 国产精品12区| 国产乱子伦精品无码专区| 国产一区调教| 欧美一区深夜视频| 国产主播福利在线| 欧美午夜片在线看| 三级黄色录像视频| 国产成人免费xxxxxxxx| 无罩大乳的熟妇正在播放| 少妇精品导航| 国产精品99久久99久久久二8| 香蕉人妻av久久久久天天| 色婷婷亚洲综合| 日韩一级片在线免费观看| 国产伦精品一区二区三区视频青涩| 久久免费一级片| 青草久久视频| 国产精品久久久久久久久久东京| 在线观看h片| 日韩女优电影在线观看| 在线天堂中文字幕| 国产精品视频免费看| 97人人模人人爽人人澡| 国语精品一区| 欧美成人综合一区| 日日夜夜亚洲| 久久青草福利网站| 国产精品久久久久久久龚玥菲 | 国产一区二区三区高清在线观看| 亚洲系列第一页| 亚洲国产美国国产综合一区二区| 亚洲一区视频在线播放| 国产精品91一区二区| 精品视频一区二区在线| 综合天天久久| 免费h精品视频在线播放| 只有精品亚洲| 456亚洲影院| av在线二区| 91精品国产麻豆国产自产在线 | 欧美日韩视频一区二区三区| 久久av一区二区三区亚洲| 色999韩欧美国产综合俺来也| 成人97在线观看视频| 秋霞网一区二区| 欧美日韩国产首页在线观看| www.国产成人| 亚洲三级久久久| 中文字幕av网址| 成人午夜伦理影院| 日本黄色福利视频| 男女精品视频| 日韩最新中文字幕| 欧美欧美黄在线二区| 亚洲va久久久噜噜噜久久天堂| 欧美aaaaa性bbbbb小妇| 欧美日韩成人在线播放| 免费人成在线观看播放视频| 日韩大陆欧美高清视频区| 性生活视频软件| 欧美日韩视频在线观看一区二区三区| 国产精品自拍视频一区| 国产精品高潮呻吟| 精品无码在线视频| 不卡的看片网站| 中文字幕 欧美 日韩| 精品一区二区三区蜜桃| 一区二区三区免费播放| 午夜在线视频一区二区区别| 国产91沈先生在线播放| 天天精品视频| 亚洲欧美日韩国产yyy| 色综合综合网| 久久99精品久久久久久久久久 | 亚洲免费在线电影| 手机看片国产日韩| 国产日韩一级二级三级| 国产伦精品一区二区三区妓女 | 久久免费视频网站| www视频在线免费观看| 亚洲欧美日韩一区在线| 日本韩国精品一区二区| 亚洲成人av资源网| 乱精品一区字幕二区| 日韩免费高清视频| 国产福利第一视频| 精品嫩草影院久久| 成人午夜精品福利免费| 欧美不卡一区二区三区| 成 人 免费 黄 色| 91.com视频| 一区二区乱子伦在线播放| 在线观看日韩精品| 在线观看不卡的av| 欧美日本免费一区二区三区| 中文字幕一区二区三区四区视频| 欧美日韩人人澡狠狠躁视频| www亚洲视频| 91国偷自产一区二区开放时间| 欧美另类高清videos的特点| 欧美日韩一区二区三区高清 | 亚洲一区二区三区久久| 日韩精品一区二区三区中文| 91手机在线视频| 国产精品xxx在线观看| 精品日产一区2区三区黄免费| 日本福利一区| 日本在线观看一区二区| 91成人国产| 国产曰肥老太婆无遮挡| 亚洲在线一区| 国产亚洲天堂网| 久久超碰97中文字幕| 超碰91在线播放| 99久久婷婷国产综合精品| 阿v天堂2014| 国产精品久久久久久久久晋中 | 久久综合色天天久久综合图片| 国产三级短视频| 亚洲免费在线看| 日韩xxxxxxxxx| 91久久国产最好的精华液| 国产又粗又猛又黄又爽| 欧美成人高清电影在线| 免费在线观看污视频| xvideos国产精品| av日韩中文| 国产精品欧美一区二区三区奶水| 久久国产精品免费一区二区三区| 国产欧美日韩综合一区在线观看| 中文有码一区| 亚洲色图都市激情| 国产农村妇女毛片精品久久莱园子| 杨幂毛片午夜性生毛片| 国产a级毛片一区| 成人激情五月天| 亚洲大片一区二区三区| 好看的av在线| 欧美日韩高清影院| 五十路在线观看| 另类视频在线观看| 欧美动物xxx| julia一区二区中文久久94| 欧美日韩国产一区二区三区不卡| 男人天堂新网址| 久久精品免费观看| 国内精品久久99人妻无码| 亚洲人成伊人成综合网小说| 午夜影院免费在线观看| 精品国产制服丝袜高跟| 999国产在线视频| 欧日韩在线观看| 91麻豆精品激情在线观看最新| 午夜精品美女久久久久av福利| 在线观看不卡| 亚洲欧美自偷自拍另类| 97久久超碰国产精品| 久草视频免费在线播放| 欧美丰满一区二区免费视频| 国产尤物视频在线| 欧美日韩第一页| 91亚洲精品在看在线观看高清| 精品福利影视| 亚洲91视频| 一区二区成人网| 久久天天做天天爱综合色| 久久99久久98精品免观看软件 | 日韩精品一区中文字幕| 国产成人在线观看免费网站| 久久嫩草捆绑紧缚| 777欧美精品| 日本中文字幕在线2020| 91精品久久久久久久久不口人| 久久香蕉国产| 奇米777在线视频| 亚洲午夜成aⅴ人片| 色哟哟国产精品色哟哟| 4438全国亚洲精品在线观看视频| 亚洲免费成人av在线| 成年人免费大片| 中文子幕无线码一区tr| 97超碰人人草| 欧美夫妻性生活xx| 日韩伦理一区二区三区| 免费观看成人网| 中文字幕一区二区三区在线不卡| 91亚洲国产成人精品一区| 欧美另类老女人| 农村少妇一区二区三区四区五区| 国产黄色特级片| 成人欧美一区二区三区在线播放| www.五月婷婷| 欧美一区二区三区精品电影| 成人羞羞在线观看网站| 国产精品熟女一区二区不卡| 香蕉影视欧美成人| 国产视频二区在线观看| 成人免费午夜电影| 亚洲经典在线| 五月天精品在线| 日韩亚洲欧美综合| 伊人久久综合一区二区| 一区二区三区av| 白白色 亚洲乱淫| 中日韩在线观看视频| 欧美大片在线影院| 狠狠色丁香婷婷综合影院| 亚洲热在线视频| 色哟哟在线观看一区二区三区| 免费黄网站在线| 久久99精品久久久久久青青日本 | 国产精品99久久久久久www| 羞羞色午夜精品一区二区三区| 欧美激情一区二区三区p站| 91黄色免费版| 成人免费一区二区三区牛牛| 亚洲国内在线| 99久久精品一区二区| 97超碰资源站| 日本午夜在线亚洲.国产| 伊人青青综合网| 美女洗澡无遮挡|