成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 關(guān)于MySQL死鎖問題的深入分析

關(guān)于MySQL死鎖問題的深入分析

熱門標(biāo)簽:走過哪個(gè)省地圖標(biāo)注 銷售語音電話機(jī)器人 安徽ai電話電銷機(jī)器人有效果嗎 常州網(wǎng)絡(luò)外呼系統(tǒng)開發(fā) 外呼系統(tǒng)電銷受騙 在哪里申請(qǐng)400電話 400電話申請(qǐng)信用卡 巫師三血與酒地圖標(biāo)注 萊西市地圖標(biāo)注

前言

如果我們的業(yè)務(wù)處在一個(gè)非常初級(jí)的階段,并發(fā)程度比較低,那么我們可以幾年都遇不到一次死鎖問題的發(fā)生,反之,我們業(yè)務(wù)的并發(fā)程度非常高,那么時(shí)不時(shí)爆出的死鎖問題肯定讓我們非常撓頭。不過在死鎖問題發(fā)生時(shí),很多沒有經(jīng)驗(yàn)的同學(xué)的第一反應(yīng)就是成為一只鴕鳥:這玩意兒很高深,我也看不懂,聽天由命吧,又不是一直發(fā)生。其實(shí)如果大家認(rèn)真研讀了我們之前寫的3篇關(guān)于MySQL中語句加鎖分析的文章,加上本篇關(guān)于死鎖日志的分析,那么解決死鎖問題應(yīng)該也不是那么摸不著頭腦的事情了。

準(zhǔn)備工作

為了故事的順利發(fā)展,我們需要建一個(gè)表:

CREATE TABLE hero (
 id INT,
 name VARCHAR(100),
 country varchar(100),
 PRIMARY KEY (id),
 KEY idx_name (name)
) Engine=InnoDB CHARSET=utf8;

我們?yōu)閔ero表的id列創(chuàng)建了聚簇索引,為name列創(chuàng)建了一個(gè)二級(jí)索引。這個(gè)hero表主要是為了存儲(chǔ)三國時(shí)的一些英雄,我們向表中插入一些記錄:

INSERT INTO hero VALUES
 (1, 'l劉備', '蜀'),
 (3, 'z諸葛亮', '蜀'),
 (8, 'c曹操', '魏'),
 (15, 'x荀彧', '魏'),
 (20, 's孫權(quán)', '吳');

現(xiàn)在表中的數(shù)據(jù)就是這樣的:

mysql> SELECT * FROM hero;
+----+------------+---------+
| id | name | country |
+----+------------+---------+
| 1 | l劉備 | 蜀 |
| 3 | z諸葛亮 | 蜀 |
| 8 | c曹操 | 魏 |
| 15 | x荀彧 | 魏 |
| 20 | s孫權(quán) | 吳 |
+----+------------+---------+
5 rows in set (0.00 sec)

準(zhǔn)備工作就做完了。

創(chuàng)建死鎖情景

我們先創(chuàng)建一個(gè)發(fā)生死鎖的情景,在Session A和Session B中分別執(zhí)行兩個(gè)事務(wù),具體情況如下:

我們分析一下:

  • 從第③步中可以看出,Session A中的事務(wù)先對(duì)hero表聚簇索引的id值為1的記錄加了一個(gè)X型正經(jīng)記錄鎖。
  • 從第④步中可以看出,Session B中的事務(wù)對(duì)hero表聚簇索引的id值為3的記錄加了一個(gè)X型正經(jīng)記錄鎖。
  • 從第⑤步中可以看出,Session A中的事務(wù)接著想對(duì)hero表聚簇索引的id值為3的記錄也加了一個(gè)X型正經(jīng)記錄鎖,但是與第④步中Session B中的事務(wù)加的鎖沖突,所以Session A進(jìn)入阻塞狀態(tài),等待獲取鎖。
  • 從第⑥步中可以看出,Session B中的事務(wù)想對(duì)hero表聚簇索引的id值為1的記錄加了一個(gè)X型正經(jīng)記錄鎖,但是與第③步中Session A中的事務(wù)加的鎖沖突,而此時(shí)Session A和Session B中的事務(wù)循環(huán)等待對(duì)方持有的鎖,死鎖發(fā)生,被MySQL服務(wù)器的死鎖檢測(cè)機(jī)制檢測(cè)到了,所以選擇了一個(gè)事務(wù)進(jìn)行回滾,并向客戶端發(fā)送一條消息:

ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

以上是我們從語句加了什么鎖的角度出發(fā)來進(jìn)行死鎖情況分析的,但是實(shí)際應(yīng)用中我們可能壓根兒不知道到底是哪幾條語句產(chǎn)生了死鎖,我們需要根據(jù)MySQL在死鎖發(fā)生時(shí)產(chǎn)生的死鎖日志來逆向定位一下到底是什么語句產(chǎn)生了死鎖,從而再優(yōu)化我們的業(yè)務(wù)。

查看死鎖日志

設(shè)計(jì)InnoDB的大叔給我們提供了SHOW ENGINE INNODB STATUS命令來查看關(guān)于InnoDB存儲(chǔ)引擎的一些狀態(tài)信息,其中就包括了系統(tǒng)最近一次發(fā)生死鎖時(shí)的加鎖情況。在上邊例子中的死鎖發(fā)生時(shí),我們運(yùn)行一下這個(gè)命令:

mysql> SHOW ENGINE INNODB STATUS\G
...省略了好多其他信息
------------------------
LATEST DETECTED DEADLOCK
------------------------
2019-06-20 13:39:19 0x70000697e000
*** (1) TRANSACTION:
TRANSACTION 30477, ACTIVE 10 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1160, 2 row lock(s)
MySQL thread id 2, OS thread handle 123145412648960, query id 46 localhost 127.0.0.1 root statistics
select * from hero where id = 3 for update
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 171 page no 3 n bits 72 index PRIMARY of table `dahaizi`.`hero` trx id 30477 lock_mode X locks rec but not gap waiting
Record lock, heap no 3 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len 4; hex 80000003; asc  ;;
 1: len 6; hex 000000007517; asc  u ;;
 2: len 7; hex 80000001d0011d; asc  ;;
 3: len 10; hex 7ae8afb8e8919be4baae; asc z   ;;
 4: len 3; hex e89c80; asc ;;

*** (2) TRANSACTION:
TRANSACTION 30478, ACTIVE 8 sec starting index read
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1160, 2 row lock(s)
MySQL thread id 3, OS thread handle 123145412927488, query id 47 localhost 127.0.0.1 root statistics
select * from hero where id = 1 for update
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 171 page no 3 n bits 72 index PRIMARY of table `dahaizi`.`hero` trx id 30478 lock_mode X locks rec but not gap
Record lock, heap no 3 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len 4; hex 80000003; asc  ;;
 1: len 6; hex 000000007517; asc  u ;;
 2: len 7; hex 80000001d0011d; asc  ;;
 3: len 10; hex 7ae8afb8e8919be4baae; asc z   ;;
 4: len 3; hex e89c80; asc ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 171 page no 3 n bits 72 index PRIMARY of table `dahaizi`.`hero` trx id 30478 lock_mode X locks rec but not gap waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len 4; hex 80000001; asc  ;;
 1: len 6; hex 000000007517; asc  u ;;
 2: len 7; hex 80000001d00110; asc  ;;
 3: len 7; hex 6ce58898e5a487; asc l  ;;
 4: len 3; hex e89c80; asc ;;

*** WE ROLL BACK TRANSACTION (2)
------------
...省略了好多其他信息

我們只關(guān)心最近發(fā)生的死鎖信息,所以就把以LATEST DETECTED DEADLOCK這一部分給單獨(dú)提出來分析一下。下邊我們就逐行看一下這個(gè)輸出的死鎖日志都是什么意思:

首先看第一句:

2019-06-20 13:39:19 0x70000697e000

這句話的意思就是死鎖發(fā)生的時(shí)間是:2019-06-20 13:39:19,后邊的一串十六進(jìn)制0x70000697e000表示的操作系統(tǒng)為當(dāng)前session分配的線程的線程id。

然后是關(guān)于死鎖發(fā)生時(shí)第一個(gè)事務(wù)的有關(guān)信息:

*** (1) TRANSACTION:

# 為事務(wù)分配的id為30477,事務(wù)處于ACTIVE狀態(tài)已經(jīng)10秒了,事務(wù)現(xiàn)在正在做的操作就是:“starting index read”
TRANSACTION 30477, ACTIVE 10 sec starting index read

# 此事務(wù)使用了1個(gè)表,為1個(gè)表上了鎖(此處不是說為該表加了表鎖,只要不是進(jìn)行一致性讀的表,都需要加鎖,具體怎么加鎖請(qǐng)看加鎖語句分析或者小冊(cè)章節(jié))
mysql tables in use 1, locked 1

# 此事務(wù)處于LOCK WAIT狀態(tài),擁有3個(gè)鎖結(jié)構(gòu)(2個(gè)行鎖結(jié)構(gòu),1個(gè)表級(jí)別X型意向鎖結(jié)構(gòu),鎖結(jié)構(gòu)在小冊(cè)中重點(diǎn)介紹過),heap size是為了存儲(chǔ)鎖結(jié)構(gòu)而申請(qǐng)的內(nèi)存大?。ㄎ覀兛梢院雎裕?,其中有2個(gè)行鎖的結(jié)構(gòu)
LOCK WAIT 3 lock struct(s), heap size 1160, 2 row lock(s)

# 本事務(wù)所在線程的id是2(MySQL自己命名的線程id),該線程在操作系統(tǒng)級(jí)別的id就是那一長串?dāng)?shù)字,當(dāng)前查詢的id為46(MySQL內(nèi)部使用,可以忽略),還有用戶名主機(jī)信息
MySQL thread id 2, OS thread handle 123145412648960, query id 46 localhost 127.0.0.1 root statistics

# 本事務(wù)發(fā)生阻塞的語句
select * from hero where id = 3 for update

# 本事務(wù)當(dāng)前在等待獲取的鎖:
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:

# 等待獲取的表空間ID為151,頁號(hào)為3,也就是表hero的PRIMAY索引中的某條記錄的鎖(n_bits是為了存儲(chǔ)本頁面的鎖信息而分配的一串內(nèi)存空間,小冊(cè)中有詳細(xì)介紹),該鎖的類型是X型正經(jīng)記錄鎖(rec but not gap)
RECORD LOCKS space id 171 page no 3 n bits 72 index PRIMARY of table `dahaizi`.`hero` trx id 30477 lock_mode X locks rec but not gap waiting

# 該記錄在頁面中的heap_no為2,具體的記錄信息如下:
Record lock, heap no 3 PHYSICAL RECORD: n_fields 5; compact format; info bits 0

# 這是主鍵值
0: len 4; hex 80000003; asc  ;;

# 這是trx_id隱藏列
1: len 6; hex 000000007517; asc  u ;;

# 這是roll_pointer隱藏列
2: len 7; hex 80000001d0011d; asc  ;;

# 這是name列
3: len 10; hex 7ae8afb8e8919be4baae; asc z   ;;

# 這是country列
4: len 3; hex e89c80; asc ;;

從這個(gè)信息中可以看出,Session A中的事務(wù)為2條記錄生成了鎖結(jié)構(gòu),但是其中有一條記錄上的X型正經(jīng)記錄鎖(rec but not gap)并沒有獲取到,沒有獲取到鎖的這條記錄的位置是:表空間ID為151,頁號(hào)為3,heap_no為2。當(dāng)然,設(shè)計(jì)InnoDB的大叔還貼心的給出了這條記錄的詳細(xì)情況,它的主鍵值為80000003,這其實(shí)是InnoDB內(nèi)部存儲(chǔ)使用的格式,其實(shí)就代表數(shù)字3,也就是該事務(wù)在等待獲取hero表聚簇索引主鍵值為3的那條記錄的X型正經(jīng)記錄鎖。

然后是關(guān)于死鎖發(fā)生時(shí)第二個(gè)事務(wù)的有關(guān)信息:

其中的大部分信息我們都已經(jīng)介紹過了,我們就挑重要的說:

*** (2) TRANSACTION:
TRANSACTION 30478, ACTIVE 8 sec starting index read
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1160, 2 row lock(s)
MySQL thread id 3, OS thread handle 123145412927488, query id 47 localhost 127.0.0.1 root statistics
select * from hero where id = 1 for update

# 表示該事務(wù)獲取到的鎖信息
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 171 page no 3 n bits 72 index PRIMARY of table `dahaizi`.`hero` trx id 30478 lock_mode X locks rec but not gap
Record lock, heap no 3 PHYSICAL RECORD: n_fields 5; compact format; info bits 0

# 主鍵值為3
0: len 4; hex 80000003; asc  ;;
1: len 6; hex 000000007517; asc  u ;;
2: len 7; hex 80000001d0011d; asc  ;;
3: len 10; hex 7ae8afb8e8919be4baae; asc z   ;;
4: len 3; hex e89c80; asc ;;

# 表示該事務(wù)等待獲取的鎖信息
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 171 page no 3 n bits 72 index PRIMARY of table `dahaizi`.`hero` trx id 30478 lock_mode X locks rec but not gap waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 5; compact format; info bits 0

# 主鍵值為1
0: len 4; hex 80000001; asc  ;;
1: len 6; hex 000000007517; asc  u ;;
2: len 7; hex 80000001d00110; asc  ;;
3: len 7; hex 6ce58898e5a487; asc l  ;;
4: len 3; hex e89c80; asc ;;

從上邊的輸出可以看出來,Session B中的事務(wù)獲取了hero表聚簇索引主鍵值為3的記錄的X型正經(jīng)記錄鎖,等待獲取hero表聚簇索引主鍵值為1的記錄的X型正經(jīng)記錄鎖(隱含的意思就是這個(gè)hero表聚簇索引主鍵值為1的記錄的X型正經(jīng)記錄鎖已經(jīng)被SESSION A中的事務(wù)獲取到了)。

看最后一部分:

*** WE ROLL BACK TRANSACTION (2)

最終InnoDB存儲(chǔ)引擎決定回滾第2個(gè)事務(wù),也就是Session B中的那個(gè)事務(wù)。

死鎖分析的思路

1、查看死鎖日志時(shí),首先看一下發(fā)生死鎖的事務(wù)等待獲取鎖的語句都是啥。

本例中,發(fā)現(xiàn)SESSION A發(fā)生阻塞的語句是:

select * from hero where id = 3 for update

SESSION B發(fā)生阻塞的語句是:

select * from hero where id = 1 for update

然后切記:到自己的業(yè)務(wù)代碼中找出這兩條語句所在事務(wù)的其他語句。

2、找到發(fā)生死鎖的事務(wù)中所有的語句之后,對(duì)照著事務(wù)獲取到的鎖和正在等待的鎖的信息來分析死鎖發(fā)生過程。

從死鎖日志中可以看出來,SESSION A獲取了hero表聚簇索引id值為1的記錄的X型正經(jīng)記錄鎖(這其實(shí)是從SESSION B正在等待的鎖中獲取的),查看SESSION A中的語句,發(fā)現(xiàn)是下邊這個(gè)語句造成的(對(duì)照著語句加鎖分析那三篇文章):

select * from hero where id = 1 for update;

還有SESSION B獲取了hero表聚簇索引id值為3的記錄的X型正經(jīng)記錄鎖,查看SESSION B中的語句,發(fā)現(xiàn)是下邊這個(gè)語句造成的(對(duì)照著語句加鎖分析那三篇文章):

select * from hero where id = 3 for update;

然后看SESSION A正在等待hero表聚簇索引id值為3的記錄的X型正經(jīng)記錄鎖,這個(gè)是由于下邊這個(gè)語句造成的:

select * from hero where id = 3 for update;

然后看SESSION B正在等待hero表聚簇索引id值為1的記錄的X型正經(jīng)記錄鎖,這個(gè)是由于下邊這個(gè)語句造成的:

select * from hero where id = 1 for update;

然后整個(gè)死鎖形成過程就根據(jù)死鎖日志給還原出來了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • Mysql查看死鎖與解除死鎖的深入講解
  • MySQL死鎖檢查處理的正常方法
  • MySQL死鎖的產(chǎn)生原因以及解決方案
  • MySQL死鎖套路之唯一索引下批量插入順序不一致
  • 一個(gè)mysql死鎖場(chǎng)景實(shí)例分析
  • 一次神奇的MySQL死鎖排查記錄
  • MySQL數(shù)據(jù)庫之Purge死鎖問題解析
  • 詳解通過SQL進(jìn)行分布式死鎖的檢測(cè)與消除

標(biāo)簽:煙臺(tái) 鞍山 河北 赤峰 果洛 陽江 來賓 黃石

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《關(guān)于MySQL死鎖問題的深入分析》,本文關(guān)鍵詞  關(guān)于,MySQL,死鎖,問,題的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《關(guān)于MySQL死鎖問題的深入分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于關(guān)于MySQL死鎖問題的深入分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    free性欧洲69| 久久久久久综合网天天| 亚洲一卡久久| 亚洲制服欧美另类| 欧美久久久网站| 一区二区三区91| 国产精品二区三区| 亚洲乱码精品一二三四区日韩在线| 久久99精品久久久久久水蜜桃| 欧美一级欧美三级在线| www久久99| 日韩08精品| 国产在线国偷精品免费看| 无码免费一区二区三区免费播放| 国产精品网站在线播放| 极品日韩久久| 欧美日韩国产综合草草| 国产一区二区三区在线播放免费观看| 成人激情免费电影网址| 欧美在线播放一区| 蜜桃视频m3u8在线观看| 性伦欧美刺激片在线观看| 日韩三级一区二区三区| 成人国产精品免费视频| 国产精品99精品无码视| 欧美在线观看视频一区二区| 先锋资源中文在线| 日本成人免费| 中文字幕一区视频| 欧美亚洲高清一区二区三区不卡| 欧美寡妇偷汉性猛交| 日韩专区在线视频| 国产欧美一二三区| 欧美日韩高清一区二区| 中文字幕第15页| 国产高清av在线| 伊人久久综合网另类网站| 一区二区三区导航| 成人网页在线免费观看| 三级成人黄色影院| 少妇特黄一区二区三区| 777午夜精品电影免费看| 高h视频在线| 免费无遮挡无码永久在线观看视频| 六月丁香婷婷色狠狠久久| 欧美精彩一区二区三区| 色啪免费观看视频| 亚洲三级在线观看视频| 精品视频久久久久| 天天综合五月天| 国产91免费视频| 国产精品678| 精品成av人一区二区三区| 日韩免费观看高清完整版在线观看| 久久久www免费人成精品| 国产一区福利视频| 噜噜噜在线观看播放视频| 午夜免费电影一区在线观看| 精品国产一区二区三区av性色| 亚欧激情乱码久久久久久久久| 丰满岳妇乱一区二区三区| 2020国产成人综合网| 欧美a在线看| 色多多视频在线播放| 黄色片免费网址| а√资源新版在线天堂| 亚洲国产精品高清久久久| 青青草视频在线免费观看| 色播久久人人爽人人爽人人片视av| 亚洲人成精品久久久| 国产精品久久久久久久久夜色| 国产女人18水真多毛片18精品| 免费毛片在线播放| 国产精品女主播在线观看| 国产精品白浆视频免费观看| 久久婷婷国产麻豆91天堂| 亚洲综合成人在线| 亚洲综合男人的天堂| 欧美猛少妇色xxxxx| 亚洲大型综合色站| 精品人妻大屁股白浆无码| 亚洲三级电影网站| 2022国产精品| 国产女优裸体网站| 性欧美一区二区三区| 日本在线电影一区二区三区| 在线观看中文字幕网站| 亚洲欧美国产日韩综合| 国产免费久久久| av漫画网站在线观看| 日韩亚洲国产精品| 给我免费观看片在线电影的| 精品国产一区一区二区三亚瑟| 日日碰狠狠添天天爽超碰97| 欧美三级电影网址| 国语自产偷拍精品视频偷| 91在线电影| 亚洲女同二女同志奶水| 天天摸天天干| 欧美日本视频在线观看| 激情欧美日韩一区二区| 免费高潮视频95在线观看网站| 精品中文av资源站在线观看| 午夜精品在线播放| 一区在线中文字幕| 熟妇高潮精品一区二区三区| 人妻少妇精品无码专区二区| 天堂а√在线8种子蜜桃视频| 精品在线视频一区二区| blacked蜜桃精品一区| 97高清免费视频| 亚洲最大的成人网| 一区中文字幕| 爱福利视频一区| 女同性一区二区三区人了人一| 亚洲va在线va天堂| 性少妇bbw张开| 国产激情综合五月久久| 国产91精品青草社区| 中文字幕一区二区日韩精品绯色| 久久在线中文字幕| 成人免费观看网站| 亚洲视屏在线播放| 亚洲丝袜啪啪| 午夜精品久久久久久久蜜桃app| 男女性杂交内射妇女bbwxz| 国产精品伦理一区二区三区| 不卡欧美aaaaa| 日韩片在线观看| 日韩成人黄色片| 国产精品久久综合青草亚洲AV| 久久av红桃一区二区小说| 国产视频亚洲精品| 桃花视频大全不卡免费观看网站| 国内精品国产三级国产在线专| 国产成人涩涩涩视频在线观看| 国产伦精品一区二区三区| 四虎精品成人a在线观看| 亚洲精品电影| 九九热精品在线| 翔田千里一区| 三级精品视频| 污视频网站在线免费| 邻家有女韩剧在线观看国语| 91av视频在线播放| 久久99国产精品久久99果冻传媒| 国产在线视频综合| 久久久无码中文字幕久...| 极品av在线| 国产乱子伦一区二区三区国色天香| 999成人网| blackedav金发美女大战黑人| 91精品国产综合久久久久久丝袜| 国产精品chinese在线观看| 欧美激情综合色综合啪啪| 日韩av电影天堂| 国产精品一区二区三区久久久| 亚洲无吗一区二区三区| 男女一区二区三区免费| 18黄暴禁片在线观看| 欧美又黄又嫩大片a级| 久久中文亚洲字幕| 日韩激情精品| 美女搡bbb又爽又猛又黄www| 国产欧美日韩综合精品一区二区三区| 成人18在线| 97超碰在线免费| 91在线视频免费观看| 欧美aaaaaa| 国产精品av一区二区| 青青草原av在线播放| 奇米影视888狠狠狠| 综合久久亚洲| 永久免费看片在线观看| 亚洲自拍偷拍欧美| 一区二区不卡免费视频| 欧美大片大片在线播放| 先锋影视中文字幕| 秋霞影视一区二区三区| 欧美久久久久久久| 黄页网站大全在线观看| 国产成人免费av一区二区午夜| 久久91精品国产| 奇米影视7777精品一区二区| 国产无遮挡又黄又爽| 亚洲电影在线一区二区三区| 一区二区三区韩国免费中文网站| 亚洲一区二区在线播放相泽| 国内一区二区三区精品视频| av在线免费电影| 国产日本亚洲高清| 日本午夜精品| 中文国产亚洲喷潮| 国产一区二区不卡在线| 久久久久久久伊人| 亚洲精品一区二| 国产亚洲欧美日韩精品| 在线电影院国产精品| 国产99久久精品一区二区| gogogo高清免费观看在线视频| av网站免费线看精品| 亚洲精品久久久久久久久久| 精品国产xxx| 中文字幕超碰在线| 欧美老少做受xxxx高潮| 成人c视频免费高清在线观看| 国产高清一区在线观看| 日本三级视频网站| 理论片在线不卡免费观看| 成人福利免费在线观看| 欧美xxxx精品| 久久精品国产精品青草色艺| 又色又爽又高潮免费视频国产| 国产福利视频一区二区三区| 污视频在线观看免费网站| 日韩av懂色| 一区二区三区韩国免费中文网站| 91free张津瑜movies| 国产黄色大片免费看| 精品视频—区二区三区免费| www.欧美日韩国产在线| 丁香婷婷在线观看| 日本少妇激三级做爰在线| 欧美人成在线视频| 国模套图日韩精品一区二区| 午夜av一区二区| 成人影院天天5g天天爽无毒影院| 国产精品一级片在线观看| 国产97在线|亚洲| 精品少妇一区二区三区在线播放| 91社区在线| 日韩精品一区二区三区中文| 天堂一本之道| www久久久com| 91精品国产色综合| av大大超碰在线| 91九色综合久久| 亚洲成人网在线| 欧美金发大战黑人最粗videos| 99精品国产99久久久久久福利| 国产女同无遮挡互慰高潮91| 国产福利一区二区三区在线视频| 国产成人av电影| 婷婷成人影院| 欧美视频二区| 亚洲国产高清不卡| 精品国偷自产在线| www.日韩视频| 国产 日韩 亚洲 欧美| 污网站在线观看| 久久久亚洲网站| 欧美日韩精品一区二区三区在线观看| 日韩视频免费观看高清在线视频| 欧美裸体视频| 在线免费看黄视频| 国产精品综合| 欧美下载看逼逼| 欧美成人三级在线观看| 欧美一区二区三区粗大| 日韩成人av网站| 成人手机在线视频| 啊v视频在线| 日本国产在线观看| 黄色永久免费网站| 欧亚成年男女午夜| 久久精品亚洲热| 国产精品一品二区三区的使用体验| 亚洲成人短视频| 久九九久频精品短视频| 国产乱国产乱老熟300部视频| 日本三级韩国三级久久| 999国内精品视频在线| 国产精品久久久久久久免费大片| 最新热久久免费视频| 美女尤物国产一区| 91在线观看入口| 青青艹在线观看| 羞羞答答国产精品www一本| 亚洲久久久久| 图片区小说区国产精品视频| 四季久久免费一区二区三区四区| 同性视频网站免费男| 国产ts人妖调教重口男| 无码人妻丰满熟妇区毛片| 国产男人精品视频| 国产精选一区| 成人97精品毛片免费看| 久久经典视频| 精品精品国产国产自在线| 亚洲精品伊人| 久久91精品| 国产区一区二区| 极品少妇xxxx精品少妇偷拍| 99高清视频有精品视频| 国产真实久久| 99国产精品国产精品毛片| 91精品国产乱码在线观看| 国产精品久久久久久妇女6080| 亚洲视频日本| 在线看国产视频| 夜夜嗨av一区二区三区免费区| 国产一区在线看| av黄色免费网站| 黄黄的网站在线观看| 欧美日本一道本在线视频| 福利在线一区| 久久久国产精品| 深夜福利亚洲导航| 伊人222成人综合网| 国产精品99久久久久久久久久久久| www.天堂乱色| 欧美激情不卡| 国产成人精品日本亚洲专区61| 麻豆成人免费电影| 日韩一区二区久久久| 四虎免费在线观看视频| 91在线中文字幕| 欧美性色黄大片| 超碰在线人人干| 成人午夜精品| 日韩三级av在线| 国产大片免费看| 欧美在线视频观看免费网站| 久久撸在线视频| 66国产精品| 亚洲bt欧美bt精品777| 亚洲一区 二区| 禁网站在线观看免费视频|