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

主頁(yè) > 知識(shí)庫(kù) > 線上MySQL的自增id用盡怎么辦

線上MySQL的自增id用盡怎么辦

熱門標(biāo)簽:話務(wù)外呼系統(tǒng)怎么樣 智能外呼系統(tǒng)復(fù)位 大眾點(diǎn)評(píng)星級(jí)酒店地圖標(biāo)注 臨清電話機(jī)器人 外東北地圖標(biāo)注 云南電商智能外呼系統(tǒng)價(jià)格 400電話可以辦理嗎 高清地圖標(biāo)注道路 拉卡拉外呼系統(tǒng)

MySQL的自增id都定義了初始值,然后不斷加步長(zhǎng)。雖然自然數(shù)沒有上限,但定義了表示這個(gè)數(shù)的字節(jié)長(zhǎng)度,計(jì)算機(jī)存儲(chǔ)就有上限。比如,無(wú)符號(hào)整型(unsigned int)是4個(gè)字節(jié),上限就是2^32 - 1。那自增id用完,會(huì)怎么樣?

表定義自增值id

表定義的自增值達(dá)到上限后的邏輯是:再申請(qǐng)下一個(gè)id時(shí),得到的值保持不變。

mysql> create table t(id int unsigned auto_increment primary key) auto_increment=4294967295;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t values(null);
Query OK, 1 row affected (0.00 sec)

mysql> show create table t;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                      |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4294967295 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

//成功插入一行 4294967295
mysql> insert into t values(null);
ERROR 1062 (23000): Duplicate entry '4294967295' for key 't.PRIMARY'

第一個(gè)insert成功后,該表的AUTO_INCREMENT還是4294967295,導(dǎo)致第二個(gè)insert又拿到相同自增id值,再試圖執(zhí)行插入語(yǔ)句,主鍵沖突。

2^32 - 1(4294967295)不是一個(gè)特別大的數(shù),一個(gè)頻繁插入刪除數(shù)據(jù)的表是可能用完的。建表時(shí)就需要考慮你的表是否有可能達(dá)到該上限,若有,就應(yīng)創(chuàng)建成8字節(jié)的bigint unsigned。

InnoDB系統(tǒng)自增row_id

若你創(chuàng)建的InnoDB表未指定主鍵,則InnoDB會(huì)自動(dòng)創(chuàng)建一個(gè)不可見的,6個(gè)字節(jié)的row_id。InnoDB維護(hù)了一個(gè)全局的dict_sys->row_id


所有無(wú)主鍵的InnoDB表,每插入一行數(shù)據(jù),都將當(dāng)前的dict_sys->row_id作為要插入數(shù)據(jù)的row_id,然后把dict_sys->row_id加1。

代碼實(shí)現(xiàn)時(shí)row_id是個(gè)長(zhǎng)度為8字節(jié)的無(wú)符號(hào)長(zhǎng)整型(bigint unsigned)。但I(xiàn)nnoDB在設(shè)計(jì)時(shí),給row_id留的只是6個(gè)字節(jié)的長(zhǎng)度,這樣寫到數(shù)據(jù)表中時(shí)只放了最后6個(gè)字節(jié),所以row_id能寫到數(shù)據(jù)表中的值,就有兩個(gè)特征:

  • row_id寫入表中的值范圍,是從0到2^48 - 1
  • 當(dāng)dict_sys.row_id=2^48時(shí),如果再有插入數(shù)據(jù)的行為要來(lái)申請(qǐng)row_id,拿到以后再取最后6個(gè)字節(jié)的話就是0

即寫入表的row_id從0~2^48 - 1。達(dá)到上限后,下個(gè)值就是0,然后繼續(xù)循環(huán)。
2^48 - 1已經(jīng)很大,但若一個(gè)MySQL實(shí)例活得久,還是可能達(dá)到上限。
InnoDB里,申請(qǐng)到row_id=N后,就將這行數(shù)據(jù)寫入表中;若表中已經(jīng)存在row_id=N的行,新寫入的行就會(huì)覆蓋原有的行。

驗(yàn)證該結(jié)論:通過gdb修改系統(tǒng)的自增row_id。用gdb是為了便于復(fù)現(xiàn)問題,只能在測(cè)試環(huán)境使用。

row_id用完的驗(yàn)證序列

row_id

用完的效果驗(yàn)證

可見,在我用gdb將dict_sys.row_id設(shè)置為2^48之后,再插入a=2會(huì)出現(xiàn)在表t的第一行,因?yàn)樵撝档膔ow_id=0。
之后再插入a=3,由于row_id=1,就覆蓋了之前a=1的行,因?yàn)閍=1這一行的row_id也是1。

所以應(yīng)該在InnoDB表中主動(dòng)創(chuàng)建自增主鍵:當(dāng)表自增id到達(dá)上限后,再插入數(shù)據(jù)時(shí)會(huì)報(bào)主鍵沖突錯(cuò)誤。
畢竟覆蓋數(shù)據(jù),就意味著數(shù)據(jù)丟失,影響數(shù)據(jù)可靠性;報(bào)主鍵沖突,插入失敗,影響可用性。一般可靠性優(yōu)于可用性。

Xid

redo log和binlog有個(gè)共同字段Xid,用來(lái)對(duì)應(yīng)事務(wù)。Xid在MySQL內(nèi)部是如何生成的呢?

MySQL內(nèi)部維護(hù)了一個(gè)全局變量global_query_id

每次執(zhí)行語(yǔ)句時(shí),將它賦值給query_id,然后給該變量+1:

若當(dāng)前語(yǔ)句是該事務(wù)執(zhí)行的第一條語(yǔ)句,則MySQL還會(huì)同時(shí)把query_id賦值給該事務(wù)的Xid:


global_query_id是一個(gè)純內(nèi)存變量,重啟之后就清零了。所以同一DB實(shí)例,不同事務(wù)的Xid可能相同。

但MySQL重啟之后會(huì)重新生成新binlog文件,這就保證同一個(gè)binlog文件里的Xid唯一。

雖然MySQL重啟不會(huì)導(dǎo)致同一個(gè)binlog里面出現(xiàn)兩個(gè)相同Xid,但若global_query_id達(dá)到上限,就會(huì)繼續(xù)從0開始計(jì)數(shù)。理論上還是會(huì)出現(xiàn)同一個(gè)binlog里面出現(xiàn)相同Xid。

因?yàn)?code>global_query_id8字節(jié),上限2^64 - 1。要出現(xiàn)這種情況,需滿足:

  • 執(zhí)行一個(gè)事務(wù),假設(shè)Xid是A
  • 接下來(lái)執(zhí)行2^64次查詢語(yǔ)句,讓global_query_id回到A
  • 2^64太大了,這種可能只存在于理論中。
  • 再啟動(dòng)一個(gè)事務(wù),這個(gè)事務(wù)的Xid也是A

Innodb trx_id

Xid由server層維護(hù)
InnoDB內(nèi)部使用Xid,為了關(guān)聯(lián)InnoDB事務(wù)和server

但I(xiàn)nnoDB自己的trx_id,是另外維護(hù)的事務(wù)id(transaction id)。

InnoDB內(nèi)部維護(hù)了一個(gè)max_trx_id全局變量,每次需要申請(qǐng)一個(gè)新的trx_id時(shí),就獲得max_trx_id的當(dāng)前值,然后并將max_trx_id加1。

InnoDB數(shù)據(jù)可見性的核心思想

每一行數(shù)據(jù)都記錄了更新它的trx_id,當(dāng)一個(gè)事務(wù)讀到一行數(shù)據(jù)時(shí),判斷該數(shù)據(jù)是否可見,就是通過事務(wù)的一致性視圖與這行數(shù)據(jù)的trx_id做對(duì)比。

對(duì)于正在執(zhí)行的事務(wù),你可以從information_schema.innodb_trx表中看到事務(wù)的trx_id。

看如下案例:事務(wù)的trx_id

S1 S2
t1 begin
select * from t limit 1
t2 use information_schema;
select trx_id, trx_mysql_thread_id from innodb_trx
t3 insert into t values(null)
t3 select trx_id, trx_mysql_thread_id from innodb_trx

S2 的執(zhí)行記錄:

mysql> use information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select trx_id, trx_mysql_thread_id from innodb_trx;
+-----------------+---------------------+
| trx_id          | trx_mysql_thread_id |
+-----------------+---------------------+
| 421972504382792 |                  70 |
+-----------------+---------------------+
1 row in set (0.00 sec)

mysql> select trx_id, trx_mysql_thread_id from innodb_trx;
+---------+---------------------+
| trx_id  | trx_mysql_thread_id |
+---------+---------------------+
| 1355623 |                  70 |
+---------+---------------------+
1 row in set (0.01 sec)

S2從innodb_trx表里查出的這兩個(gè)字段,第二個(gè)字段trx_mysql_thread_id就是線程id。顯示線程id,是為說明這兩次查詢看到的事務(wù)對(duì)應(yīng)的線程id都是5,即S1所在線程。

t2時(shí)顯示的trx_id是一個(gè)很大的數(shù);t4時(shí)刻顯示的trx_id是1289,看上去是一個(gè)比較正常的數(shù)字。這是為啥?
t1時(shí),S1還未涉及更新,是一個(gè)只讀事務(wù)。對(duì)于只讀事務(wù),InnoDB并不會(huì)分配trx_id:

  • t1時(shí),trx_id的值就是0。而這個(gè)很大的數(shù),只是顯示用
  • 直到S1在t3時(shí)執(zhí)行insert,InnoDB才真正分配trx_id。所以t4時(shí),S2查到該trx_id的值就是1289。

除了明顯的修改類語(yǔ)句,若在select 語(yǔ)句后面加上for update,也不是只讀事務(wù)。

  • update 和 delete語(yǔ)句除了事務(wù)本身,還涉及到標(biāo)記刪除舊數(shù)據(jù),即要把數(shù)據(jù)放到purge隊(duì)列里等待后續(xù)物理刪除,這個(gè)操作也會(huì)把max_trx_id+1, 因此在一個(gè)事務(wù)中至少加2
  • InnoDB的后臺(tái)操作,比如表的索引信息統(tǒng)計(jì)這類操作,也是會(huì)啟動(dòng)內(nèi)部事務(wù)的,因此你可能看到,trx_id值并不是按照加1遞增的。

t2時(shí)查到的很大數(shù)字是怎么來(lái)的?
每次查詢時(shí),由系統(tǒng)臨時(shí)計(jì)算:當(dāng)前事務(wù)的trx變量的指針地址轉(zhuǎn)成整數(shù),再加上248

這樣可以保證:

  • 因?yàn)橥恢蛔x事務(wù)在執(zhí)行期間,它的指針地址不會(huì)變,所以無(wú)論在 innodb_trx還是在innodb_locks表里,同一個(gè)只讀事務(wù)查出來(lái)的trx_id就會(huì)是一樣的
  • 若有并行只讀事務(wù),每個(gè)事務(wù)的trx變量的指針地址肯定不同。這樣,不同并發(fā)只讀事務(wù),查出來(lái)的trx_id就是不同的。

為什么要加248?

保證只讀事務(wù)顯示的trx_id值比較大,正常情況下就會(huì)區(qū)別于讀寫事務(wù)的id。但trx_id跟row_id的邏輯類似,定義為8個(gè)字節(jié)。
理論上還是可能出現(xiàn)一個(gè)讀寫事務(wù)與一個(gè)只讀事務(wù)顯示的trx_id相同。不過概率很低,也沒有什么實(shí)質(zhì)危害,不管。

為何只讀事務(wù)不分配trx_id?

  • 減小事務(wù)視圖里面活躍事務(wù)數(shù)組的大小。因?yàn)楫?dāng)前正在運(yùn)行的只讀事務(wù),不影響數(shù)據(jù)的可見性判斷。所以,在創(chuàng)建事務(wù)的一致性視圖時(shí),InnoDB就只需要拷貝讀寫事務(wù)的trx_id
  • 減少trx_id的申請(qǐng)次數(shù)。InnoDB執(zhí)行一個(gè)普通的select語(yǔ)句,也要對(duì)應(yīng)一個(gè)只讀事務(wù)。所以只讀事務(wù)優(yōu)化后,普通查詢語(yǔ)句無(wú)需申請(qǐng)trx_id,大大減少并發(fā)事務(wù)申請(qǐng)trx_id的鎖沖突

由于只讀事務(wù)不分配trx_id,顯然trx_id的增速變慢。
max_trx_id 會(huì)持久化存儲(chǔ),重啟也不會(huì)重置為0。理論上,只要一個(gè)MySQL實(shí)例跑得夠久,就可能出現(xiàn)max_trx_id達(dá)到2^48 - 1,然后從0開始循環(huán)。

達(dá)到該狀態(tài)后,MySQL就會(huì)持續(xù)出現(xiàn)一個(gè)臟讀bug:
首先把當(dāng)前的max_trx_id先修改成2^48 - 1。這里是可重復(fù)讀。

復(fù)現(xiàn)臟讀


因?yàn)橄到y(tǒng)的max_trx_id被設(shè)置成2^48 - 1,所以在session A啟動(dòng)的事務(wù)TA的低水位就是2^48 - 1。

t2時(shí):

  • session B執(zhí)行第一條update語(yǔ)句的事務(wù)id=2^48 - 1
  • 第二條事務(wù)id就是0了,這條update執(zhí)行后生成的數(shù)據(jù)版本上的trx_id=0

t3時(shí):

session A執(zhí)行select的可見性判斷:c=3這個(gè)數(shù)據(jù)版本的trx_id(0),小于事務(wù)TA的低水位(2^48 - 1),所以認(rèn)為該數(shù)據(jù)可見。

但這是臟讀。
由于低水位值會(huì)持續(xù)增加,而事務(wù)id從0開始計(jì)數(shù),導(dǎo)致系統(tǒng)在該時(shí)刻后,所有查詢都會(huì)出現(xiàn)臟讀。

并且MySQL重啟時(shí)max_trx_id也不會(huì)清0,即重啟MySQL,這個(gè)bug仍然存在。那這bug也是只存在于理論上嗎?
假設(shè)一個(gè)MySQL實(shí)例的TPS是50w,持續(xù)這樣,17.8年后就會(huì)出現(xiàn)該情況。但從MySQL真正開始流行到現(xiàn)在,恐怕都還沒有實(shí)例跑到過這個(gè)上限。不過,只要MySQL實(shí)例服務(wù)時(shí)間夠長(zhǎng),就必然會(huì)出現(xiàn)該bug。

這也可以加深對(duì)低水位和數(shù)據(jù)可見性的理解。

thread_id

系統(tǒng)保存了一個(gè)全局變量thread_id_counter


每新建一個(gè)連接,就將thread_id_counter賦值給這個(gè)新連接的線程變量new_id。

thread_id_counter定義為4個(gè)字節(jié),因此達(dá)到2^32 - 1,就會(huì)重置為0,繼續(xù)增加。


但不會(huì)在show processlist看到兩個(gè)相同的thread_id。因?yàn)镸ySQL使用了一個(gè)唯一數(shù)組


給新線程分配thread_id時(shí)的邏輯:

總結(jié)

每種自增id有各自的應(yīng)用場(chǎng)景,在達(dá)到上限后的表現(xiàn)也不同:

  • 表的自增id達(dá)到上限后,再申請(qǐng)時(shí)它的值就不會(huì)改變,進(jìn)而導(dǎo)致繼續(xù)插入數(shù)據(jù)時(shí)報(bào)主鍵沖突錯(cuò)誤
  • row_id達(dá)到上限后,則會(huì)歸0再重新遞增,如果出現(xiàn)相同的row_id,后寫的數(shù)據(jù)會(huì)覆蓋之前的數(shù)據(jù)
  • Xid只需要不在同一個(gè)binlog文件中出現(xiàn)重復(fù)值即可。雖然理論上會(huì)出現(xiàn)重復(fù)值,但是概率極小,可以忽略不計(jì)
  • InnoDB的max_trx_id 遞增值每次MySQL重啟都會(huì)被保存起來(lái),所以我們文章中提到的臟讀的例子就是一個(gè)必現(xiàn)的bug,好在留給我們的時(shí)間還很充裕

到此這篇關(guān)于線上MySQL的自增id用盡怎么辦的文章就介紹到這了,更多相關(guān)MySQL自增id用盡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL的自增ID(主鍵) 用完了的解決方法
  • 關(guān)于mysql自增id,你需要知道的
  • MySQL表自增id溢出的故障復(fù)盤解決
  • 關(guān)于MySQL自增ID的一些小問題總結(jié)
  • 關(guān)于Mysql自增id的這些你可能還不知道
  • mysql自增id超大問題的排查與解決
  • MySQL分表自增ID問題的解決方法

標(biāo)簽:揚(yáng)州 山西 定西 溫州 福州 阿里 三明 無(wú)錫

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《線上MySQL的自增id用盡怎么辦》,本文關(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)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《線上MySQL的自增id用盡怎么辦》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于線上MySQL的自增id用盡怎么辦的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    av大全在线免费看| 自拍偷拍欧美亚洲| 黄色三级小视频| 在线观看av每日更新免费| 亚洲小说图片区| 在线成人超碰| av在线免费观看网址| 亚洲欧美天堂在线| 中文字幕一区二区三区四区| 99在线视频精品| 日韩欧美在线一区二区三区| 亚洲国产精品嫩草影院久久av| 国产熟女高潮一区二区三区| 成人福利电影精品一区二区在线观看| 日韩中文字幕免费看| 好看不卡的中文字幕| 5566中文字幕一区二区电影| 免费男女羞羞的视频网站中文字幕妖精视频| 国产麻豆一区二区三区在线观看| 欧美三级又粗又硬| 亚洲人吸女人奶水| 欧美综合在线视频| 黄色视屏在线免费观看| 欧美伊人久久久久久久久影院| 伊人色综合久久天天五月婷| 久久精品国产精品亚洲精品| 日本久久亚洲电影| 日本一区二区三区视频在线播放| 亚洲国产裸拍裸体视频在线观看乱了| 国产又色又爽又黄刺激在线视频| 3d成人动漫网站| 久久夜靖品2区| 国产永久av在线| 久久精品国产精品青草| 性做久久久久久久免费看| 少妇高潮流白浆| 国内一区在线| 国产一级aa大片毛片| 欧美伦理视频在线观看| 亚洲最新视频在线| 日韩一级片网站| 亚洲国产成人不卡| 青青青国产精品| 偷偷要 色偷偷| 欧美久久久久免费| 丁香一区二区三区| 麻豆映画在线观看| 国产+成+人+亚洲欧洲| 手机看片日韩国产| 西西444www无码大胆| 夜夜嗨av一区二区三区免费区| 又爽又大又黄a级毛片在线视频| 第一社区sis001原创亚洲| 88国产精品欧美一区二区三区| 亚洲精品理论电影| 久久九九亚洲综合| 黄无遮挡免费网站| 97碰碰碰免费公开在线视频| 国产高清中文字幕| 中文字幕精品一区| 免费污污网站| 久久久久久久美女| 国产欧美午夜| 疯狂欧洲av久久成人av电影| 国产成人亚洲综合无码| 国产精品av免费在线观看| av在线播放亚洲| 99xxxx成人网| 欧美有码在线观看视频| 色婷婷综合久久久中字幕精品久久| 久久精品国产免费观看99| 久久久久久无码精品人妻一区二区| www国产免费| 国产精品一卡二卡| 中文字幕一区二区三区免费看| 黄色精品免费看| 九九热精品视频| 国产二区在线播放| 九九视频免费观看视频精品| 亚洲成人精品电影在线观看| 亚洲一区影院| 国产精品成人一区二区网站软件| 午夜不卡福利视频| 亚洲国产欧美一区| 天天视频一区二区三区| 91精品人妻一区二区三区四区| 99久re热视频这里只有精品6| 久久成人福利视频| 成人亚洲精品7777| 性xxxx视频| 欧美一区二区三区在线看| 在线观看免费黄色网址| 亚洲欧美在线x视频| 欧美日韩在线免费播放| 美日韩在线视频| 8x海外华人永久免费日韩内陆视频| 午夜av在线播放| av免费在线播放| 国产日产精品一区二区三区四区的观看方式| 视频一区二区在线观看| 婷婷丁香六月天| 69堂视频在线观看国产| 最美情侣韩剧在线播放| 久久人人97超碰国产公开结果| 日韩高清中文字幕| 超碰97国产精品人人cao| 日韩中字在线| 国内在线高清免费视频| 中文字幕乱在线伦视频乱在线伦视频| 成人v精品蜜桃久久一区| 色婷婷综合久久久| 在线视频不卡国产| www.中文字幕在线观看| 国产探花在线观看视频| 国产精品稀缺呦系列在线| 精品人妻大屁股白浆无码| 婷婷国产成人精品视频| 欧美日产一区二区三区在线观看| 99精品国产高清一区二区麻豆| 欧美精品一区二区三区一线天视频| 一区二区视频在线观看| 久久超碰97中文字幕| 2018中文字幕一区二区三区| 亚洲国产精品99| 日韩一区二区三区免费| 欧美一区二视频在线免费观看| av色影在线看免费| 欧美一级大胆视频| 欧洲一级黄色片| 无码日本精品xxxxxxxxx| 精品999视频| 久久国产欧美| 69xxxx国产| 欧美三级网址| 在线日韩电影| 欧美丰满少妇xxxxx| 欧美乱妇18p| 91蝌蚪porny| 香蕉视频国产精品| 日本高清视频一区二区三区| 国产精品久久久亚洲一区| 91国产丝袜播放在线| 先锋影音男人资源网| 日韩黄色av网站| 中文字幕高清一区| 免费av一级片| 精品国产3级a| 亚洲精品视频免费| 久久亚洲综合色一区二区三区| 美女的诞生在线观看高清免费完整版中文| 男人天堂成人网| 日韩精品电影一区亚洲| 国产一区二区三区成人| 久久精品一二三区| 久久99精品久久久久久国产越南| 国产黑丝一区二区| 777免费视频| 91精品福利视频| 一区二区三区视频在线观看视频| 国产一区二区成人久久免费影院| 欧美中文字幕在线播放| 日本午夜精品理论片a级appf发布| 国产深夜福利| 91欧美精品| 国产91精品精华液一区二区三区| 妞干网福利视频| 欧美女孩性生活视频| 欧美一级片免费观看| 午夜精品久久久久久久| 91在线品视觉盛宴免费| 欧美成年人在线观看| 午夜国产精品视频免费体验区| 午夜神马福利影院| 91香蕉视频污在线| 91精品国产麻豆国产在线观看| 欧美乱大交做爰xxxⅹ小说| 日本xxxxxxx免费视频| 超碰精品一区二区三区乱码| 国产成人亚洲精品播放器下载| 性欧美疯狂xxxxbbbb| 精品国产乱码久久久久久蜜柚| 好看的av在线| 自拍偷拍一区二区三区| 18成人在线| 亚洲色婷婷久久精品av蜜桃| 麻豆mv在线看| 欧美亚洲动漫制服丝袜| 亚洲一区二区三区四区在线播放| 在线播放一区二区精品产| 日韩一区二区三免费高清在线观看| 久久国产精品色av免费看| 91国产精品成人| 欧美专区国产专区| 亚洲美女久久精品| 丝袜亚洲欧美日韩综合| 精品在线观看一区二区| 蜜臀久久久久久999| 亚洲高清av一区二区三区| 精品日韩一区二区| 亚洲精品国产高清久久伦理二区| 亚洲黄色在线视频| 麻豆亚洲精品| 日本亚洲欧美成人| 国产小视频在线免费观看| 国产亚洲成av人在线观看导航| 中文字幕1区2区3区| 泷泽萝拉在线播放| 小泽玛利亚一区二区三区视频| 成人精品久久| 亚洲国产中文字幕在线观看| 黄页视频在线免费观看| 91麻豆精东视频| 国产盗摄x88av| 成人自拍视频在线| 久久草在线看| 国产精品成人一区二区三区夜夜夜| 国产精品成人国产乱一区| 高清日韩电视剧大全免费| 日日躁天天躁狠狠躁| 亚洲精品极品少妇16p| 在线精品亚洲一区二区不卡| 日本www在线观看| 国内精品女同女同一区二区三区| 国产小视频你懂的| 国内揄拍国内精品少妇国语| 四虎网站在线观看| av电影在线网| 99色在线视频| 色综合久久久久综合| 全彩无遮挡全彩口工漫画h#| 久久偷拍免费视频| 日韩国产一区| 日本高清+成人网在线观看| aaa免费看大片| 国产成人午夜精品5599| 国产肉体xxxx裸体784大胆| 亚洲欧美韩国综合色| 天堂中文资源在线观看| 精品国产黄色片| 久久手机免费观看| 99在线免费视频观看| 综合欧美一区二区三区| 成人午夜剧场视频网站| 亚洲精品国产无套在线观| 香蕉国产在线视频| 国产传媒欧美日韩成人| 日韩免费在线观看| 国产一卡二卡三卡四卡| 九九热这里有精品视频| 国产精品探花一区二区在线观看| 成人性视频免费看| 国产www在线观看| 国产欧美日韩视频在线| 日韩.com| 欧美大片高清| 黄色大片网站| av高清在线观看| 夫妇交换中文字幕| av第一福利在线导航| 黄色的视频在线观看| 在线观看国产三级| 不卡影院免费观看| 一区二区三区自拍视频| 又黄又湿又爽又免费又色| 国产精品三级美女白浆呻吟| 新天天拍日日拍狠狠拍| 隔壁老王国产在线精品| 成人区精品一区二区| 姬川优奈aav一区二区| 中文字幕欧美日韩久久| 成人激情免费电影网址| 爱情岛论坛亚洲首页入口章节| 日韩精品系列| 91欧美日韩在线| 亚洲天堂中文字幕| 精品五月天久久| 欧美电影免费网站| 国产乱码精品| 欧美白人最猛性xxxxx69交| 欧美日韩国产一二三| 波多野结衣在线电影| 欧美性生交xxxxxdddd| 裸体av在线| 欧美18xxxx| 日韩一区日韩二区| 5566成人精品视频免费| 在线亚洲欧美日韩| 久久久久久av无码免费网站| 少妇精品一区二区| 国产成人av一区二区三区在线观看| 国内精品视频在线播放| 国产一区啦啦啦在线观看| 99精品国产99久久久久久福利| 亚洲国产精品区| 精品国产91亚洲一区二区三区婷婷| 成人福利片网站| 国产高清在线免费观看| 理论片在线观看理伦片| 精品三级av在线| 91黄色在线观看| 久久精品美女| 国产一区二区三区色淫影院| 国产一区二区视频免费观看| 亚洲一区二区免费在线观看| 狠狠躁夜夜躁久久躁别揉| 中文字幕乱码中文乱码51精品| 免费人成视频在线| 国产又爽又黄又嫩又猛又粗| 四虎国产精品免费久久5151| 亚洲伊人成综合成人网| 中文字幕乱在线伦视频中文字幕乱码在线| 欧美日韩经典丝袜| 欧美一区久久久| 亚洲成a人v欧美综合天堂| 91久久偷偷做嫩草影院| 最近看过的日韩成人| 久久资源在线| 欧美体内she精视频在线观看| 亚洲激情网址| 青春草在线视频观看| 日韩中文字幕网址| 日韩精品一区二区三区国语自制| 国产一区日韩一区| 亚洲伊人影院| 天堂在线观看视频观看www| 人人香蕉久久| 精品三级在线观看| 一区二区三区四区欧美|