国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

更好的理解 MySQL(4):鎖

共 5522字,需瀏覽 12分鐘

 ·

2020-07-07 11:16

摘要

在這篇文章中,我將從上一篇的一個(gè)小例子開始,跟你介紹一下InnoDB中的行鎖。

在這里,會(huì)涉及到一個(gè)概念:兩階段加鎖協(xié)議。

之后,我會(huì)介紹行鎖中的S鎖和X鎖,以及這兩種鎖的作用。

但是我們會(huì)發(fā)現(xiàn)僅僅有行鎖是不能解決幻讀問題的,于是我會(huì)用例子的方式跟你介紹各種間隙鎖。

最后,我會(huì)聊一聊粒度更大的表級(jí)鎖和庫鎖。

1 行鎖

在上一篇的文章中,我們用了這個(gè)具體的例子來解釋MVCC:?

900e80bef93a36bdcd4a88cfe73c8097.webp


假設(shè)我們調(diào)換一下T5和T6:

c1c198db5686a7ffbdd0005e089e76ba.webp


此時(shí),T5是沒有辦法執(zhí)行的。

原因是這樣的:InnoDB在更新一行的時(shí)候,需要先獲取這一行的行鎖。

但是,當(dāng)一條語句獲取了行鎖之后,不是這行語句執(zhí)行完畢就能釋放鎖,而是要等到這個(gè)事務(wù)執(zhí)行完畢,才會(huì)釋放鎖。

這里涉及到了兩階段加鎖協(xié)議:它規(guī)定事務(wù)的加鎖和解鎖分為兩個(gè)獨(dú)立的階段,加鎖階段只能加鎖不能解鎖,一旦開始解鎖,則進(jìn)入解鎖階段,不能再加鎖。

然后我們再來說說共享鎖(S鎖,讀鎖)排他鎖(X鎖,寫鎖)。

對(duì)于共享鎖來說,如果一個(gè)事務(wù)獲取了某一行的共享鎖,則這個(gè)事務(wù)只能讀這一行數(shù)據(jù),而不能修改,并且其他事務(wù)也可以獲取這一行數(shù)據(jù)的共享鎖,讀取這一行的數(shù)據(jù),同樣不能修改數(shù)據(jù)。

對(duì)于排它鎖,只能被某一個(gè)事務(wù)獲取。并且在獲取排它鎖之前,這一行數(shù)據(jù)上不能存在共享鎖。一旦某一個(gè)事務(wù)獲取了這一行的排它鎖,那么只有這一個(gè)事務(wù)可以對(duì)這一行數(shù)據(jù)進(jìn)行讀寫操作,其他事務(wù)對(duì)這一行數(shù)據(jù)的讀寫操作都會(huì)被阻塞。

此外,不僅僅只有更新操作,插入刪除操作也會(huì)獲取這一行數(shù)據(jù)的X鎖。

在這里我還要再介紹這兩個(gè)概念:“快照讀”和“當(dāng)前讀”。

你可能還會(huì)有印象,在上一篇內(nèi)容中,我提到了所有的更新操作都必須是“當(dāng)前讀”,現(xiàn)在可以解釋原理了,在更新一行數(shù)據(jù)的時(shí)候,InnoDB會(huì)對(duì)需要更新的那行數(shù)據(jù)加上X鎖,直接獲取最新的那一行數(shù)據(jù)。

與之相對(duì)的是“快照讀”,也就是MVCC中的數(shù)據(jù)讀取方式,利用“快照”來讀取數(shù)據(jù)的方式,可以極大的提高事務(wù)的并發(fā)度。

但是并不是說select語句就只能讀取快照,它也照樣可以給需要讀取的數(shù)據(jù)加鎖,來讀取最新的數(shù)據(jù)。也就是說,select語句也一樣可以“當(dāng)前讀”。

下面這兩個(gè)select語句,就是分別加了讀鎖(S鎖,共享鎖)和寫鎖(X鎖,排他鎖)。

mysql>?select?k?from?t?where?id=1?lock?in?share?mode;
mysql>?select?k?from?t?where?id=1?for?update;

注意,由于兩階段加鎖協(xié)議的存在,如果你采用了一致性讀,那么這個(gè)鎖必須要等事務(wù)提交后才能解除。這是犧牲了并發(fā)度的一種做法。所以,如果所有的select語句,都加上了S鎖,此時(shí)的“可重復(fù)讀”,就變成了“序列化”。

2 間隙鎖

2.1 幻讀問題

還記得我們上面提到過的幻讀嗎?

現(xiàn)在你應(yīng)該能夠理解幻讀產(chǎn)生的原因了:因?yàn)樵诓迦霐?shù)據(jù)的時(shí)候,InnoDB采用的是當(dāng)前讀,而讀取數(shù)據(jù)的時(shí)候,由于MVCC的存在,采用的是快照讀,這就造成了幻讀。

但是我們在上面又提到了,select語句也一樣可以采用“當(dāng)前讀”。那么,這樣能解決幻讀嗎?

答案是能解決其中一種情況的幻讀。

比如我們在上一篇文章中舉的關(guān)于幻讀的例子:

e02ca87ea6945af923bfaa475aaf14ff.webp

現(xiàn)在你能理解了,因?yàn)檫@里的select是快照讀,而事務(wù)B的插入操作對(duì)于事務(wù)A來說是不可見的。如果在T5時(shí)刻,事務(wù)A的sql語句是select * from t where v = 0 for update,即采用當(dāng)前讀的話,是可以看得到事務(wù)B所提交的數(shù)據(jù)的,這樣的話,就避免了幻讀的情況。

那如果在T2時(shí)刻,事務(wù)A的語句就是select * from t where v = 0 for update會(huì)怎么樣的?

如果在T2時(shí)刻就使用了“當(dāng)前讀”,那么T3時(shí)刻事務(wù)B是無法進(jìn)行插入操作的。你可以理解為,T2時(shí)刻,InnoDB把v=0的數(shù)據(jù),都給加上了一把鎖。

因?yàn)檫@行sql語句v=0的數(shù)據(jù)行都鎖住了,所以沒有辦法再插入一行v=0的數(shù)據(jù)。 ?

這聽起來似乎沒什么不對(duì)的,但是你仔細(xì)想一想,InnoDB中的行鎖,鎖住的是已經(jīng)存在的數(shù)據(jù)。而對(duì)于即將要插入的數(shù)據(jù),為什么也會(huì)被鎖住呢?這是不符合行鎖的定義的。

這個(gè)時(shí)候就可以說到間隙鎖了。

簡單來講,就是這條語句不僅會(huì)鎖住所查詢的那行數(shù)據(jù),還會(huì)把這行數(shù)據(jù)周圍的間隙鎖住,不讓其他事務(wù)插入。

也就是說,行鎖是鎖住已有的數(shù)據(jù),而間隙鎖,是鎖住即將要插入的位置,不讓其他數(shù)據(jù)插入。

在官方文檔有這么一句話:

Gap locking can be disabled explicitly. This occurs if you change the transaction isolation level to READ COMMITTED or enable the innodb_locks_unsafe_for_binlog system variable (which is now deprecated).

也就是說,間隔鎖在“可重復(fù)讀”事務(wù)隔離級(jí)別是默認(rèn)生效的。所以,MySQL在“可重復(fù)讀”的事務(wù)隔離級(jí)別下,是有辦法解決幻讀問題的。

下面我們來看看哪些情況InnoDB會(huì)給數(shù)據(jù)加上間隔鎖,并且這里的間隔鎖范圍有多大,注意,下面列舉的四種情況,指的是where條件中的字段的索引類型。

  • 主鍵索引

  • 唯一普通索引

  • 非唯一普通索引

  • 無索引 ?

先定義這么一個(gè)表:

CREATE?TABLE?`t`?(
??`id`?int(11)?NOT?NULL,
??`a`?int(11)?DEFAULT?NULL,
??`b`?int(11)?DEFAULT?NULL,
??`c`?int(11)?DEFAULT?NULL,
??PRIMARY?KEY?(`id`),
??UNIQUE?KEY?`a`?(`a`),
??KEY?`b`?(`b`)
)?ENGINE=InnoDB;


id是主鍵,a是一個(gè)唯一索引,b是一個(gè)普通索引,c不包含任何的索引字段。

然后插入以下的這些數(shù)據(jù):

insert?into?t?values(0,0,0,0),(5,5,5,5),(10,10,10,10);

然后我們開始分析各種情況。

2.2 主鍵索引

29bd91f2020f1669759142c6f78e3d20.webp


因?yàn)闆]有其他的數(shù)據(jù),所以主鍵索引在數(shù)據(jù)頁內(nèi)的編排如上圖,并且含有4個(gè)空隙。這里說的“空隙”,指的是數(shù)據(jù)可以插入的位置。

比如我要插入一個(gè)id為3的數(shù)據(jù),這條數(shù)據(jù)就會(huì)插入到位于(0,5)這個(gè)空隙內(nèi)。

下面我們開始嘗試:

040a70eedadbe0c9918c0cc334b17f43.webp


毫無疑問T3時(shí)刻的sql語句是會(huì)被阻塞的,原因是id = 5的這行數(shù)據(jù)已經(jīng)被加鎖了。那么,會(huì)不會(huì)存在有間隙鎖呢?

因?yàn)檫@是一個(gè)主鍵索引,InnoDB必須保證id = 5的數(shù)據(jù)是唯一的,所以對(duì)于id=5的周圍,比如(0,5)和(5,10),不需要再加間隙鎖了。

03b9bc5e9d0a0994b1c6e0434f025eb7.webp


那么換一個(gè)條件再試試,我們查找id大于6且id小于8的數(shù)據(jù),此時(shí)事務(wù)B中的語句同樣會(huì)被阻塞。

這是因?yàn)椋谥麈I索引沒有命中的時(shí)候,會(huì)對(duì)所在的空白范圍,全部加鎖。注意,我這里說的是未命中的所有空白范圍,哪怕我這里的查找條件是大于6且小于8,但是加鎖的范圍不是(6,8),而是(5,10)。

你可以簡單的理解為:從查找條件的最小值開始,往前找到第一個(gè)索引值;并且從查找條件的最大值開始,往后找到第一個(gè)索引值,這個(gè)范圍就是加鎖的范圍。

你可能還會(huì)有一個(gè)疑問,如果是select * from t where id = 8 for update會(huì)怎么樣呢?這個(gè)問題和上面一樣,只要未命中,就加范圍鎖,鎖住空隙(5,10)。

總結(jié)一下:對(duì)于主鍵索引來說,命中了,就只加行鎖;沒命中,則對(duì)查找范圍的最小值往前找第一個(gè)主鍵,查找范圍的最大值往后找第一個(gè)主鍵,并對(duì)這個(gè)范圍加上間隙鎖。

2.3 唯一索引

03ee0a87357036e01c5a805b57eda339.webp


對(duì)于唯一索引來說,和主鍵索引其實(shí)是差不多的。當(dāng)索引命中之后,因?yàn)槲ㄒ凰饕瑯颖WC了索引的唯一性,所以不需要給這行數(shù)據(jù)的周圍加上間隙鎖,只會(huì)給命中的數(shù)據(jù)加鎖。

但是這里和主鍵索引不同的地方是,在給唯一索引a = 5加鎖的同時(shí),還會(huì)回表,將a = 5對(duì)應(yīng)的主鍵id = 5這行記錄加鎖。所以,事務(wù)B的修改也同樣會(huì)被阻塞。

這也是為了防止造成數(shù)據(jù)不一致的情況,比如我把a = 5的這行數(shù)據(jù)刪了,然后事務(wù)B又通過這行數(shù)據(jù)的主鍵來對(duì)這行數(shù)據(jù)進(jìn)行操作。

對(duì)于帶有范圍的查找,和上面主鍵索引的間隙鎖規(guī)則是一樣的,這里不再贅述。值得注意的是,在唯一索引中,只要命中了,就會(huì)相應(yīng)的給這條索引對(duì)應(yīng)的主鍵id也加鎖。

還需要補(bǔ)充一點(diǎn),當(dāng)主鍵索引和唯一索引直接命中的時(shí)候,如下圖所示,InnoDB除了給a = 5這行數(shù)據(jù)加了行鎖,還可能給(5, 5)這個(gè)間隙加了間隙鎖,這樣的說法聽起來很奇怪。

cd0ed66418b3747593dfeb5e38322c39.webp

因?yàn)槭聞?wù)A是給a = 5這行數(shù)據(jù)加了行鎖,而行鎖只能針對(duì)已經(jīng)存在的數(shù)據(jù),不能加到即將插入的數(shù)據(jù)上;此外,當(dāng)事務(wù)A執(zhí)行這條語句的時(shí)候,事務(wù)B是會(huì)被阻塞的。直到事務(wù)A提交,事務(wù)B才會(huì)提示唯一索引重復(fù)。也就是說,在事務(wù)B執(zhí)行這行語句的時(shí)候,是無法訪問id = 5這行數(shù)據(jù)的,事務(wù)B不知道id = 5到底存不存在。

所以我才說:當(dāng)索引直接命中的時(shí)候,還會(huì)加上這么一個(gè)小小的間隙鎖。我沒有查到這方面的資料,如果你能解釋的話,請留言告訴我。

2.4 普通索引

對(duì)于普通索引來說,與唯一索引最大的區(qū)別,就是普通索引不是必須唯一的,也就是說,當(dāng)插入數(shù)據(jù)的時(shí)候,可能會(huì)有重復(fù)的情況。

而在上面的內(nèi)容中我們也發(fā)現(xiàn)了一個(gè)規(guī)律:InnoDB的間隙鎖,就是為了防止新插入的數(shù)據(jù)影響查找結(jié)果。

所以對(duì)于普通索引來說,還需要防止新插入的數(shù)據(jù)和原數(shù)據(jù)一樣的情況(因?yàn)槲ㄒ凰饕恍枰獡?dān)心這么一種情況)。

下面我們舉例說明,在此之前先插入一行數(shù)據(jù):

?insert?into?t?values(8,8,5,8);

那么此時(shí)我們的索引b,是這樣的:

3acdd6d2d177f4c45cceaeb188c0e2c3.webp


因?yàn)槭?strong style="font-size:inherit;color:inherit;">非唯一索引的原因,在兩個(gè)b = 5的間隙,也能插入數(shù)據(jù)。

b32e233325b7550a2f97d90ef12b26a8.webp


如圖所示,我們這次把查找條件換成了b = 5。此時(shí),我們插入的數(shù)據(jù)id = 1,理論上應(yīng)該要插入(0,5)這個(gè)間隙內(nèi),但是由于間隙鎖的存在,插入將被阻塞。

換一句話說,只要此時(shí)插入的數(shù)據(jù)b = 5,那么就一定無法插入。

而對(duì)于未命中的條件,規(guī)則和上文中說到的一樣,根據(jù)查找條件的最小值往前找到第一個(gè)一個(gè)索引,再根據(jù)這個(gè)條件的最大值往后找到第一個(gè)索引,構(gòu)成間隙鎖的范圍。

此外,與唯一索引一樣,所有命中的數(shù)據(jù)行,都會(huì)回表將主鍵id也鎖住。

2.5 無索引

d335d8fba6a18b8fbb176564e7929971.webp


可以看到,我們的查找條件是c = 5,直接命中了數(shù)據(jù)。此時(shí)我們插入的數(shù)據(jù)是c = 6,看起來和事務(wù)A無關(guān),但是出乎意料的是,事務(wù)B還是會(huì)被阻塞。

直接說結(jié)論:對(duì)于不含有索引的查找項(xiàng)來說,會(huì)鎖住所有的間隙和所有的數(shù)據(jù)。

關(guān)于幻讀的問題的一些case,到這里就研究完了(但是我不確定有沒有遺漏,如果有,還請你留言告訴我)。

在最后還需要說一個(gè)概念,行鎖與間隔鎖,合稱next-key lock。并且需要注意的是,只有在可重復(fù)讀的事務(wù)隔離級(jí)別中,才會(huì)有間隔鎖。并且可重復(fù)讀是遵循兩階段鎖協(xié)議,所有加鎖的資源,都是在事務(wù)提交或者回滾的時(shí)候才釋放的。所以,在防止幻讀產(chǎn)生的時(shí)候,同樣降低了并發(fā)度。

3 表級(jí)鎖

在上一節(jié)說完了行級(jí)鎖之后,我們再來聊聊表級(jí)鎖。

表級(jí)鎖有兩種,一種是顯式添加的,一種是隱式添加的。

3.1 讀寫表鎖

還記得我們在上文中提到的讀鎖和寫鎖的特點(diǎn)嗎,這點(diǎn)在表鎖中是一樣的。

給表加上了寫鎖,意味著只有這個(gè)會(huì)話擁有讀寫這個(gè)表的權(quán)限;給表加上了讀鎖,才能讀取這個(gè)表上的數(shù)據(jù),并且可以多個(gè)線程共享讀鎖,但是,只有當(dāng)某個(gè)表上沒有讀鎖時(shí),才能給這個(gè)表加上寫鎖。

下面是給表加鎖的語法:

lock?tables?table_name?read??
lock?tables?table_name?write

3.2 MDL

MDL指的是(Metadata Lock),指的是元數(shù)據(jù)鎖。

MDL也分為了讀鎖和寫鎖,功能和上面提到的一樣。

只不過MDL不需要像表鎖那樣顯式的使用,它會(huì)在訪問一個(gè)表的時(shí)候會(huì)被自動(dòng)加上。其中,在某個(gè)表對(duì)數(shù)據(jù)進(jìn)行操作(包括insert,delete,update,select)的時(shí)候,會(huì)隱式的加上MDL讀鎖,在修改表的結(jié)構(gòu)的時(shí)候,會(huì)加上寫鎖。

這樣做的目的是,防止在一個(gè)事務(wù)操作數(shù)據(jù)的時(shí)候,表結(jié)構(gòu)被另一個(gè)事務(wù)給修改了?;蛘咴谀骋粋€(gè)事務(wù)修改表結(jié)構(gòu)的時(shí)候,不允許其他的事務(wù)操作數(shù)據(jù)。

4 庫鎖

顧名思義,庫鎖就是對(duì)整個(gè)數(shù)據(jù)庫實(shí)例加鎖。

MySQL提供了一個(gè)加全局讀鎖的方法,命令是Flush tables with read lock (FTWRL)。

使用過這個(gè)命令之后,相當(dāng)于對(duì)全庫增加了一個(gè)讀鎖,此時(shí)其他線程的數(shù)據(jù)更新語句(數(shù)據(jù)的增刪改)、數(shù)據(jù)定義語句(包括建表、修改表結(jié)構(gòu)等)和更新類事務(wù)的提交語句都會(huì)被阻塞。

全局鎖的典型使用場景是,做全庫邏輯備份。當(dāng)然了,實(shí)現(xiàn)這個(gè)功能,我們也可以使用“可重復(fù)讀”的事務(wù)隔離級(jí)別,做一次快照讀,依然可以實(shí)現(xiàn)備份的功能。只不過,有些引擎并沒有實(shí)現(xiàn)這個(gè)事務(wù)隔離級(jí)別。

寫在最后

首先,謝謝你能看到這里。

在這篇文章中,尤其是間隙鎖部分的內(nèi)容,我沒有查到太多的資料,所以很多內(nèi)容都是我自己的理解。所以如果你發(fā)現(xiàn)了一些bad case,請你留言告訴我。又或者你發(fā)現(xiàn)了我哪里的理解是不對(duì)的,也請你留言告訴我,謝謝!

當(dāng)然了,如果有哪里是我講的不夠明白的,也歡迎留言交流~



推薦閱讀



喜歡本文的朋友,歡迎關(guān)注“Go語言中文網(wǎng)

Go語言中文網(wǎng)啟用信學(xué)習(xí)交流群,歡迎加微信274768166,投稿亦歡迎


瀏覽 61
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 69国产精品成人无码| 中国黄色一级A片| 2020人妻中文字幕| 免费人成视频在线播放| 强伦轩人妻一区二区三区四区| 视色av| 精品无码在线观看| 精品吃奶一区二区三区视频| 黄色电影大香蕉| 日韩无码www| 18禁在线播放| 欧美A片免费观看| 国产成人网站免费观看| 久草香蕉视频| 午夜毛片| 久草视频在线免费播放| 波多野结衣一二三区| 欧美色操| 亚洲免费观看| 久草综合网| 蜜芽AV在线| 欧美草逼| 日韩无码第四页| 俺去俺来也www色官网黑人| 操逼影视| 青青草综合| 国产A片电影| 青青草原成人| 男女操逼免费观看| 亚洲手机在线播放| 中文字幕在线国产| 亚洲第一视频| 视频一二三区| 在线观看免费无码| 亚洲高清无码在线观看| 91无码人妻精品一区二区三区四| a天堂8在线资源| 国产免费一区二区三区| 国产a毛一级,a毛一级| 国产黄色视频网站在线观看| 亚洲色图图片| 91无码一区二区| 91jiujiu| 女人操逼视频| 99久久久精品久久久久久| 人人草人人澡| 欧美日韩在线免费观看| 人妻九九九| 看a网站| 又a又黄高清无码视频| 日韩欧美在线免费| 国产精品久久久久久久久久九秃| 青草午夜| 色视频在线观看免费| 一级黄色片免费看| 香蕉视频啪啪啪| 熟练中出-波多野结衣| 日韩一欧美| 人人看人人澡| 日韩黄色一级视频| 国产欧美第一页| 中文字幕日韩高清| 久久黄色毛片| 91成人福利视频| 亚洲AAA| 九九九视频在线观看| 97国产精品视频| 国产理论视频在线观看| 九九九免费| 国产大奶一区二区| 免费看操逼逼| 一区二区三区AV| 婷婷中文| 靠逼免费视频| 调教人妻视频| 日本精品中文字幕| 六月婷婷在线观看| 亚洲va欧洲va国产va不卡| 成人做爰免费网站2023| 91伊人| 黄片免费网站| 免费A在线| 色玖玖| 俺来俺也去www色在线观看| 欧美日韩小视频| 久9久9久9久9久9久9| 99热免费在线观看| 国产精品无码成人AV电影| 男人在线天堂| 青青草做爱视频| 在线观看成年人视频| 在线观看毛片网站| x88AV吊钟奶熟女| 簧片网站在线观看| 韩国高清无码60.70.80| 熟女国产| 欧美A片视频| A天堂视频| 欧美色一级| 亚洲免费视频播放| 手机在线毛片| 青娱乐极品久久| 免费黄色一级电影| 欧美日韩四区| www超碰| 亚洲人成电影网| 欧美人妻视频在线| 亚洲视频中文字幕| 波多野结衣视频免费在线观看| 欧美操逼网| 微熟女导航| 亚洲成人精品一区| 免费v片| 开心五月激情婷婷| 中文字幕H| 亚洲性爱在线观看| 蜜桃毛片| 中文字幕永久在线视频v1.0| 欧美性爱一区二区三区| 日韩激情在线观看| 国产乱国产乱老熟300视频| 日本免费黄色电影| 囯产精品99久久久久久WWW| 亚洲无码一区二区在线| 波多野结衣无码视频在线观看| 少妇bbb| 久久艹精品视频| 日本不卡二区| 色综合一区二区| 欧美天天撸| 国产精品久久久一区二区三区| 天天干一干| 蜜臀久久99精品久久| 黄片网站在线观看| 天天看天天日| 迷情校园综合| 中文字幕日韩乱伦| 99re99| 人妻精品一区二区| 无码秘蜜桃吴梦梦| 午夜精品一区二区三区在线成人| 一本色道久久综合亚洲精东小说| 亚洲色一区二区| 91成人小视频| 日本天堂网站| 搞黄免费视频视频| 国产日皮视频| 九九韩剧网最新电视剧免费观看| 淫色网址| 老女人日逼| 蜜臀久久久久久999| 在线观看老湿视频福利| 成人AV一AV二| 肏逼黄色一级| 欧美性爱小说| 五月天婷婷综合| 国产午夜成人免费看片无遮挡| 国产一二三四| 自拍无码视频| 九九99久久| 亚洲高清无码中文字幕| 91无码AⅤ在线| 伊大香蕉在线| 91爱爱com| 丰满欧美熟妇免费视频| 亚洲福利在线观看视频| 久久香蕉网站| 免费观看黄片视频| 五月天丁香成人| 蜜臀久久99精品久久久巴士| 久久国产劲爆∧v内射| 欧洲亚洲免费视频| 日韩精品一区在线| 黄色A毛片| 91精品国产人妻| 黄色成人网站在线观看| 中文字幕中文字幕| 操大爷影院| 怡春院AV| 在线成人AV| 欧美日韩一区二区三区四区五区六区| 懂色av粉嫩AV蜜臀AV| 亚洲操逼网站| 91色婷婷综合久久中文字幕二区| 毛片18| 无码欧美成人| 免费成人在线看片黄| 日韩无码人妻一区| 国产噜噜噜噜噜久久久久久久久| 国产毛片欧美毛片高潮| 国产探花视频在线免费观看| 伊人大香蕉在线| 2025国产精品| 成人特级毛片| 国产日韩视频| 人人妻人人玩人人澡人人爽| 粉嫩av一区二区白浆| 特爽特黄特级特色视频| 中文字幕无码综合| 国产搡BBB爽爽爽视频| 人妻无码HEYZO少妇精品| 青草av在| av拍拍| 无码一区二区三| 精品国产91乱码一区二区三区| 东方成人av| 人人干人人干人人| 色婷婷在线视频观看| 91欧美精品| a天堂8在线资源| 中文字幕你懂的| 国产成人精品久久| 污网址| 无码一| 亚洲乱码日产精品BD在线观看| 激情深爱五月| 北条麻妃人妻中文字幕91影视| 丁香花五月激情| 日本无码网站| 又黄又爽的视频| 四川少妇搡bbw搡bbbb| 国产黄色片在线播放| 国产又爽又黄免费观看| 大香蕉久操网| a在线| 日本成人黄色| 青青草视频免费观看| 91精品久久久久久综合五月天| 黄色一级片在线看| 国产又粗又长又硬又大毛苴茸图片 | 久久99久久99| 先锋av资源网| 黄片网页| 福利导航在线| ThePorn人妻白浆| 婷婷伊人| 婷婷五月天电影| 91人人干| 五月激情综合网| 91九色蝌蚪| 欧美,日韩,日| 底流量AV电影在线| 成人123区| 日韩精品成人AV| 免费欧美黄片| 九一久色| 91人妻人人澡人人添人人爽| 亚洲欧美不卡| 免费看黄色一级片| 黄色视频一级| 人人澡人人澡人人澡| 婷婷五月天激情小说| 久热在线视频| 国产在线观看免费成人视频| 免费观看黄色视频| 中文字幕永久在线5| 91精品酒店视频| 91日韩视频在线| 黄色片成人| AAA成人| 操综合网| 三级片小说| 五月天丁香社区| 欧美肏屄视频| 天天想天天干| 久久久久成人视频| 五月网婷婷| 久久久久麻豆V国产精华液好用吗| 91人妻最真实刺激绿帽| 17c.白丝喷水自慰| 婷婷五月丁香六月| 伊人久久在线| 毛片学生妹| 一本一道波多野结衣潮喷视频| 一级特黄妇女高潮AA片免费播放| 国产成人精品123区免费视频 | 欧美老妇日韩| 亚洲五月天色| 男人的天堂手机在线| 日韩成人A片| 日韩成人视频在线观看| 国产欧美日韩综合| 中文字幕无码一区二区三区一本久| 日韩精品丰满无码一级A片∴ | 永久精品| 翔田AV无码秘三区| 乱伦五月天| 超碰在线观看2407| 色XXX| 国产操逼图| 亚洲视频中文字幕| 97伊人| 综合视频一区| 成人福利视频在线观看| 青青草激情| 五月婷婷中文字幕| 最新激情网站| 小明看台湾成人永久免费视频网站| 国产精品夜夜爽7777777| 五月激情视频| 婷婷五月18永久免费视频| 丰满熟妇高潮呻吟无码| 久草国产视频| 特级444WWW大胆高清| 影音先锋成人视频| japanese在线观看| 欧美激情爱爱| 69免费视频| 黄色A片网| 91麻豆精品无码人妻| 免费看v片| 欧美高清无码| 日韩成人无码精品| 西西人体大胆裸体A片| 中文无码在线播放| 精品国产精品国产精品国产网站| 人人cao| 亚洲高清无码中文字幕| 综合站欧美精品| 欧美性生交18XXXXX无码| 国产一区二区成人久久919色| 亚洲三级网站| 欧美+日产+中文| 人人亚洲| 久久久噜噜噜久久中文字幕色伊伊 | 国产AⅤ爽aV久久久久成人| 日本特级黄色毛片| 一级特黄毛片| 国产午夜精品电影| 女BBBBBB女BBB| 一级黄色性爱视频| 国产色情在线| 日韩AV性爱| 黄片视频在线| 黄网站免费看| A片黄色毛片| 人人操综合| 淫秽视频免费看| 日本欧美一区二区三区| 成人激情综合网| 性欧美成人播放77777| 日韩精品中文字幕在线观看| 欧美性猛交XXXX乱大交| 三级免费无限AV| 天天日天天| 亚洲午夜成人| 国精产品一区二区三区在线观看| 亚洲字幕在线观看| 国产aa| 男女啪啪啪网站| 性久久久久久久| 色老板免费精品无码免费视频| 夜夜操夜夜| 大香蕉综合在线| 少妇人妻在线| 一区二区视频在线观看| 日韩啪啪片| 久操成人| 无码在线视频免费观看| 婷婷五月开心五月| 人人爽人人爽人人爽| 青娱乐A片| www.激情| 91丨人妻丨国产| 色射网| 操你啦无码日韩| 天堂网在线播放| 成人精品在线| 中文字幕成人影片| 日韩高清不卡| 中文字幕AV在线免费观看| V天堂在线| 亚洲码AV波多野| 国产又爽又黄免费网站在线看| 九九九九精品视频| 久热精品免费| 青草视频精品| 无码一区二区在线观看| 三级黄色免费| 毛片91| 国产操穴视频| 91热久久| 激情AAA| 乱伦综合网| 国产操女人| 精品欧美乱码久久久久久| 欧美亚洲成人精品| 中文有码在线观看| 人人操人人爽人人爱| A片视频免费观看| 2019狠狠操| 欧美日韩第一页| 91大熟女91大腚女人| 免费黄色网页| 三级影片在线观看性| 久久久久三级片| 性爱视频99| 三级乱伦| 超碰97老师| 亚洲色图狠狠撸| 超碰97在线精品国产| 黄色一级网站| 欧美老妇操逼视频| 日韩一级一级一级| 麻豆内射| 2022天天干| 欧美自拍偷拍| 99操逼网| 久久1234| 日韩三级在线观看| 亚洲一区二区视频在线观看| 国产高清视频在线观看| 久久午夜无码鲁丝片主演是谁 | 亚洲免费在线观看视频| 免费看日逼视频| 成人性爱福利视频| 国产插逼视频| 69国产成人精品二区| 丁香五月在线视频| 色网站在线| av久| 无码av免费精品一区二区三区| 操逼网123首页| 日韩一页| 成人在线A片| 日韩三级视频在线观看| 久久一道本| 91香蕉视频免费在线观看| 婷婷五月天在线电影| www.99爱| 国产精品美女毛片j酒店| 国产欧美日韩综合| 黄色日韩| 一级免费片| 欧美视频综合| 神马午夜久久| 亚州无码免费| 久久久久久久三级片| 国模精品无码一区二区免费蜜桃| www.97av| 黄网在线观看视频| 97人人爽人人爽人人人| 51妺嘿嘿午夜福利视频| 巨乳无码噜噜噜久久久| Av大香蕉| 亚欧洲精品在线视频| 亚洲色婷婷久久精品AV蜜桃| 国产精品成人无码免费| 人人操人人骑| 国产亚洲视频免费观看| 亚洲综合激情五月久久| 久久久久久久网站| 四房五月婷婷| 超碰在线观看2407| 成人网站视频在线观看| 99久久99久久久精品棕色圆| 久婷婷| 亚洲无码三级片| 97人妻一区二区三区| 亚洲精品国产成人AV在线| 日韩精品无码av| 日韩精品区| 一级黄色片免费| 操B国产| 日韩无码人妻久久一区二区三区| 蜜臀久久久久久999| 艹逼网| 在线观看免费人成视频| 免费中文视频| 西西444WWW大胆无视频软件亮点| 红桃视频无码| 久久b| 精品黄色毛片| 四川少妇搡bbbbb搡多人| 午夜福利黄| 羽月希奶水饱胀在线播放| 欧美熟女内射| 91性爱视频| sesese999| 免费日本黄色| www.91熊猫成人网| 超碰91人人操| 一区二区三区操逼| 一本大道东京热av无码| 熟女91视频| 91亚洲精品国偷拍自产在线观看| 最好看2019中文在线播放电影| 中文字幕精品人妻在线| 国产欧美日韩在线观看| 天天操天天撸| 欧美伊人久久| 丁香婷婷五月基地| 极品在线视频| 免费AV成人| 91精品婷婷国产综合久久竹菊| 二区三区在线| 丁香五月六月婷婷| 国产AV无码精品| 久久成人影音先锋| 91中文| 国产亚洲午夜久久久成人电影| 欧美成人激情| 亚洲夜夜操| 欧美成人性爱图片| 久久H| 欧美日韩在线观看中文字幕| 久久99精品久久久久| caobi999| 成人在线黄色视频| 黄色成人在线免费观看| 久草视频首页| 69福利网| 激情五月激情综合网| 亚洲一区二区免费视频| 亚洲免费观看高清完整| 9191久久| 尤物一区二区| 日本高清版色视频| 精品无码在线观看| 欧美日韩精品| 国产激情网站| 五月天激情影院| 操B网址| 丰满岳乱妇一区二区三区| 久久午夜福利电影| 在线观看黄A片免费网站| 性爱视频久久| 天堂网色| 欧美成在线视频| 日韩中文无码电影| 亚洲日韩在线a成| 激情婷婷亚洲| 久久久女女女女999久久| 成人肏逼视频| 影音先锋av资源网站| 大鸡吧草逼| 人妻无码91| 黄片av| 婷婷av在线| 大香蕉看片| 免费在线观看黄色片| 亚洲vs无码秘蜜桃| 美女网站永久免费观看| 草碰在线视频| 国产一级婬片A片免费妖精视频| 人人操久久| 国产日韩在线观看视频| 色色播播| 久久草在线播放| 色色色色五月| 99热这里只有精品7| 无码免费在线观看视频| 成人一区二区在线观看| 国产精品秘国产精品88| 毛片A片免费看| 操人在线观看| 97天天操| 操逼网123首页| 国产精品123区| 亚洲一区在线视频| 亚洲日韩中文无码| 免费操B视频| 一区二区三区四区高清无码| 操综合网| 亚洲欧美成人网站| 国产成人自拍视频在线观看| 青春草在线免费观看| 国产99999| 日本精品三级| 五月天黄色电影网站| 人妻少妇精品视频一区二区三区| 手机无码在线播放| 一级乱伦网站| 日韩毛片在线免费观看| 久草大香蕉在线| 黑人aV| 亚洲中文字幕日韩| 日本黄色视频免费| 天天干在线观看| 久久婷婷色| 巨爆乳肉感一区二区三区| 新BBWBBWBBWBBW| 日韩永久免费| 午夜专区| 天天操夜夜操狠狠| 日韩欧美高清无码| 91精品视频在线免费观看| 亚洲不卡一区二区三区| 艹美女视频| 奥门黄片| 午夜福利AV电影| 国产精品一区二区在线播放| 免费日韩黄色电影| 婷婷午夜精品久久久久久| 日韩香蕉视频| aa免费视频| 欧美a在线观看| 激情综合五月天| 国产乱伦网站| 成人国产精品免费观看| 精品精品视频| 国产欧美日韩综合在线视频| 午夜特片| 欧美一级特黄AAAAAA片| 精品A区| 国产女人18水真多18精品一级做| 黄色激情在线| 高H视频在线观看| 国产av天堂| 91香蕉视频18| 欧美国产日韩欧美亚洲国产| 色色色色色色色色欧美| 五月丁香六月情| 国产熟妇码视频黑料| 亚洲激情成人| 欧美视频在线观看一区| 人妻天天爽夜夜爽| 无码人妻精品一区二区三区蜜桃91 | 99视频网| S28AV| 欧美偷拍| 精品一区二区三区毛片| 中文字幕一级A片免费看| 国产成人在线精品| 亚洲偷拍视频| 欧美日韩v| 黄色视频视频| 影音先锋人妻限定| 午夜操| 久久911| 成年网站| 久久偷拍网| 亚洲日韩视频在线| 天堂中文在线视频| 九九精品12| 欧美午夜精品久久久久免费视| A级免费视频| 欧洲综合视频| 四虎性爱视频| 人妻FrXXeeXXee护士| 天天久久| 悠悠色导航| 黄色草逼视频| 日本黄色小视频| 亚洲欧美大香蕉视频网| 影音先锋久久久久AV综合网成人| 久久精品一二三| 日韩成人无码电影| 青青草原av| 午夜性爱福利视频| 我和岳m愉情XXXⅩ视频| 高清国产mv在线观看| 天堂资源地址在线| 中文字幕码精品视频网站| 国产婬片lA片www777| 国产精品免费观看久久久久久久久| 无码一| 8050午夜| 友田真希一级婬片A片| 97色色婷婷| 在线中文av| 亚洲成人少妇老妇a视频在线| 国产成人69免费看| 亚洲成人a| 青青草视频黄| 黄色在线欣赏| 在线观看一区二区三区四区| AV一区二区在线观看| 国产欧美日韩在线观看| 夏目あきら被续侵犯7天| 黄色免费在线网站| 日本中文字幕电影| 1024国产在线| 成人图片小说| 人妻AV在线| 天天综合网久久| 五月天婷婷久久| 嫩BBB槡BBBB槡BBB| 久久蜜桃成人| 国产aⅴ激情无码久久久无码| 丁香五月激情五月| 最新中文字幕一区| 免费看无码| 中文字幕精品亚洲熟女| 亚洲无码一级电影| 国产成人主播| 国产高清一区二区| 婷婷黄色电影| 久久婷婷成人综合色怡春院| 色婷婷大香蕉| 黄色一区二区三区| 亲子伦一区二区三区观看方式| 久久精品大香蕉| 国产三级高清无码| 牛牛精品一区二区| 久久人人操| 插穴网站| 波多野结衣亚洲| 欧美18禁| 熟妇综合| 亚洲激情| 大香蕉免费网| 成人怡红院| 手机av网站| 暗呦网一区二区三区| 91高清国产| 91人妻无码精品蜜桃| 操逼基地| 91精品丝袜久久久久久| 日本黄色小视频| 成人性生交大片免费看小芳| 国产在线观看免费| 乱码中文字幕日韩欧美在线| 久操超碰| 91乱子伦国产乱子伦!| 日本wwwwww| 熟练中出-波多野结衣| 无码一区二区av| 3d动漫精品H区XXXXX区| 超碰成人在线观看| 色播视频在线观看| 网站你懂得| 无码人妻久久一区二区三区蜜桃| 人妻AV在线| 成人在线黄片| 欧美日本亚洲| 男人插女人网站| 久久9热| 国产成人网站免费观看| 婷婷五月丁香五月| 欧美人操逼视频| 日韩中文字幕无码| 五月婷婷丁香网| 狠狠操在线视频| 日本高清久久| 99久久综合| 久久精品久| 日韩无码网站| 大肉大捧一进一出免费阅读| 黄页网站免费在线观看| 少妇性受XXXX黑人XYX性爽| 一级a一级a爱片免费视频| 国产看色免费| 91亚洲在线| 中文资源在线a| 国产传媒三级| 特写毛茸茸BBwBBwBBw| 伊人干综合| 91在线不卡| 亚洲av中文| www.五月天.con| 成年人在线观看视频| 国产亚洲久一区二区三区| 444444免费高清在线观看电视剧的注意 | 人人射人人操| 久久久久久久免费无码| 精品三级片| 国产黄色视频在线观看免费| 亚洲美女网站在线观看| 夜夜操天天操| 日本在线一级| 蜜桃黄片AV在线观看| 国产久久精品| 丰满人妻一区二区三区精品高清 | 国产性爱一级片| 韩国精品在线| 国产操逼网站| 亚洲视频免费在线播放| 国产精品黄视频| 日日摸日日| 日韩在线一区二区三区四区| 伊人色女操穴综合网| 在线观看无码av| 国产在线观看一区| 男人的天堂视频| 精品国产女人| 在线免费观看国产| 青青草视频黄| 欧美久久一区二区三区四区视频| 人人妻人人色| 操女人大逼| 中文无码日本高潮喷水| 人人操人人摸人人| A片免费网址| 在线观看一区二区视频| 超碰97人人操| 欧美在线色| 午夜福利h| 成人久久久| 婷婷九月| 91久久久久久久18| 久草网大香蕉| 中文字幕乱视频| av东方在线| 一区二区小视频| 日韩综合在线| 国产色色色色| 无码人妻一区二区三区在线视频不卡 | 97人妻精品黄网站| 四川女人毛多水多A片| 99re在线观看观看这里只有精品| 日韩欧美视频一区国产欧美在线| 一本色道久久综合无码人妻 | 伊人天天日| 亚洲超级高清无码第一在线视频观看| 超碰人妻在线| 国产主播在线播放| 99免费在线视频| 一区二区成人免费视频| 毛片网站在线观看| 91成人导航| 国产精品黄视频| 五月天激情小说| 国产精品久久精品| 婷婷操逼网| 午夜免费福利视频| 欧美一级二级三级| 中文在线字幕免费观看电视剧大全| 日韩精品在线视频观看| 国产精品夜夜爽3000| 操逼在线视频| 热99re69精品8在线播放| 四川少妇搡bbw搡bbbb| 久久精品国产AV一区二区三区 | 怡春院AV| 艹逼视频| 精品无码二区| 操逼黄色视频| 一级A片免费视频| 日韩一级免费看| 污视频网站免费观看| 亚洲去干网| 国精产品一区二区三区| 久久精品www人人爽人人| 一级AA视频| 亚洲天堂女人| 成人做爰100片免费-百度| 一区二区三区毛片| 久久久久久高清毛片一级| 色香蕉影院| 欧美69成人| 四虎激情| 台湾省成人网站| 3D动漫啪啪精品一区二| xxx日韩| 波多野结衣亚洲视频| 嫩草嫩草69| 伊人成人网视频| 日本一级婬片A片免费看| 亚洲色图15P| 久久久久大香蕉| 51av在线| 午夜无码高清| 亚洲欧洲日韩综合| 琪琪色五月天| 欧美老妇大BBBBXXXX| 精品字幕| 人妻日韩精品中文字幕| 婷婷五月天激情小说| 高H视频在线观看| 激情国产视频| 综合天天| 成人精品秘免费波多野结衣| 中文激情网| 双腿张开被9个男人调教| 免费无码婬片A片AA片| 尤物Av| 日韩大香蕉| 黄色视频在线观看网站| 成人乱妇无码AV在线| 青春草在线观看视频| 日韩一级无码特黄AAA片| 精品无码久久久| 黄色精品网站| 色悠悠久久综合| 17c白丝喷水自慰| 九热精品| 九九九九九九精品视频| 亚洲天堂2016| 欧美性爱内射| 国产女人操逼视频| 德美日三级片在线观看| 色婷婷丁香五月| 四川BBBB擦BBBB| 亚洲激情网| 双飞少妇| 欧美日本亚洲| 色猫av| 日本精品视频在线观看| 日本精品二区| 国产精品网站在线观看| 国产三级电影在线观看| 蜜桃91精品秘成人取精库| 干干日日| 青青草原在线| 日本不卡中文字幕| 蜜桃91视频| 国产无码高清视频| 牛牛Av| 特级WWW444至码|