精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么MySQL不推薦使用uuid或者雪花id作為主鍵?

數(shù)據(jù)庫(kù) MySQL
在mysql中設(shè)計(jì)表的時(shí)候,mysql官方推薦不要使用uuid或者不連續(xù)不重復(fù)的雪花id(long形且唯一,單機(jī)遞增),而是推薦連續(xù)自增的主鍵id,本篇博客我們就來(lái)分析這個(gè)問(wèn)題。

前言

在mysql中設(shè)計(jì)表的時(shí)候,mysql官方推薦不要使用uuid或者不連續(xù)不重復(fù)的雪花id(long形且唯一,單機(jī)遞增),而是推薦連續(xù)自增的主鍵id,官方的推薦是auto_increment,那么為什么不建議采用uuid,使用uuid究竟有什么壞處?

本篇博客我們就來(lái)分析這個(gè)問(wèn)題,探討一下內(nèi)部的原因。

本篇博客的目錄

  •  mysql程序?qū)嵗?/li>
  •  使用uuid和自增id的索引結(jié)構(gòu)對(duì)比
  •  總結(jié)

一、mysql和程序?qū)嵗?/strong>

1.1.要說(shuō)明這個(gè)問(wèn)題,我們首先來(lái)建立三張表

分別是user_auto_key,user_uuid,user_random_key,分別表示自動(dòng)增長(zhǎng)的主鍵,uuid作為主鍵,隨機(jī)key作為主鍵,其它我們完全保持不變.

根據(jù)控制變量法,我們只把每個(gè)表的主鍵使用不同的策略生成,而其他的字段完全一樣,然后測(cè)試一下表的插入速度和查詢速度:

注:這里的隨機(jī)key其實(shí)是指用雪花算法算出來(lái)的前后不連續(xù)不重復(fù)無(wú)規(guī)律的id:一串18位長(zhǎng)度的long值

id自動(dòng)生成表:

用戶uuid表

隨機(jī)主鍵表:

1.2.光有理論不行,直接上程序,使用spring的jdbcTemplate來(lái)實(shí)現(xiàn)增查測(cè)試:

技術(shù)框架:springboot+jdbcTemplate+junit+hutool,程序的原理就是連接自己的測(cè)試數(shù)據(jù)庫(kù),然后在相同的環(huán)境下寫入同等數(shù)量的數(shù)據(jù),來(lái)分析一下insert插入的時(shí)間來(lái)進(jìn)行綜合其效率,為了做到最真實(shí)的效果,所有的數(shù)據(jù)采用隨機(jī)生成,比如名字、郵箱、地址都是隨機(jī)生成。

搜索Java知音公眾號(hào),回復(fù)“后端面試”,送你一份Java面試題寶典 

  1. package com.wyq.mysqldemo;  
  2. import cn.hutool.core.collection.CollectionUtil;  
  3. import com.wyq.mysqldemo.databaseobject.UserKeyAuto;  
  4. import com.wyq.mysqldemo.databaseobject.UserKeyRandom;  
  5. import com.wyq.mysqldemo.databaseobject.UserKeyUUID;  
  6. import com.wyq.mysqldemo.diffkeytest.AutoKeyTableService;  
  7. import com.wyq.mysqldemo.diffkeytest.RandomKeyTableService;  
  8. import com.wyq.mysqldemo.diffkeytest.UUIDKeyTableService;  
  9. import com.wyq.mysqldemo.util.JdbcTemplateService;  
  10. import org.junit.jupiter.api.Test;  
  11. import org.springframework.beans.factory.annotation.Autowired;  
  12. import org.springframework.boot.test.context.SpringBootTest;  
  13. import org.springframework.util.StopWatch;  
  14. import java.util.List;  
  15. @SpringBootTest  
  16. class MysqlDemoApplicationTests {  
  17.     @Autowired  
  18.     private JdbcTemplateService jdbcTemplateService; 
  19.      @Autowired  
  20.     private AutoKeyTableService autoKeyTableService;  
  21.     @Autowired  
  22.     private UUIDKeyTableService uuidKeyTableService;  
  23.     @Autowired  
  24.     private RandomKeyTableService randomKeyTableService;  
  25.     @Test  
  26.     void testDBTime() {  
  27.         StopWatch stopwatch = new StopWatch("執(zhí)行sql時(shí)間消耗");  
  28.         /**  
  29.          * auto_increment key任務(wù)  
  30.          */  
  31.         final String insertSql = "INSERT INTO user_key_auto(user_id,user_name,sex,address,city,email,state) VALUES(?,?,?,?,?,?,?)" 
  32.         List<UserKeyAuto> insertData = autoKeyTableService.getInsertData();  
  33.         stopwatch.start("自動(dòng)生成key表任務(wù)開(kāi)始");  
  34.         long start1 = System.currentTimeMillis();  
  35.         if (CollectionUtil.isNotEmpty(insertData)) {  
  36.             boolean insertResult = jdbcTemplateService.insert(insertSql, insertData, false);  
  37.             System.out.println(insertResult);  
  38.         }  
  39.         long end1 = System.currentTimeMillis();  
  40.         System.out.println("auto key消耗的時(shí)間:" + (end1 - start1));  
  41.         stopwatch.stop();  
  42.         /**  
  43.          * uudID的key  
  44.          */  
  45.         final String insertSql2 = "INSERT INTO user_uuid(id,user_id,user_name,sex,address,city,email,state) VALUES(?,?,?,?,?,?,?,?)" 
  46.         List<UserKeyUUID> insertData2 = uuidKeyTableService.getInsertData();  
  47.         stopwatch.start("UUID的key表任務(wù)開(kāi)始");  
  48.         long begin = System.currentTimeMillis(); 
  49.          if (CollectionUtil.isNotEmpty(insertData)) {  
  50.             boolean insertResult = jdbcTemplateService.insert(insertSql2, insertData2, true);  
  51.             System.out.println(insertResult);  
  52.         }  
  53.         long over = System.currentTimeMillis();  
  54.         System.out.println("UUID key消耗的時(shí)間:" + (over - begin));  
  55.         stopwatch.stop();  
  56.         /**  
  57.          * 隨機(jī)的long值key  
  58.          */  
  59.         final String insertSql3 = "INSERT INTO user_random_key(id,user_id,user_name,sex,address,city,email,state) VALUES(?,?,?,?,?,?,?,?)" 
  60.         List<UserKeyRandom> insertData3 = randomKeyTableService.getInsertData();  
  61.         stopwatch.start("隨機(jī)的long值key表任務(wù)開(kāi)始");  
  62.         Long start = System.currentTimeMillis();  
  63.         if (CollectionUtil.isNotEmpty(insertData)) {  
  64.             boolean insertResult = jdbcTemplateService.insert(insertSql3, insertData3, true);  
  65.             System.out.println(insertResult);  
  66.         }  
  67.         Long end = System.currentTimeMillis();  
  68.         System.out.println("隨機(jī)key任務(wù)消耗時(shí)間:" + (end - start));  
  69.         stopwatch.stop();  
  70.         String result = stopwatch.prettyPrint();  
  71.         System.out.println(result); 
  72.      } 

1.3.程序?qū)懭虢Y(jié)果

user_key_auto寫入結(jié)果:

user_random_key寫入結(jié)果:

user_uuid表寫入結(jié)果:

1.4.效率測(cè)試結(jié)果

在已有數(shù)據(jù)量為130W的時(shí)候:我們?cè)賮?lái)測(cè)試一下插入10w數(shù)據(jù),看看會(huì)有什么結(jié)果:

可以看出在數(shù)據(jù)量100W左右的時(shí)候,uuid的插入效率墊底,并且在后序增加了130W的數(shù)據(jù),uudi的時(shí)間又直線下降。

時(shí)間占用量總體可以打出的效率排名為:auto_key>random_key>uuid,uuid的效率最低,在數(shù)據(jù)量較大的情況下,效率直線下滑。那么為什么會(huì)出現(xiàn)這樣的現(xiàn)象呢?帶著疑問(wèn),我們來(lái)探討一下這個(gè)問(wèn)題:

二、使用uuid和自增id的索引結(jié)構(gòu)對(duì)比

2.1.使用自增id的內(nèi)部結(jié)構(gòu)

自增的主鍵的值是順序的,所以Innodb把每一條記錄都存儲(chǔ)在一條記錄的后面。當(dāng)達(dá)到頁(yè)面的最大填充因子時(shí)候(innodb默認(rèn)的最大填充因子是頁(yè)大小的15/16,會(huì)留出1/16的空間留作以后的     修改):

①下一條記錄就會(huì)寫入新的頁(yè)中,一旦數(shù)據(jù)按照這種順序的方式加載,主鍵頁(yè)就會(huì)近乎于順序的記錄填滿,提升了頁(yè)面的最大填充率,不會(huì)有頁(yè)的浪費(fèi)

②新插入的行一定會(huì)在原有的最大數(shù)據(jù)行下一行,mysql定位和尋址很快,不會(huì)為計(jì)算新行的位置而做出額外的消耗

③減少了頁(yè)分裂和碎片的產(chǎn)生

2.2.使用uuid的索引內(nèi)部結(jié)構(gòu)

因?yàn)閡uid相對(duì)順序的自增id來(lái)說(shuō)是毫無(wú)規(guī)律可言的,新行的值不一定要比之前的主鍵的值要大,所以innodb無(wú)法做到總是把新行插入到索引的最后,而是需要為新行尋找新的合適的位置從而來(lái)分配新的空間。

這個(gè)過(guò)程需要做很多額外的操作,數(shù)據(jù)的毫無(wú)順序會(huì)導(dǎo)致數(shù)據(jù)分布散亂,將會(huì)導(dǎo)致以下的問(wèn)題:

①寫入的目標(biāo)頁(yè)很可能已經(jīng)刷新到磁盤上并且從緩存上移除,或者還沒(méi)有被加載到緩存中,innodb在插入之前不得不先找到并從磁盤讀取目標(biāo)頁(yè)到內(nèi)存中,這將導(dǎo)致大量的隨機(jī)IO

②因?yàn)閷懭胧莵y序的,innodb不得不頻繁的做頁(yè)分裂操作,以便為新的行分配空間,頁(yè)分裂導(dǎo)致移動(dòng)大量的數(shù)據(jù),一次插入最少需要修改三個(gè)頁(yè)以上

③由于頻繁的頁(yè)分裂,頁(yè)會(huì)變得稀疏并被不規(guī)則的填充,最終會(huì)導(dǎo)致數(shù)據(jù)會(huì)有碎片

在把隨機(jī)值(uuid和雪花id)載入到聚簇索引(innodb默認(rèn)的索引類型)以后,有時(shí)候會(huì)需要做一次OPTIMEIZE TABLE來(lái)重建表并優(yōu)化頁(yè)的填充,這將又需要一定的時(shí)間消耗。

結(jié)論:使用innodb應(yīng)該盡可能的按主鍵的自增順序插入,并且盡可能使用單調(diào)的增加的聚簇鍵的值來(lái)插入新行

搜索Java知音公眾號(hào),回復(fù)“后端面試”,送你一份Java面試題寶典

2.3.使用自增id的缺點(diǎn)

那么使用自增的id就完全沒(méi)有壞處了嗎?并不是,自增id也會(huì)存在以下幾點(diǎn)問(wèn)題:

①別人一旦爬取你的數(shù)據(jù)庫(kù),就可以根據(jù)數(shù)據(jù)庫(kù)的自增id獲取到你的業(yè)務(wù)增長(zhǎng)信息,很容易分析出你的經(jīng)營(yíng)情況

②對(duì)于高并發(fā)的負(fù)載,innodb在按主鍵進(jìn)行插入的時(shí)候會(huì)造成明顯的鎖爭(zhēng)用,主鍵的上界會(huì)成為爭(zhēng)搶的熱點(diǎn),因?yàn)樗械牟迦攵及l(fā)生在這里,并發(fā)插入會(huì)導(dǎo)致間隙鎖競(jìng)爭(zhēng)

③Auto_Increment鎖機(jī)制會(huì)造成自增鎖的搶奪,有一定的性能損失

附:Auto_increment的鎖爭(zhēng)搶問(wèn)題,如果要改善需要調(diào)優(yōu)innodb_autoinc_lock_mode的配置

三、總結(jié)

本篇博客首先從開(kāi)篇的提出問(wèn)題,建表到使用jdbcTemplate去測(cè)試不同id的生成策略在大數(shù)據(jù)量的數(shù)據(jù)插入表現(xiàn),然后分析了id的機(jī)制不同在mysql的索引結(jié)構(gòu)以及優(yōu)缺點(diǎn),深入的解釋了為何uuid和隨機(jī)不重復(fù)id在數(shù)據(jù)插入中的性能損耗,詳細(xì)的解釋了這個(gè)問(wèn)題。

在實(shí)際的開(kāi)發(fā)中還是根據(jù)mysql的官方推薦最好使用自增id,mysql博大精深,內(nèi)部還有很多值得優(yōu)化的點(diǎn)需要我們學(xué)習(xí)。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Java知音
相關(guān)推薦

2025-07-28 01:22:00

2020-09-08 09:04:26

uuidMySQL主鍵

2025-08-27 02:00:00

2024-11-12 10:30:54

Docker部署數(shù)據(jù)庫(kù)

2024-11-29 08:20:22

Autowired場(chǎng)景項(xiàng)目

2021-08-23 13:02:50

MySQLJOIN數(shù)據(jù)庫(kù)

2024-12-25 15:32:29

2024-06-04 00:10:00

開(kāi)發(fā)拷貝

2024-05-29 09:05:17

2025-05-16 02:00:00

HashMapJava代碼

2024-09-12 08:32:42

2025-07-03 02:15:00

MySQLID+UUIDB+樹(shù)

2023-11-06 13:04:59

Python日志庫(kù)

2023-02-03 08:36:35

2025-10-17 01:25:00

SpringIDEA@Autowired

2022-01-11 10:29:32

Docker文件掛載

2025-04-29 07:06:20

2020-04-21 15:59:50

MySQL自增主鍵數(shù)據(jù)庫(kù)

2021-07-04 14:19:03

RabbitMQ消息轉(zhuǎn)換

2021-01-13 09:55:29

try-catch-fJava代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产·精品毛片| 精品久久久亚洲| 亚洲国产精品欧美一二99| 国产伦精品一区二区三区免费视频| 久久久久无码国产精品不卡| 国产精品久久久久久久久久白浆| 欧美色欧美亚洲高清在线视频| 日韩免费一区二区三区| 成人一区二区免费视频| 神马午夜一区二区| 中文字幕伦av一区二区邻居| 在线观看亚洲精品| 精品一区二区三区毛片| 青青青草原在线| 麻豆成人91精品二区三区| 欧美理论电影在线播放| 成人国产精品久久久网站| 高清一区二区三区av| 黑人巨大精品欧美一区免费视频| 欧美性视频在线播放| 手机av在线免费观看| 久久综合激情| 久久久久久噜噜噜久久久精品| 中字幕一区二区三区乱码| 伊色综合久久之综合久久| 欧美视频完全免费看| 久久精品国产sm调教网站演员| 欧美激情免费| 久久久精品欧美丰满| 亚洲最大福利视频网| 中文字幕天堂在线| 亚洲裸体俱乐部裸体舞表演av| 自拍偷拍亚洲在线| 中文字幕免费看| 日韩视频一二区| 欧美日韩精品一区二区三区蜜桃 | 国产人妖一区二区| 久久人人超碰| 欧美一级成年大片在线观看 | 亚洲成人av| 国产一区二区三区欧美| 99久久人妻精品免费二区| 日本久久伊人| 日韩午夜精品视频| 欧美日韩一区二区三区69堂| 在线手机中文字幕| 亚洲mv在线观看| 日本人妻伦在线中文字幕| 久草资源在线观看| 亚洲桃色在线一区| 亚洲美女搞黄| melody高清在线观看| 久久色在线视频| 久久亚洲综合网| 神马电影在线观看| 午夜久久久久| 精品国产一区二区在线| 国产不卡在线观看视频| 欧美色蜜桃97| 在线观看不卡av| 刘亦菲国产毛片bd| 天天射天天综合网| 久久久国产一区二区| 中日韩一级黄色片| 中文字幕日韩一区二区不卡| 久久99精品久久久久久噜噜| 久久久久亚洲AV成人| 伊人成综合网| 午夜精品久久久久久久白皮肤| 久久综合色综合| 韩日成人在线| 456国产精品| japanese国产在线观看| 男人操女人的视频在线观看欧美| 国产精品青草久久久久福利99| 蜜臀99久久精品久久久久小说 | 中文字幕视频在线免费观看| 国产成人a视频高清在线观看| 欧美日韩国产成人在线免费| 国产黄色一区二区三区| 99国产精品免费网站| 亚洲精品av在线播放| 日韩精品卡通动漫网站| 色综合咪咪久久网| 欧美日韩成人在线观看| 亚洲精品1区2区3区| 丝袜亚洲另类欧美综合| 成人国产在线激情| 亚洲精品福利网站| 91免费观看国产| 亚洲一区二区高清视频| 日本动漫同人动漫在线观看| 欧美色视频日本版| 国产又粗又长又爽又黄的视频| 亚洲专区**| 亚洲人成网站999久久久综合| 国产欧美小视频| 国产精品大片免费观看| 国产精品爱久久久久久久| 97在线公开视频| 99久久精品国产毛片| 亚洲精品国产精品国自产| 男插女视频久久久| 91福利精品第一导航| 性色av浪潮av| 亚洲人成精品久久久 | 日韩一级大片在线观看| 国产 欧美 在线| 欧美国产激情| 国产精品精品视频一区二区三区| 亚洲成熟女性毛茸茸| 中文字幕欧美日韩一区| 成人免费播放器| 亚洲精品第一| 亚洲片在线资源| www.天天色| 国产一区二区91| 日韩亚洲视频| 九色porny自拍视频在线播放| 欧美肥妇毛茸茸| 国产精品一二三区在线观看| 国内在线观看一区二区三区| 国产日韩精品在线播放| 欧美777四色影视在线| 夜夜嗨av一区二区三区网页| 免费看涩涩视频| 亚洲精品小区久久久久久| 欧美国产日韩中文字幕在线| 一级特黄aaa| 国产日产亚洲精品系列| 日韩激情免费视频| 欧美视频精品全部免费观看| 日韩最新中文字幕电影免费看| 成年人视频在线免费看| 成a人片亚洲日本久久| 国产日韩欧美另类| 日韩私人影院| 天天免费综合色| 黄色av电影网站| 欧美88av| 91精品视频免费看| 91社区在线| 欧美三电影在线| 国产成人免费观看网站| 久久久综合网| 欧洲亚洲一区二区三区四区五区| 岛国av在线播放| 亚洲福利在线看| 免费网站看av| 国产成人精品影院| 日本熟妇人妻xxxx| 超碰地址久久| 久久人人看视频| 天天干天天做天天操| 欧美日韩激情视频| 人妻丰满熟妇av无码久久洗澡| 国产色综合网| 久久久久se| 久久久久久com| 日韩精品一区二区在线视频| 国产成年精品| 免费91在线视频| 国内精品偷拍视频| 一区二区理论电影在线观看| 亚洲欧洲日韩综合| 精品999网站| 精品久久久久久乱码天堂| 擼擼色在线看观看免费| 日韩精品电影网| 69xxxx国产| 国产精品丝袜在线| 日韩av一卡二卡三卡| 你懂的亚洲视频| 国产偷国产偷亚洲高清97cao| 九色porny视频在线观看| 亚洲人高潮女人毛茸茸| 在线观看免费视频a| 日韩毛片精品高清免费| 91人人澡人人爽| 久久都是精品| 一区二区三区三区在线| 一区三区自拍| 国产mv久久久| 精品黄色免费中文电影在线播放 | 国产精品乱码一区二区| 亚洲主播在线观看| 国产毛片久久久久久久| 国产综合色视频| 国产无限制自拍| 欧美肉体xxxx裸体137大胆| 91久久精品日日躁夜夜躁国产| 青青青国内视频在线观看软件| 亚洲福利影片在线| 亚洲在线精品视频| 亚洲福利一区二区三区| 在线看片中文字幕| 成人深夜在线观看| 国产精品乱码久久久久| 午夜久久一区| 欧美一区二区三区精美影视| 欧美久久亚洲| 国产精品久久久久久久久久久久久| 久草免费在线观看| 亚洲视频在线观看网站| 精品国产九九九| 91精品办公室少妇高潮对白| 国产精品三区在线观看| 久久久久久**毛片大全| 久久av一区二区三| 蜜臀久久99精品久久久久宅男| 日本一区午夜艳熟免费| 99re久久最新地址获取| 久久精品午夜一区二区福利| 免费欧美网站| 国产精品一区二区三区毛片淫片 | 日韩免费观看av| 欧美性受ⅹ╳╳╳黑人a性爽| 国产一区二区成人| 天天干天天爱天天操| 日韩一区二区三区电影在线观看| 免费的毛片视频| 午夜亚洲国产au精品一区二区| 老司机深夜福利网站| 久久影院午夜片一区| 欧洲成人午夜精品无码区久久| 麻豆久久久久久| 成人黄色一区二区| 中日韩男男gay无套| 免费观看亚洲视频| 亚州av乱码久久精品蜜桃| 日韩av在线电影观看| 台湾佬综合网| 精品日本一区二区三区在线观看| 欧美午夜在线播放| 亚洲精品免费av| 国产不卡精品在线| 成人国产精品av| 婷婷久久免费视频| 国产精品中文在线| 91大神在线观看线路一区| 青草青草久热精品视频在线观看| 麻豆mv在线看| 2019中文字幕在线观看| 国产乱码午夜在线视频| 97精品国产91久久久久久| 丁香花视频在线观看| 久久久久久久成人| av免费不卡| 国产69精品久久久| 韩日毛片在线观看| 欧美亚洲视频一区二区| 免费日韩电影| 国产精品扒开腿做爽爽爽男男| 国产精欧美一区二区三区蓝颜男同| 91精品国产99久久久久久| 蜜桃视频www网站在线观看| 91精品国产91久久| 在线观看爽视频| 国产成人精品日本亚洲专区61| 欧美精品日日操| 国产精品久久久久久久美男| 欧美美女福利视频| 97人人模人人爽人人少妇 | 国产一区二区三区高清| 日本亚洲不卡| 日韩福利二区| 欧美成人直播| 欧美高清中文字幕| 一本色道久久综合一区 | 国产在线视频精品一区| 黄色片免费网址| 风间由美一区二区三区在线观看| bl动漫在线观看| 久久精品一区蜜桃臀影院| 国产精品久久久久久成人| 亚洲免费资源在线播放| 久久久久久久久艹| 欧美午夜宅男影院在线观看| 最新黄色网址在线观看| 欧美一区二区日韩| 日韩中文字幕观看| 一区三区二区视频| v片在线观看| 91精品国产高清久久久久久91| 欧美成人精品三级网站| 亚洲aⅴ男人的天堂在线观看| 欧美变态网站| 亚洲日本欧美在线| 亚洲无吗在线| 蜜臀视频一区二区三区| 国产一区二区三区av电影| 丰满大乳奶做爰ⅹxx视频| 国产精品欧美综合在线| 麻豆国产尤物av尤物在线观看| 欧美日韩一区二区在线| 国产精品自产拍| 精品亚洲aⅴ在线观看| 黄色的网站在线观看| 欧美一级视频在线观看| 精品国产18久久久久久二百| 久久综合九色欧美狠狠| 欧美在线看片| 日韩中文字幕组| 成人av手机在线观看| 殴美一级黄色片| 日韩欧美一区二区在线| 精品乱子伦一区二区| 中文在线资源观看视频网站免费不卡| 性xxxxfjsxxxxx欧美| 国产精品久久中文| 人人精品视频| 久久手机在线视频| 久久 天天综合| 中文字幕在线看高清电影| 一区二区三区欧美日| 天天干天天插天天射| 亚洲国产天堂网精品网站| 国产一区久久精品| 国产精品久久久久99| 天堂av一区二区三区在线播放| 黄色网络在线观看| 毛片基地黄久久久久久天堂| 天堂久久久久久| 午夜精品一区二区三区免费视频| 97人妻一区二区精品免费视频 | 久久久亚洲av波多野结衣| 一区二区三区蜜桃网| 国产男男gay网站| 中文字幕亚洲天堂| 欧美一区久久久| 精品日韩美女| 一区在线视频观看| 99国产精品免费视频| 亚洲视频网在线直播| 在线免费观看一区二区| 一区二区三区视频观看| 欧美无毛视频| 欧美污视频久久久| 久久国产66| 亚洲av无码一区二区三区人 | 99精品国产高清一区二区麻豆| 成年人免费观看的视频| 蓝色福利精品导航| 黄色国产在线播放| 欧美另类变人与禽xxxxx| www免费网站在线观看| 国产精品久久久久久久久久久久 | 一区二区三区视频免费| 经典三级一区二区| 品久久久久久久久久96高清| 久久国产精品99国产| 新91视频在线观看| 在线观看欧美精品| 国产一二三在线观看| 亚洲国产另类 国产精品国产免费| 久cao在线| 亚洲资源在线看| 欧美激情亚洲| 国产51自产区| 精品人伦一区二区三区蜜桃网站| 色综合视频在线| 91成人性视频| 国产亚洲一区| 国产3p在线播放| 亚洲激情在线播放| 日韩在线观看视频一区| 69久久夜色精品国产69| 国产亚洲一卡2卡3卡4卡新区| 中文字幕在线观看第三页| 中文字幕一区二区三区在线不卡| 国产免费av观看| 欧美激情一区二区三区成人| 精品亚洲自拍| 男女啪啪网站视频| 亚洲视频在线观看一区| 黄色av小说在线观看| 欧美一区亚洲一区| 久久国产中文字幕| 一区二区三区人妻| 午夜日韩在线观看| 阿v免费在线观看| 亚洲自拍偷拍福利| 国产一级一区二区| 色www亚洲国产阿娇yao| 日韩一级在线观看| 波多视频一区| 一区二区三区四区五区视频| 国产91精品在线观看| 黄色免费av网站| 久久久999国产| 欧美性生活一级片| 狠狠干狠狠操视频| 亚洲成av人片在www色猫咪| 国产片在线观看| 96久久精品| 日韩综合小视频| 激情五月少妇a| 最近2019年中文视频免费在线观看| 欧美视频精品全部免费观看| 看欧美ab黄色大片视频免费|