黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

Mysql InnoDB的鎖定機制實例詳解

瀏覽:281日期:2023-10-07 08:42:16
1.InnoDB的鎖定機制

InnoDB存儲引擎支持行級鎖,支持事務處理,事務是有一組SQL語句組成的邏輯處理單元,他的ACID特性如下:

原子性(Atomicity): 事務具有原子不可分割的特性,要么一起執行,要么都不執行。 一致性(Consistency): 在事務開始和事務結束時,數據都保持一致狀態。 隔離性(Isolation): 在事務開始和結束過程中,事務保持著一定的隔離特性,保證事務不受外部并發數據操作的影響。 持久性(Durability): 在事務完成后,數據將會被持久化到數據庫中。

并發事務能提高數據庫資源的利用率,提高了數據庫的事務吞吐量,但并發事務也存在一些問題,主要包括:

更新丟失(Lost Update): 兩個事務更新同一條數據,但第二個事務中途失敗退出,導致兩個修改都失效了;因為此時數據庫沒有執行任何鎖操作,并發事務并沒有被隔離。(現代數據庫已經不存在這種問題) 臟讀(Dirty Reads): 一個事務讀了某行數據,但是另一個事務已經更新了這行數據,這是非常危險的,很可能導致所有的操作被回滾。 不可重復讀: 一個事務對一行數據重復讀取兩次(多次),可是得到了不同的結果,在兩次讀取過程中,有可能存在另一個事務對數據進行了修改。 幻讀:事務在操作過程中進行兩次查詢,第二次查詢結果包含了第一次沒有出現的數據。出現幻讀的主要原因是兩次查詢過程中另一個事務插入新的數據。

數據庫并發中的“更新丟失”通常應該是完全避免的,但防止更新丟失數據,并不能單靠數據庫事務控制來解決,需要應用程序對要更新的數據加必要的鎖來解決,而以上出現的數據庫問題都必要由數據庫提供一定的事務隔離機制來解決。為了避免數據庫事務并發帶來的問題,在標準SQL規范中定義了4個事務的隔離級別,不同的隔離級別對事務處理不一樣。

數據庫隔離級別的比較

隔離級別 讀數據一致性 臟讀 不可重復讀 幻讀 未提交讀 (Read uncommitted) 最低級別,只能保證不讀取物理上損壞的數據 是 是 是 已提交讀 (Read committed) 語句級 否 是 是 可重復讀 (Repeatable read) 事務級 否 否 是 可序列化 (Serializable) 最高級別,事務級 否 否 否

InnoDB存儲引擎實現了4中行鎖,分別時共享鎖(S)、排他鎖(X)、意向共享鎖(IS)、意向排他鎖(IX)。

共享鎖:大家都能讀,但是不能改,只有其中一個獨占共享鎖時候才能改; 排它鎖:我要改,你們都不能改,也不能讀(但可以MVCC快照讀) 理解意向鎖

意向鎖不會和行級的S和X鎖沖突,只會和表級的S和X鎖沖突

意向鎖是為了避免遍歷全部行鎖

考慮這個例子:

事務A鎖住了表中的一行,讓這一行只能讀,不能寫。

之后,事務B申請整個表的寫鎖。

如果事務B申請成功,那么理論上它就能修改表中的任意一行,這與A持有的行鎖是沖突的。

數據庫需要避免這種沖突,就是說要讓B的申請被阻塞,直到A釋放了行鎖。

數據庫要怎么判斷這個沖突呢?

step1:判斷表是否已被其他事務用表鎖鎖表

step2:判斷表中的每一行是否已被行鎖鎖住。

注意step2,這樣的判斷方法效率實在不高,因為需要遍歷整個表。

于是就有了意向鎖。

在意向鎖存在的情況下,事務A必須先申請表的意向共享鎖,成功后再申請一行的行鎖。

在意向鎖存在的情況下,上面的判斷可以改成

step1:不變

step2:發現表上有意向共享鎖,說明表中有些行被共享行鎖鎖住了,因此,事務B申請表的寫鎖會被阻塞。

1.1通過索引檢索數據,上共享鎖,行鎖(如果不通過索引,會使用表鎖)

1.1通過索引檢索數據,上共享鎖,行鎖SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec)mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------對主鍵索引上共享鎖,其他事務也能獲取到共享鎖mysql> select * from test where id=1 lock in share mode;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 1 |+----+------+-------+-------+1 row in set (0.01 sec)--------------------------------------------------------------------------------事務B也能繼續加共享鎖mysql> select * from test where id=1 lock in share mode;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 1 |+----+------+-------+-------+1 row in set (0.01 sec)但無法更新,因為事務A也加了共享鎖mysql> update test set level=11 where id=1;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transactionMORE:無法加排它鎖select *from test where id=1 for update;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction可以更新未加鎖的,比如mysql> update test set level=11 where id=2;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------事務A也無法更新,因為事務B加了共享鎖mysql> update test set level=11 where id=1;ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction--------------------------------------------------------------------------------任意一個釋放共享鎖,則獨占共享鎖的事務可以更新mysql> commit;Query OK, 0 rows affected (0.00 sec)--------------------------------------------------------------------------------事務B釋放鎖,事務A獨占,可以更新了mysql> update test set level=11 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

1.2通過索引檢索數據,上排他鎖,行鎖

1.2通過索引檢索數據,上排他鎖,行鎖SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec)mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------對主鍵索引上排他鎖,其他事務也能獲取到共享鎖mysql> select *from test whereid=1 for update;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 1 |+----+------+-------+-------+1 row in set (0.01 sec)--------------------------------------------------------------------------------事務B則不能繼續上排它鎖,會發生等待mysql> select *from test where id=1 for update;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transactionMORE:也不能更新,因為更新也是上排它鎖mysql> update test set level=2 where id=1;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction也不能上共享鎖mysql> select * from test where level=1 lock in share mode;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction--------------------------------------------------------------------------------事務A可以更新mysql> update test set level=11 where id=1;Query OK, 1 row affected (0.08 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------釋放排它鎖mysql> commit;Query OK, 0 rows affected (0.00 sec)--------------------------------------------------------------------------------事務A釋放鎖,事務B就可以加排它鎖了mysql> select * from test where id=1 for update;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 1 |+----+------+-------+-------+1 row in set (0.00 sec)

1.3通過索引更新數據,也是上排他鎖,行鎖

對于 update,insert,delete 語句會自動加排它鎖

1.3通過索引更新數據,也是上排他鎖,行鎖SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec)mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------更新id=1的行,就給該行上了排它鎖,其他事務無法更新該行mysql> update test set level=11 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------事務B則不能更新id=1的行,會發生等待mysql> update test set level=21 where id=1;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transactionMORE:也不能上排它鎖mysql> select *from test where id=1 for update;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction也不能上共享鎖mysql> select * from test where level=1 lock in share mode;ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction--------------------------------------------------------------------------------釋放排它鎖mysql> commit;Query OK, 0 rows affected (0.00 sec)--------------------------------------------------------------------------------事務A釋放鎖,事務B就可以加排它鎖了mysql> select * from test where id=1 for update;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 11|+----+------+-------+-------+1 row in set (0.00 sec)

2.1臟讀

//臟讀//2.1臟讀SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec)set session transaction isolationset session transaction isolation level read uncommitted;level read uncommitted; Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec) mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------mysql> update test set level=100 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------//臟讀mysql> select *from test where id=1;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 100 |+----+------+-------+-------+1 row in set (0.00 sec)--------------------------------------------------------------------------------rollback;Query OK, 0 rows affected (0.01 sec)mysql> select *from test where id=1;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 1 |+----+------+-------+-------+1 row in set (0.00 sec)

2.2不可重復讀

2.2不可重復讀//臟讀SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec)set session transaction isolationset session transaction isolation level read uncommitted;level read uncommitted; Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec) mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------mysql> update test set level=100 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------mysql> select *from test where id=1;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 100 |+----+------+-------+-------+1 row in set (0.00 sec)--------------------------------------------------------------------------------mysql> update test set level=1000 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------//不可重復讀//讀三次,第一次是level是1,第二次是100,第三次是1000mysql> select *from test where id=1;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 1000|+----+------+-------+-------+1 row in set (0.00 sec)

2.3幻讀

//2.3幻讀SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec)set session transaction isolationset session transaction isolation level read uncommitted;level read uncommitted; Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec) mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------mysql> update test set level=100 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0--------------------------------------------------------------------------------mysql> select *from test where id=1;+----+------+-------+-------+| id | name | money | level |+----+------+-------+-------+| 1 | tom | 100 | 100 |+----+------+-------+-------+1 row in set (0.00 sec)--------------------------------------------------------------------------------mysql> insert into test (name, money,level) VALUES (’tim’,250,4);Query OK, 1 row affected (0.01 sec)--------------------------------------------------------------------------------//幻讀//讀兩次,第二次多了tim的數據//如果是rr級別,需要使用當前讀select * from test lock in share mode;否則因為MVCC的緣故,是讀不到tim的mysql> select * from test;+----+-------+-------+-------+| id | name | money | level |+----+-------+-------+-------+| 1 | tom | 100 | 1 || 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 || 4 | tim | 250 | 4 |+----+-------+-------+-------+4 row in set (0.00 sec)3 間隙鎖(Net-Key鎖)

MVCC使RR級別下,事務當前讀,來避免了讀情況下的幻讀問題,但如果寫更新時候呢?在范圍更新的同時,往范圍內插入新數據,怎么辦?

于是就有了間隙鎖,在更新某個區間數據時,將會鎖定這個區間的所有記錄。例如update XXX where id between 1 and 100, 就會鎖住id從1到100之間的所有的記錄。值得注意的是,在這個區間中假設某條記錄并不存在,該條記錄也會被鎖住,這時,如果另一個事務往這個區間添加數據,就必須等待上一個事務釋放鎖資源。

使用間隙鎖有兩個目的,一是防止幻讀;二是滿足其恢復和賦值的需求。

3.1范圍間隙鎖,顯式左開右閉區間

//間隙鎖(Net-Key鎖) 范圍間隙鎖,左開右閉區間SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec) mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------mysql> update test set level=0where money between 0 and 200;Query OK, 2 rows affected (0.02 sec)Rows matched: 2 Changed: 2 Warnings: 0理論上應該鎖定[0,300)這個區間--------------------------------------------------------------------------------插入money=0等待mysql> insert into test (name, money,level) VALUES (’tim’,0,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=90等待mysql> insert into test (name, money,level) VALUES (’tim’,90,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=100等待mysql> insert into test (name, money,level) VALUES (’tim’,100,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=299等待mysql> insert into test (name, money,level) VALUES (’tim’,299,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=300 okmysql> insert into test (name, money,level) VALUES (’tim’,300,0);Query OK, 1 row affected (0.00 sec)

3.2單個間隙鎖 隱式區間

上小節是指定update某個區間,那如果說是只update一個值呢?還會有間隙鎖么?

//間隙鎖(Net-Key鎖) 單個間隙鎖,左開右閉區間SessionA SessionBmysql> set autocommit=0; mysql> set autocommit=0;Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.02 sec) mysql> select * from test; mysql> select * from test;--------------------------------------------------------------------------------+----+-------+-------+-------+ +----+-------+-------+-------+ | id | name | money | level | | id | name | money | level |+----+-------+-------+-------+ +----+-------+-------+-------+| 1 | tom | 100 | 1 | | 1 | tom | 100 | 1 || 2 | jack | 200 | 2 | | 2 | jack | 200 | 2 || 3 | lucas | 300 | 3 | | 3 | lucas | 300 | 3 |+----+-------+-------+-------+ +----+-------+-------+-------+3 rows in set (0.00 sec) 3 rows in set (0.00 sec)--------------------------------------------------------------------------------mysql> update test set level=0where money = 200;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0理論上應該鎖定[0,300)這個區間--------------------------------------------------------------------------------插入money=0 okmysql> insert into test (name, money,level) VALUES (’tim’,0,0);Query OK, 1 row affected (0.00 sec)插入money=90 okmysql> insert into test (name, money,level) VALUES (’tim’,90,0);Query OK, 1 row affected (0.00 sec)插入money=100等待mysql> insert into test (name, money,level) VALUES (’tim’,100,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=150等待mysql> insert into test (name, money,level) VALUES (’tim’,150,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=200等待mysql> insert into test (name, money,level) VALUES (’tim’,200,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=240等待mysql> insert into test (name, money,level) VALUES (’tim’,240,0);ERROR 1205 (HY000): Lock wait timeout exceeded;try restarting transaction插入money=300 okmysql> insert into test (name, money,level) VALUES (’tim’,300,0);Query OK, 1 row affected (0.00 sec)

當不指定區間時,隱式的區間為索引B+數前后兩個節點的值所確定的區間,也是左開右閉,對于上述例子,就是[0,300)這個區間。

總結

到此這篇關于Mysql InnoDB鎖定機制的文章就介紹到這了,更多相關Mysql InnoDB鎖定機制內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 免费黡色av| 激情视频久久 | 伊人久久大香线蕉综合网站 | 日日噜噜噜噜人人爽亚洲精品 | 欧美人与性囗牲恔配 | 爱福利视频广场 | 少妇高潮一区二区三区99女老板 | 婷婷综合五月 | 日韩精品久久久久久久九岛 | 蜜臀aⅴ国产精品久久久国产老师 | 日本美女一区二区三区 | 国产成人欧美一区二区三区的 | 首页干日本少妇 | 久久精品aⅴ无码中文字字幕 | 国产人妻久久精品二区三区老狼 | 丰满爆乳在线播放 | 日日夜夜撸啊撸 | 狠狠色狠狠色88综合日日91 | 香港经典a毛片免费观看播放 | 欧美另类天堂 | 久久久亚洲国产美女国产盗摄 | 天堂网2021最新天堂手机版 | 99视频久久 | 欧美在线免费 | 夜夜躁很很躁日日躁麻豆 | 偷看美女洗澡一二三四区 | 黄色精品一区 | 乱人伦人妻中文字幕无码 | 色久综合网| 日韩高清亚洲日韩精品一区 | 欧美专区亚洲专区 | 亚洲女人天堂网 | 国产视频第三页 | 一级毛片中国 | 在线综合亚洲欧美网站 | 欧美激情国产精品日韩 | 欧美日韩亚洲成人 | 久久3p| 嘿嘿射在线观看 | 日本一区二区观看 | 美女露胸无遮挡 | 动漫av在线看男男 | 国产精品久久久久久久午夜 | 久久久888| 日日夜夜天天 | 白嫩丰满少妇xxxxx性张津瑜 | 人妻精油按摩bd高清中文字幕 | 欧美片在线观看 | 免费ā片在线观看 | 国产精品美女久久久久av超清 | xxxx69视频| 日韩视频无码中字免费观 | 欧美伦理一区 | 你懂的国产在线 | 91ts人妖另类精品系列 | 国产一区免费 | 亚洲免费在线观看av | 亚洲免费毛片 | 欧美日韩国产精品激情在线播放 | 香蕉私人影院 | 国产不卡一二三 | 欧美午夜精品一区二区蜜桃 | 椎名空在线播放 | 国产精品一区二区av不卡 | 欧美一区二区久久久 | 国内精品久久久久久中文字幕 | 日韩成年人视频 | 特级西西444www大精品视频免费看 | 黑人巨大精品欧美一区二区免费 | 粉嫩一区 | 在线精品国产 | 狠狠综合久久av一区二区蜜桃 | 久久国产精品嫩草影院的使用方法 | 欧美啪视频 | 意大利性荡欲xxxxxx | 亚洲特级毛片 | 国产乱码精品1区2区3区 | 亚洲天堂2017无码中文 | 日批免费看 | 国内大量揄拍人妻精品視頻 | av色综合久久天堂av色综合在 | 99中文字幕 | 女兵的真人大毛片 | 色综合久久成人综合网 | 精品国产乱码久久久 | 四虎影视免费在线观看 | 精品久久久久久无码中文字幕 | 黄色顶级片 | 国产午夜精品一区二区三区 | 孕妇丨91丨九色 | 中文字幕亚洲情99在线 | 欧美视频精品在线观看 | 欧美一区二区三区成人久久片 | 午夜影院免费体验区 | 国产精品99久久免费观看 | 操操影视 | 成人无码精品一区二区三区 | 久久久久偷看国产亚洲87 | 久久99热这里只频精品6学生 | 91精品国产入口 | 国产成人亚洲精品自产在线 | 波多野结衣不卡视频 | 日本xxx裸体xxxx偷窥 | 日本少妇被黑人猛cao | 精产国品一区二区三区四区 | 成人无码视频在线观看网址 | 日韩欧美一区视频 | 一本色道久久综合亚洲精品按摩 | 国产网友自拍在线视频 | 婷婷五月深深久久精品 | 李丽珍a级裸体啪啪 | 四虎影视免费永久在线 | 日韩极品视频在线观看 | 伊人婷婷在线 | 欧美jizzhd精品欧美喷水 | 国产日韩欧美精品一区二区三区 | 国产高潮久久 | 九色影视 | 国产乱人伦偷精品视频免下载 | 兔费看少妇性l交大片免费 97久久精品无码一区二区 | 国产日韩一区二区在线观看 | 国产精品天天看天天狠 | 激情伊人| 美女丝袜合集 | 俄罗斯毛片基地 | www.7788久久久久久久久 | 中国成人毛片 | 亚洲国产成人av好男人在线观看 | 免费av网站大全 | www内射国产在线观看 | 人人澡人人妻人人爽人人蜜桃麻豆 | 51国产偷自视频区视频 | 日韩欧美在线观看一区二区三区 | 神马久久久久久久久久 | 果冻传媒mv国产董小宛主演是谁 | 国产免费无遮挡 | 丁香花五月 | 好吊妞这里都是精品 | 免费看毛片网站 | 欧美一级片免费在线观看 | 国产91黄色 | 久久国产精品一区二区三区 | 小伙和少妇干柴烈火 | 91看片免费看 | 欧美爱爱视频 | 91美女精品 | 日韩精品影片 | 久久精品嫩草影院 | 日本啊v在线 | 九九热视频在线 | 国产在线伊人 | 久久激情网站 | 国产精品久久国产愉拍 | 中国中文字幕伦av在线看片 | 国模av| 成人动漫在线观看 | 成人久久网站 | 国产超碰人人 | 麻花传媒在线mv免费观看视频 | 国模精品一区二区三区 | 久久久www免费人成精品 | 欧美第一页草草影院 | 欧美一级黄色片免费看 | 色乱码一区二区三在线看 | 欧美国产综合 | 久久2018| 欧美日韩精品亚洲精品 | 六月色婷婷 | 日韩黄色一级网站 | 日本xxxx色视频在线观看免费 | 狠狠色噜噜狠狠色综合久 | 国产福利观看 | www日韩在线观看 | 亚洲va成无码人在线观看天堂 | 五月天激情综合网 | 天堂少妇| 成人片黄网站色大片免费毛片 | 成人毛片观看 | 欧美全免费aaaaaa特黄在线 | 国产精品久久久天天影视 | 日韩一区二区三区视频在线观看 | 在线免费国产视频 | 国产9色在线 | 日韩 | 欧美www在线观看 | jizz一区| 奇米av在线 | 四虎影库永久在线 | 国产手机视频在线 | 国产午夜激情视频 | 国内精品伊人久久久久777 | 欧美日韩在线视频一区 | 国产女上位 | 91麻豆网站 | 色小姐综合 | 欧美性猛交乱大交xxxx | 久久国产一区二区三区 | 日本久久高清一区二区三区毛片 | 欧美日韩黄色一级片 | 欧美黄色大片网站 | 美玉足脚交一区二区三区图片 | 麻豆一级视频 | 精品无码黑人又粗又大又长 | 欧洲老妇做爰xxxⅹ性视频 | 国产91中文字幕 | 国产精品香蕉在线观看 | 嫩草av久久伊人妇女超级a | 亚洲精品一区二区三区在线 | 精品日韩欧美一区二区在线播放 | 欧美三级午夜理伦三级老人 | 97夜夜澡人人爽人人 | 国产精品15p | 国产三级全黄裸体 | 欧美激情免费视频 | 极品五月天| 久久9999久久免费精品国产 | 欧美激情精品久久久久久 | 成人18夜夜网深夜福利网 | www欧美色图 | 国产精品男女啪啪 | 国产真实乱人偷精品视频 | 日本特级黄色录像 | 99精品视频在线播放免费 | 999久久久国产精品消防器材 | 中文字幕精品一区二区三区精品 | av网子| 白嫩丰满少妇xxxxx性张津瑜 | 青青草精品 | 国产一级 黄 片 | 欧美精品久久久久久久免费软件 | аⅴ资源天堂资源库在线 | 色诱av| 亚洲激情另类 | 欧美色图亚洲色 | 国产做受高潮69 | 免费在线观看a视频 | 欧美精品久久久久久久久久白贞 | 国产成人精品视频一区二区不卡 | 蜜臀av综合网| 日韩伦理一区二区 | 黄色网久久| 在线观看不卡一区 | 国产白丝袜喷白浆毛片av | 国产又爽又粗又猛的视频 | 亚洲精品二三区 | 中文字幕在线亚洲精品 | 男女又爽又黄 | 国产成人无码av一区二区 | 激情综合一区二区三区 | 福利片一区二区三区 | 婷婷性多多影院 | 亚洲aⅴ欧洲av国产综合图片 | 国产欧洲色婷婷久久99精品91 | 国产精品久久99综合免费观看尤物 | 亚洲4p| 日本人六九视频 | 无码无遮挡又大又爽又黄的视频 | 性色av免费观看 | 红杏出墙记免费看 | 91人人爱 | 日色网站| 超级碰在线观看 | 国产精品www色诱视频 | 日本免费一区二区三区最新vr | 日本一二三区在线 | 女性高爱潮有声视频 | 久久免费看少妇高清激情 | 成人福利视频 | 亚洲国产va精品久久久不卡综合 | 国内精品久久久久影视老司机 | 免费在线看黄视频 | 久久免费播放视频 | 国产午夜三级一二三区 | 国产真实伦种子 | 国产人妖乱国产精品人妖 | 欧美做受69| 日韩成人无码中文字幕 | 强制憋尿play黄文尿奴 | chinese精品自拍hd | 国产精品久久久久久久久久妞妞 | 乳罩脱了喂男人吃奶视频 | 99热这里只有精品7 99热这里只有精品8 | 中文字幕第一页在线视频 | 午夜免费大片 | 日本免费福利视频 | 无码人妻熟妇av又粗又大 | 男女无遮挡做爰猛烈黄文 | 成在线人av免费无码高潮喷水 | 风间由美在线观看 | 亚洲成人免费网站 | 亚洲人成欧美中文字幕 | 丰满少妇高潮久久三区 | 欧美精品国产一区二区 | 国产欧美另类精品久久久 | 人妻 日韩 欧美 综合 制服 | 最新中文字幕第一页 | 欧美日韩国产综合在线 | 亚洲中文字幕无码爆乳 | 无码国产精品一区二区vr老人 | 免费国产在线观看 | 另类异族videosex太狠了 | 日日夜夜天天干 | 中国美女一级片 | 国产一区二区三区视频 | 国产手机av| 青青草国内自拍 | 性生大片免费观看一片黄动漫 | 国产另类综合 | 欧美午夜性生活 | 免费av日韩 | 国产精品theporn动漫 | 欧美极度另类 | 日一区二区 | 国产精品久久久久久亚洲徐婉婉 | aaaa大片少妇高潮免费看 | 日本www免费| 久久婷婷色综合一区二区 | 99久久久久久99国产精品免 | 水野朝阳av一区二区三区 | 色综合中文字幕 | 国产精品9x捆绑调教视频 | 成人h动漫精品一区二区无码 | 特黄特色特刺激免费播放 | 97国产精 | 免费毛片一级 | 亚洲国产超清无码专区 | 国产女主播白浆在线观看 | 国产精品69久久久久水密桃 | 人成免费 | 亚洲国产精品一区第二页 | 手机av免费在线 | 台湾佬久久 | 东北老头嫖妓猛对白精彩 | 800av在线播放| 中文字幕在线一区二区三区 | 熟女少妇内射日韩亚洲 | 毛茸茸熟妇丰满张开腿呻吟性视频 | 欧美一区二区视频三区 | 中文字幕av一区二区三区谷原希美 | 亚洲欧美在线一区 | 午夜精品福利一区二区蜜股av | 暗呦丨小u女国产精品 | 日日噜噜噜夜夜爽爽狠狠视频寻花 | 夜夜免费视频 | 成人亚洲精品国产www | 91精品国产乱码在线观看 | 白石茉莉奈一区二区av | av图片在线观看 | 377p日本欧洲亚洲大胆张筱雨 | 亚洲欧美国产欧美色欲 | 无码人妻啪啪一区二区 | 免费视频永久免费人 | 99久久人人爽亚洲精品美女 | 国产调教av | 男人扒开女人内裤强吻桶进去 | 国产自偷自偷免费一区 | 中文字幕永久 | 波多中文字幕 | 国产超碰人人 | 在线视频你懂得 | av 高清 尿 小便 嘘嘘 | 国产成人无码综合亚洲日韩 | 国产三级在线看 | 日本亚州视频在线八a | 爱性久久久久久久久 | 91户外露出一区二区 | 呦一呦二在线精品视频 | 欧美一区二区三区大片 | 国产成年免费视频 | 99九九99九九九视频精品 | 亚洲一久久久久久久久 | 欧洲美女黑人粗性暴交视频 | 国产精品三级视频 | 久久免费视频精品 | 亚洲国产成人91精品 | 日韩在线一区二区三区免费视频 | 亚洲一区二区三区偷拍女厕 | 在线中文字幕一区 | 最新av网址在线观看 | 成人欧美一区二区三区黑人 | 男人亚洲天堂 | 三级特黄视频 | 麻豆一区二区三区 | 无套内谢的新婚少妇国语播放 | 中文字幕+乱码+中文字幕无忧 | 精品国产老女人乱码 | 亚洲色婷婷久久精品av蜜桃 | 天天色欧美 | 浮妇高潮喷白浆视频 | 天堂资源地址在线 | 狠狠97| 韩国呻吟大尺度激情视频 | 日本理论片在线 | 亚色一区 | 野外做受又硬又粗又大视幕 | 国产情侣真实露脸在线 | 黄色网络在线观看 | 欧美一级淫片免费视频魅影视频 | 欧美啪啪小视频 | 欧美久久成人 | 欧美人与禽猛交狂配1 | 婷婷午夜激情 | 亚洲三级在线视频 | 玖玖爱在线观看 | 在线欧美视频 | 久久9999久久免费精品国产 | av大片免费看 | 24小时日本韩国在线观看 | 国产老熟女伦老熟妇露脸 | 亚洲国产精一区二区三区性色 | 亚洲精品久久久蜜桃 | 久久人人爽av亚洲精品天堂 | 国产精品无需播放器在线观看 | av观看在线免费 | 久久99中文字幕 | 国产精品v亚洲精品v日韩精品 | 永久免费在线视频 | 国产精品麻豆免费观看 | 丰满人妻妇伦又伦精品国产 | 懂色av一区二区三区免费观看 | 亚洲午夜一区二区三区 | 熟妇人妻av中文字幕老熟妇 | va婷婷在线免费观看 | 最新日韩在线视频 | 日日碰狠狠躁久久躁 | 搡女人真爽免费午夜网站 | 日本黄色美女视频 | 永久免费看mv网站入口亚洲 | 一久久久久| 国产精品一区二区人人爽79欧美 | 成人精品毛片va一区二区三区 | 亚洲国产黄色 | 国产精品女主播一区二区三区 | 国产av仑乱内谢 | 能看毛片的网站 | 欧美私人情侣网站 | 日韩激情在线视频 | 日本少妇影院 | 久久亚洲成人网 | 久久久久中文字幕 | 久久99精品国产麻豆91樱花 | 国内毛片毛片毛片毛片毛片 | 日韩欧美黄色一级片 | 亚洲淫区 | 丰满蕾丝乳罩少妇呻吟91 | 日本美女日批视频 | 日韩欧美亚洲综合久久 | 欧美麻豆视频 | 亚洲91在线视频 | 漂亮少妇激烈床戏 | 欧美精品一区二区视频在线观看 | 国产精品看高国产精品不卡 | 女同精品一区二区三区在线播放器 | www一区二区com| 超碰精品在线观看 | 日啪| 国产熟妇另类久久久久 | 日韩欧美在线一级 | 日韩精品一区二区三区在线视频 | 国产亚洲综合一区二区 | 美女视频黄免费 | 日本一级中文字幕久久久久久 | 亚欧色一区w666天堂 | 国产在线精品拍揄自揄免费 | 国产无遮挡a片又黄又爽 | 欧美日激情| 污视频网站在线 | 一区久久久 | 亚洲产国偷v产偷v自拍涩爱 | 欧洲熟妇色xxxx欧美老妇老头多毛 | 亚洲a∨无码男人的天堂 | 亚欧成人精品一区二区 | 欧美最猛性xxxxx大叫 | 日韩jizz| 国产在线精品一区二区三区 | 小明看平台日韩综合45页 | 最新版天堂资源在线 | 婷婷国产v亚洲v欧美久久 | 国产精品国产三级国产aⅴ 国产精品国产三级国产aⅴ9色 | 国产性生大片免费观看性 | 国产成年人网站 | 天天鲁一鲁摸一摸爽一爽视频 | 色狠狠色狠狠综合天天 | 日韩欧美四区 | 成年人免费网站 | 婷婷综合在线视频 | 狠狠婷婷综合久久久久久 | 五姑娘影院在线观看免费 | 欧洲另类一二三四区 | 在线v片免费观看视频 | 欧美性猛交ⅹxx乱大交 | 亚洲桃色综合影院 | 成人三级无码视频在线观看 | 五姑娘影院在线观看免费 | 久久午夜色播影院 | 国产午夜无码视频在线观看 | 99国产精品久久久久久久日本竹 | 成人国产欧美日韩在线视频 | 91九色蝌蚪在线 | 亚洲一区二区视频在线 | 久久精品国内 | 日日摸天天做天天添天天欢 | 黄色av网站免费看 | 亚州无限乱码一二三四麻豆 | 在线国产欧美 | 情侣呻吟对白精品av | 国产精品久久久国产盗摄蜜臀 | 秋霞影院av| 中文字幕无码视频专区 | 欧美成人精精品一区二区三区 | 日本免费一区二区三区高清视频 | 国产精品对白久久久久粗 | 99精品国产高清一区二区麻豆 | 久久久全国免费视频 | 免费色网址 | 色www亚洲国产阿娇yao | 日日摸夜夜添夜夜爽免费视频 | 日本少妇色 | 99久久久精品免费观看国产 | 欧美三级午夜理伦三级 | 日韩成人免费av | 日本少妇xxxxxx| 美女上床网站 | 国产精品综合在线 | 欧美在线观看不卡 | 中文人妻无码一区二区三区 | 国产精品对白刺激在线观看 | 国产精品jk白丝av网站 | 国产欧美日韩精品丝袜高跟鞋 | 一本色道久久综合亚洲精品图片 | 亚洲精品国产精品乱码视色 | 亚洲最大色综合成人av | 国产精品久久国产愉拍 | 最近日韩免费视频 | 韩国三级av | 国产色在线 | 丰满人妻在公车被猛烈进入电影 | 特大黑人巨交性xxxx | 手机在线观看av | 蜜臀久久精品 | 狠狠躁夜夜躁人人爽天天bl | 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲国产福利一区二区三区 | 国产日韩精品视频一区二区三区 | 日本亚洲精品一区二区三区 | 亚洲精品萌白酱一区 | 国产成人精品一区二三区 | 丁五月| 97精品国产手机 | 国产精品久久无码一区二区三区网 | 亚洲国产欧美日本视频 | 午夜dv内射一区区 | 免费一级毛毛片 | 中文字幕av一区二区三区谷原希美 | 国产高清在线观看 | 国内精品久久久久久 | 东北老女人av | 亚洲视频六区 | 国产亚洲成av人片在线观看下载 | 深夜福利视频在线播放 | 男人在线网站 | 91激情影院 | 成人做爰100部片免费看网站 | 国内精品久久久久影院男同志 | 欧美午夜精品一区二区蜜桃 | 免费国产黄网站在线观看视频 | 污视频在线观看免费网站 | a级黄色影院 | 另类 专区 欧美 制服 | 伊久久| 岛国av一区 | 久草中文在线 | 欧美亚洲综合网 | 999综合网 | 成人免费在线 | 国产一级18片视频 | 青青草自拍| 欧美黑人又大又粗xxxxx | 国产永久免费无遮挡 | 亚洲精品国精品久久99热一 | 午夜剧场免费在线观看 | 日本少妇激三级做爰 | 啪啪精品 | 涩涩屋污| 国产午夜精品久久久 | 男女做爰猛烈叫床无遮挡 | 成人做爰黄 | 欧美色综合天天久久综合精品 | 亚无码乱人伦一区二区 | 欧美激情综合色综合啪啪五月 | 丰满少妇乱子伦精品看片 | 99精品一区二区 | 久热这里只有 | 日韩一级片网站 | 狠狠色伊人亚洲综合网站l 狠狠色依依成人婷婷九月 狠狠色综合久久婷婷色天使 | 日本少妇xx洗澡xxxx偷窥 | 就是色| 性视频在线播放 | 无码午夜福利片 | caobi视频| 一本久道高清无码视频 | 黑人中文字幕一区二区三区 | 91片黄在线观看 | 又大又黄又爽视频一区二区 | 少妇扒开双腿自慰出白浆 | 国产乱码精品一区二区三区四川人 | 亚洲视屏一区 | 国产精品777| 99色99| 欧美人与性动交α欧美精品 | 中文在线免费观看 | 国产精品入口牛牛影视 | 久久久亚洲精华液精华液精华液 | 成人免费视频在线看 | 日批免费看 | 欧美在线一二三四区 |