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

主頁(yè) > 知識(shí)庫(kù) > 關(guān)于MongoDB謹(jǐn)防索引seek的效率問題詳析

關(guān)于MongoDB謹(jǐn)防索引seek的效率問題詳析

熱門標(biāo)簽:外呼線路資源屬于電信業(yè)務(wù)嗎 內(nèi)蒙古營(yíng)銷智能外呼系統(tǒng)哪個(gè)好 長(zhǎng)沙電銷外呼防封卡是什么 河南電話外呼系統(tǒng)招商 呼和浩特外呼系統(tǒng)原理是什么 crm外呼系統(tǒng)聯(lián)系方式 小裙科技電銷機(jī)器人怎樣 青白江400企業(yè)電話申請(qǐng) 智能外呼系統(tǒng)官網(wǎng)

背景

最近線上的一個(gè)工單分析服務(wù)一直不大穩(wěn)定,監(jiān)控平臺(tái)時(shí)不時(shí)發(fā)出數(shù)據(jù)庫(kù)操作超時(shí)的告警。

運(yùn)維兄弟溝通后,發(fā)現(xiàn)在每天凌晨1點(diǎn)都會(huì)出現(xiàn)若干次的業(yè)務(wù)操作失敗,而數(shù)據(jù)庫(kù)監(jiān)控上并沒有發(fā)現(xiàn)明顯的異常。

在該分析服務(wù)的日志中發(fā)現(xiàn)了某個(gè)數(shù)據(jù)庫(kù)操作產(chǎn)生了 SocketTimeoutException。

開發(fā)同學(xué)一開始希望通過調(diào)整 MongoDB Java Driver 的超時(shí)參數(shù)來(lái)規(guī)避這個(gè)問題。
但經(jīng)過詳細(xì)分析之后,這樣是無(wú)法根治問題的,而且超時(shí)配置應(yīng)該如何調(diào)整也難以評(píng)估。

下面是關(guān)于對(duì)這個(gè)問題的分析、調(diào)優(yōu)的過程。

初步分析

從出錯(cuò)的信息上看,是數(shù)據(jù)庫(kù)的操作響應(yīng)超時(shí)了,此時(shí)客戶端配置的 SocketReadTimeout 為 60s。
那么,是什么操作會(huì)導(dǎo)致數(shù)據(jù)庫(kù) 60s 還沒能返回呢?

業(yè)務(wù)操作

左邊的數(shù)據(jù)庫(kù)是一個(gè)工單數(shù)據(jù)表(t_work_order),其中記錄了每張工單的信息,包括工單編號(hào)(oid)、最后修改時(shí)間(lastModifiedTime)

分析服務(wù)是Java實(shí)現(xiàn)的一個(gè)應(yīng)用程序,在每天凌晨1:00 會(huì)拉取出前一天修改的工單信息(要求按工單號(hào)排序)進(jìn)行處理。

由于工單表非常大(千萬(wàn)級(jí)),所以在處理時(shí)會(huì)采用分頁(yè)的做法(每次取1000條),使用按工單號(hào)翻頁(yè)的方式:

第一次拉取

db.t_work_order.find({
  "lastModifiedTime":{
   $gt: new Date("2019-04-09T09:44:57.106Z"),
   $lt: new Date("2019-04-09T10:44:57.106Z")}, 
  "oid": {$exists: true}})
  .sort({"oid":1}).limit(1000)

第二次拉取,以第一次拉取的最后一條記錄的工單號(hào)作為起點(diǎn)

db.t_work_order.find({
  "lastModifiedTime":{
   $gt: new Date("2019-04-09T09:44:57.106Z"),
   $lt: new Date("2019-04-09T10:44:57.106Z")}, 
  "oid": {$exists: true, $gt: "VXZ190"}})
  .sort({"oid":1}).limit(1000)
..

根據(jù)這樣的查詢,開發(fā)人員給數(shù)據(jù)表使用的索引如下:

db.t_work_order.ensureIndexes({
  "oid" : 1,
  "lastModifiedTime" : -1
})

盡管該索引與查詢字段基本是匹配的,但在實(shí)際執(zhí)行時(shí)卻表現(xiàn)出很低的效率:
第一次拉取時(shí)間非常的長(zhǎng),經(jīng)常超過60s導(dǎo)致報(bào)錯(cuò),而后面的拉取時(shí)間則會(huì)快一些

為了精確的模擬該場(chǎng)景,我們?cè)跍y(cè)試環(huán)境中預(yù)置了小部分?jǐn)?shù)據(jù),對(duì)拉取記錄的SQL執(zhí)行Explain:

db.t_work_order.find({
  "lastModifiedTime":{
   $gt: new Date("2019-04-09T09:44:57.106Z"),
   $lt: new Date("2019-04-09T10:44:57.106Z")}
  "oid": {$exists: true}})
  .sort({"oid":1}).limit(1000)
  .explain("executionStats")

輸出結(jié)果如下

"nReturned" : 1000,
"executionTimeMillis" : 589,
"totalKeysExamined" : 136661,
"totalDocsExamined" : 1000,

...

"indexBounds" : {
    "oid" : [
        "[MinKey, MaxKey]"
    ],
    "lastModifiedTime" : [
        "(new Date(1554806697106), new Date(1554803097106))"
    ]
},
"keysExamined" : 136661,
"seeks" : 135662,

在執(zhí)行過程中發(fā)現(xiàn),檢索1000條記錄,居然需要掃描 13.6 W條索引項(xiàng)!

其中,幾乎所有的開銷都花費(fèi)在了 一個(gè)seeks操作上了。

索引seeks的原因

官方文檔對(duì)于 seeks 的解釋如下:

The number of times that we had to seek the index cursor to a new position in order to complete the index scan.

翻譯過來(lái)就是:

seeks 是指為了完成索引掃描(stage),執(zhí)行器必須將游標(biāo)定位到新位置的次數(shù)。

我們都知道 MongoDB 的索引是B+樹的實(shí)現(xiàn)(3.x以上),對(duì)于連續(xù)的葉子節(jié)點(diǎn)掃描來(lái)說是非??斓?只需要一次尋址),那么seeks操作太多則表示整個(gè)掃描過程中出現(xiàn)了大量的尋址(跳過非目標(biāo)節(jié)點(diǎn))。
而且,這個(gè)seeks指標(biāo)是在3.4版本支持的,因此可以推測(cè)該操作對(duì)性能是存在影響的。

為了探究 seeks 是怎么產(chǎn)生的,我們對(duì)查詢語(yǔ)句嘗試做了一些變更:

去掉 exists 條件

exists 條件的存在是因?yàn)闅v史問題(一些舊記錄并不包含工單號(hào)的字段),為了檢查exists查詢是否為關(guān)鍵問題,修改如下:

db.t_work_order.find({
  "lastModifiedTime":{
   $gt: new Date("2019-04-09T09:44:57.106Z"),
   $lt: new Date("2019-04-09T10:44:57.106Z")}
  })
  .sort({"oid":1}).limit(1000)
  .explain("executionStats")

執(zhí)行后的結(jié)果為:

"nReturned" : 1000,
"executionTimeMillis" : 1533,
"totalKeysExamined" : 272322,
"totalDocsExamined" : 272322,
 
...

"inputStage" : {
  "stage" : "FETCH",
  "filter" : {
      "$and" : [
          {
              "lastModifiedTime" : {
                  "$lt" : ISODate("2019-04-09T10:44:57.106Z")
              }
          },
          {
              "lastModifiedTime" : {
                  "$gt" : ISODate("2019-04-09T09:44:57.106Z")
              }
          }
      ]
},

...

"indexBounds" : {
    "oid" : [
        "[MinKey, MaxKey]"
    ],
    "lastModifiedTime" : [
        "[MaxKey, MinKey]"
    ]
},
"keysExamined" : 272322,
"seeks" : 1,

這里發(fā)現(xiàn),去掉 exists 之后,seeks 變成了1次,但整個(gè)查詢掃描了 27.2W 條索引項(xiàng)! 剛好是去掉之前的2倍。

seeks 變?yōu)?次說明已經(jīng)使用了葉節(jié)點(diǎn)順序掃描的方式,然而由于掃描范圍非常大,為了找到目標(biāo)記錄,會(huì)執(zhí)行順序掃描并過濾大量不符合條件的記錄。

在 FETCH 階段出現(xiàn)了 filter可說明這一點(diǎn)。與此同時(shí),我們檢查了數(shù)據(jù)表的特征:同一個(gè)工單號(hào)是存在兩條記錄的!于是可以說明:

在存在exists查詢條件時(shí),執(zhí)行器會(huì)選擇按工單號(hào)進(jìn)行seeks跳躍式檢索,如下圖:


在不存在exists條件的情況下,執(zhí)行器選擇了葉節(jié)點(diǎn)順序掃描的方式,如下圖:


gt 條件和反序

除了第一次查詢之外,我們對(duì)后續(xù)的分頁(yè)查詢也進(jìn)行了分析,如下:

db.t_work_order.find({
  "lastModifiedTime":{
   $gt: new Date("2019-04-09T09:44:57.106Z"),
   $lt: new Date("2019-04-09T10:44:57.106Z")}, 
  "oid": {$exists: true, $gt: "VXZ190"}})
  .sort({"oid":1}).limit(1000)
  .explain("executionStats")

上面的語(yǔ)句中,主要是增加了$gt: "VXZ190"這一個(gè)條件,執(zhí)行過程如下:

"nReturned" : 1000,
"executionTimeMillis" : 6,
"totalKeysExamined" : 1004,
"totalDocsExamined" : 1000,

...

"indexBounds" : {
  "oid" : [ 
    "(\"VXZ190\", {})"
  ],
  "lastModifiedTime" : [ 
    "(new Date(1554806697106), new Date(1554803097106))"
  ]
},
"keysExamined" : 1004,
"seeks" : 5,

可以發(fā)現(xiàn),seeks的數(shù)量非常少,而且檢索過程只掃描了1004條記錄,效率是很高的。

那么,是不是意味著在后面的數(shù)據(jù)中,滿足查詢的條件的記錄非常密集呢?

為了驗(yàn)證這一點(diǎn),我們將一開始第一次分頁(yè)的查詢做一下調(diào)整,改為按工單號(hào)降序的方式(從后往前掃描):

db.t_work_order.find({
  "lastModifiedTime":{
   $gt: new Date("2019-04-09T09:44:57.106Z"),
   $lt: new Date("2019-04-09T10:44:57.106Z")}, 
  "oid": {$exists: true}})
  .sort({"oid":-1}).limit(1000)
  .explain("executionStats")

新的"反序查詢語(yǔ)句"的執(zhí)行過程如下:

"nReturned" : 1000,
"executionTimeMillis" : 6,
"totalKeysExamined" : 1001,
"totalDocsExamined" : 1000,

...

"direction" : "backward",
"indexBounds" : {
  "oid" : [ 
    "[MaxKey, MinKey]"
  ],
  "lastModifiedTime" : [ 
    "(new Date(1554803097106), new Date(1554806697106))"
  ]
},
"keysExamined" : 1001,
"seeks" : 2,

可以看到,執(zhí)行的效率更高了,幾乎不需要什么 seeks 操作!

經(jīng)過一番確認(rèn)后,我們獲知了在所有數(shù)據(jù)的分布中,工單號(hào)越大的記錄其更新時(shí)間值也越大,基本上我們想查詢的目標(biāo)數(shù)據(jù)都集中在尾端。

于是就會(huì)出現(xiàn)一開始提到的,第一次查詢非常慢甚至超時(shí),而后面的查詢就快了。

上面提到的兩個(gè)查詢執(zhí)行路線如圖所示:

加入$gt 條件,從中間開始檢索


反序,從后面開始檢索


優(yōu)化思路

通過分析,我們知道了問題的癥結(jié)在于索引的掃描范圍過大,那么如何優(yōu)化,以避免掃描大量記錄呢?

從現(xiàn)有的索引及條件來(lái)看,由于同時(shí)存在gt、exists以及葉子節(jié)點(diǎn)的時(shí)間范圍限定,不可避免的會(huì)產(chǎn)生seeks操作,
而且查詢的性能是不穩(wěn)定的,跟數(shù)據(jù)分布、具體查詢條件都有很大的關(guān)系。

于是一開始所提到的僅僅是增加 socketTimeout 的閾值可能只是治標(biāo)不治本,一旦數(shù)據(jù)的索引值分布變化或者數(shù)據(jù)量持續(xù)增大,可能會(huì)發(fā)生更嚴(yán)重的事情。

回到一開始的需求場(chǎng)景,定時(shí)器要求讀取每天更新的工單(按工單號(hào)排序),再進(jìn)行分批處理。

那么,按照化零為整的思路,新增一個(gè)lastModifiedDay字段,這個(gè)存儲(chǔ)的就是lastModifiedTime對(duì)應(yīng)的日期值(低位取整),這樣在同一天內(nèi)更新的工單記錄都有同樣的值。

建立組合索引 {lastModifiedDay:1, oid:1},相應(yīng)的查詢條件改為:

{
 "lastModifiedDay": new Date("2019-04-09 00:00:00.000"),
 "oid": {$gt: "VXZ190"}
} 
-- limit 1000

執(zhí)行結(jié)果如下:

"nReturned" : 1000,
"executionTimeMillis" : 6,
"totalKeysExamined" : 1000,
"totalDocsExamined" : 1000,

...

"indexBounds" : {
    "lastModifiedDay" : [
        "(new Date(1554803000000), new Date(1554803000000))"
    ],
    "oid" : [
        "(\"VXZ190\", {})"
    ]
},
"keysExamined" : 1000,
"seeks" : 1,

這樣優(yōu)化之后,每次查詢最多只掃描1000條記錄,查詢速度是非??斓模?/p>

小結(jié)

本質(zhì)上,這就是一種空間換時(shí)間的方法,即通過存儲(chǔ)一個(gè)額外的索引字段來(lái)加速查詢,通過增加少量的存儲(chǔ)開銷提升了整體的效能。

在對(duì)于許多問題進(jìn)行優(yōu)化時(shí),經(jīng)常是需要從應(yīng)用場(chǎng)景觸發(fā),適當(dāng)?shù)霓D(zhuǎn)換思路。

比如在本文的問題中,是不是一定要增加字段呢?如果業(yè)務(wù)上可以接受不按工單號(hào)排序進(jìn)行讀取,那么僅使用更新時(shí)間字段進(jìn)行分頁(yè)拉取也是可以達(dá)到效果的,具體還是要由業(yè)務(wù)場(chǎng)景來(lái)定。

總結(jié)

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

您可能感興趣的文章:
  • MongoDB 數(shù)據(jù)庫(kù)的命名、設(shè)計(jì)規(guī)范詳解
  • 28個(gè)MongoDB經(jīng)典面試題詳解
  • MongoDB常用數(shù)據(jù)庫(kù)命令大全
  • 修復(fù) Mac brew 安裝 mongodb 報(bào) Error: No available formula with the name ‘mongodb’ 問題詳解
  • MongoDB啟動(dòng)報(bào)錯(cuò) 28663 Cannot start server
  • Node.js操作MongoDB數(shù)據(jù)庫(kù)實(shí)例分析
  • MongoDB數(shù)據(jù)庫(kù)安裝配置、基本操作實(shí)例詳解
  • Windows10安裝MongoDB4.0詳細(xì)步驟及啟動(dòng)配置教程
  • nodejs對(duì)mongodb數(shù)據(jù)庫(kù)的增加修刪該查實(shí)例代碼
  • mongodb基本命令實(shí)例小結(jié)
  • Win10 64位安裝MongoDB數(shù)據(jù)庫(kù)的詳細(xì)教程
  • linux下安裝mongodb教程
  • Python操作redis和mongoDB的方法
  • dotnet core鏈接mongodb代碼實(shí)例
  • Zabbix3.4監(jiān)控mongodb數(shù)據(jù)庫(kù)狀態(tài)的方法
  • Windows安裝壓縮版MongoDB的教程
  • 在Laravel中使用MongoDB的方法示例
  • MongoDB中數(shù)據(jù)的替換方法實(shí)現(xiàn)類Replace()函數(shù)功能詳解

標(biāo)簽:舟山 楚雄 呼倫貝爾 黃石 菏澤 安順 池州 白山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《關(guān)于MongoDB謹(jǐn)防索引seek的效率問題詳析》,本文關(guān)鍵詞  關(guān)于,MongoDB,謹(jǐn)防,索引,seek,;如發(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)文章
  • 下面列出與本文章《關(guān)于MongoDB謹(jǐn)防索引seek的效率問題詳析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于關(guān)于MongoDB謹(jǐn)防索引seek的效率問題詳析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    青草国产精品久久久久久| 精品亚洲免费视频| 成人黄页网站视频| 96精品久久久久中文字幕| 久久美女福利视频| 激情欧美日韩一区二区| 免费无码一区二区三区| 欧美一级在线看| 国产又大又黄又猛| 欧洲天堂在线观看| 亚洲一卡久久| 影音先锋2020色资源网| 日韩黄色大片网站| 亚洲国产精品视频一区| 特一级黄色大片| 欧美老熟妇乱大交xxxxx| 国产丝袜一区二区| 久久精品72免费观看| 久操成人在线视频| 欧美多人爱爱视频网站| 色综合久久久久综合一本到桃花网| 国产精品77777| 一本色道久久综合狠狠躁篇的优点| 久久91成人| 国产91精品在线播放| 欧美一乱一性一交一视频| 97视频中文字幕| 日本欧洲一区二区| 日本免费在线视频不卡一不卡二| 久久密一区二区三区| 自拍偷拍第9页| 黄色在线免费观看大全| 精品色蜜蜜精品视频在线观看| 亚洲国产99精品国自产| 国产成人a亚洲精v品无码| 欧美精品一区二区三区高清aⅴ| 亚洲精品日韩欧美| 欧美一级大片免费看| 一级在线观看| 午夜精品福利在线视频| 国产sm在线观看| 极品在线视频| 欧美日韩成人在线| 久久93精品国产91久久综合| 久久久亚洲综合| 欧美成人xxxxx| 国产私人尤物无码不卡| 精品人妻一区二区三区蜜桃视频| 欧美成人一区二免费视频软件| 国产精品999.| 亚洲色成人www永久网站| 国产国产国产国产国产国产| 岛国大片在线观看| 天堂资源在线亚洲视频| 精品不卡在线视频| 搡的我好爽在线观看免费视频| 国产精品国产成人国产三级| 日韩av片免费在线观看| 91网在线观看| 欧美日韩国产在线一区| 精品一成人岛国片在线观看| 欧美国产日韩综合| 中文字幕精品一区二区三区在线| 日本欧美在线| 裸体一区二区三区| 国产精品久久网站| 视频91a欧美| 欧美日韩国产高清一区| 天天插天天干天天操| 午夜精品剧场| 奇米影视第四色7777| a级毛片免费高清视频| 国产区一区二区三| 99色在线观看| 不卡日本视频| 一起草最新网址| 三级在线观看免费大全| 亚洲色图美国十次| 一区二区三区四区激情| 狠狠狠狠狠狠狠| 欧美一级日韩不卡播放免费| 国产在视频一区二区三区吞精| 成人免费网址| 国产尤物在线视频| 亚洲精品wwww| 成人黄色免费短视频| 国产精品jizz| 亚洲影院中文字幕| 亚洲精品色图| 国产精品av一区| 国产丝袜一区| 91夜夜蜜桃臀一区二区三区| 国产在线一在线二| 国产极品久久久久久久久波多结野| youjizz.com在线观看| 国产综合精品一区二区三区| 欧美精品丝袜中出| 一区二区三区四区视频精品免费| 亚洲一区二区久久久| 91夜夜揉人人捏人人添红杏| 国产av不卡一区二区| 国产精品毛片av| 五月综合激情婷婷六月色窝| 国产精品三级网站| 国产老妇伦国产熟女老妇视频| 波多野结衣欧美| 主播国产精品| 99久久这里只有精品| 日韩在线国产精品| 一区二区视频网| 亚洲乱码国产乱码精品天美传媒| 国内精品国产三级国产99| 欧美激情中文网| 头脑特工队2免费完整版在线观看| 亚洲在线视频网站| 日韩片在线观看| 欧美日韩一区精品| 成人免费黄色在线| 黄网站免费观看| 亚洲国产精一区二区三区性色| 中文字幕69页| 日本aⅴ在线观看| 狠狠狠狠狠狠操| 男人的天堂av网站| 日本午夜人人精品| 日本精品一区二区三区四区的功能| 亚洲国产欧美日本视频| 日日碰狠狠丁香久燥| 日韩人体视频一二区| 亚洲自拍另类欧美丝袜| 国产亚洲欧美日韩精品一区二区三区| 99re在线视频这里只有精品| 成人精品视频一区二区三区尤物| 久久久国产精华液| 精品国产18久久久久久二百| 天天爽夜夜爽一区二区三区| 亚洲一区成人| 成人免费不卡视频| h网站免费看| 蜜臀久久99精品久久一区二区| 欧美精品入口蜜桃| 97精品国产综合久久久动漫日韩| 国产+成+人+亚洲欧洲在线| 亚洲精品tv久久久久久久久久| 亚洲麻豆av| 欧洲第一无人区观看| 男人插女人下面免费视频| 亚洲精品在线免费播放| 国产又黄又猛又爽| 午夜亚洲福利| 日韩av在线免费看| 岛国在线大片| 日日干天夜夜| 国产精品一区二区性色av| 国产一区二区免费| 成人观看网址| 久久久久久高清| 欧洲精品一区二区| 日本高清视频在线播放| 日本精品一区二区三区四区的功能| 亚洲高清不卡一区| 加勒比中文字幕精品| www.涩涩爱| 五月天丁香激情| 高清一级毛片视频| av大大超碰在线| 奇米777影视成人四色| 亚洲激情成人在线| 日韩网址在线观看| 国产成人自拍网站| 日产精品久久久久| 久久久精品国产免大香伊| 国产在线视频一区二区三区| 色先锋久久av资源部| 国产视频视频一区| 亚洲精品视频播放| 黄色小视频免费| 免费在线观看视频| h视频在线观看免费完整版| 国产在线制服美女| 开心久久婷婷综合中文字幕| 久久久久免费看黄a片app| 亚洲精品88| 男女无套免费视频网站动漫| 综合色天天鬼久久鬼色| 美女黄色丝袜一区| 精品少妇一区| 免费看日产一区二区三区| 中国一级特黄毛片| 国产精品电影网| 亚洲影院一区| 亚洲一区二区三区四区五区六区| 亚洲国产色一区| 欧美午夜性囗交xxxx| 欧美日韩亚洲一区三区| 涩涩网站在线看| 中文字幕美女视频| 一区二区三区在线免费视频| 欧美日韩一二三| 少妇又色又爽又黄的视频| 精品福利一区二区| eeuss影院网站免费观看| 国产美女一区视频| 91精品国产高清自在线看超| 亚洲尤物在线视频观看| 伊人网站在线观看| 成人免费高清在线播放| 精品女同一区二区| 婷婷综合网站| 国产噜噜噜噜久久久久久久久| 麻豆精品视频在线原创| 久久精品ww人人做人人爽| 小说区视频区图片区| 日韩av日韩在线观看| 日日摸日日搞日日| 一区二区高清不卡| 97在线免费视频| 亚洲视频网在线直播| 精品亚洲国产成人av制服丝袜| 国产三级一区二区| 丝袜亚洲欧美日韩综合| 给我免费播放片在线观看| av激情久久| 国产欧美自拍视频| www.精选视频.com| 国产精品久久国产精品| 新67194成人永久网站| 国产精品高潮呻吟av| ㊣最新国产の精品bt7086| 亚洲精品乱码久久久久| 欧美做爰猛烈大尺度视频| 欧美在线播放一区二区| 日韩中文在线播放| 久久亚洲精品国产精品紫薇| 未满十八勿进黄网站一区不卡| 2014亚洲片线观看视频免费| 国产精品一区二区亚洲| 亚洲第一欧美| 91tv在线观看| 久久久国产精彩视频美女艺术照福利| 免费黄色网址在线| 亚洲一区二区三区在线| 亚洲激情小视频| 亚洲精品免费一区亚洲精品免费精品一区| 中文字幕一区在线播放| 亚洲欧洲精品一区| 欧美人妻精品一区二区免费看| 亚洲午夜久久久久久久久红桃| 亚洲欧洲久久久| 婷婷成人激情| 91老司机在线| 亚洲一区亚洲二区| 先锋影音av资源在线| 成人影院大全| 日产午夜精品一线二线三线| 看全色黄大色黄女片18| 国产成人免费av| 草莓视频丝瓜在线观看丝瓜18| 这里只有久久精品视频| 亚洲第一福利网| 国产精品色婷婷视频| 一个人看的www日本高清视频| 日本精品va在线观看| 91精品国产高久久久久久五月天| av观看网址| 精品人妻一区二区三区换脸明星| 欧美色视频一区二区三区在线观看| 精品国产免费无码久久久| 亚洲综合一二三| 亚洲手机成人高清视频| 亚洲一区在线直播| 精品少妇一区二区三区| 国产在线观看黄| 潮喷失禁大喷水aⅴ无码| 亚洲欧洲日韩综合一区二区| 欧美 日韩 国产 成人 在线| 欧美日韩和欧美的一区二区| 亚洲欧洲日产国产网站| 色吊丝一区二区| 国产草草浮力影院| 日韩国产欧美精品| 97久久夜色精品国产| 亚洲欧美国产精品va在线观看| 日韩精品专区在线影院观看| 亚洲天堂电影网| 亚洲欧美伊人| 日韩免费观看高清完整版在线观看| 视频一区视频二区欧美| 一区二区三区中文免费| 国产精品久久久久久久裸模| 免费成人毛片| 欧妇女乱妇女乱视频| 精品人妻一区二区三| 丁香五月网久久综合| 亚洲欧美一区二区激情| 精品久久久久久中文字幕2017| 欧美日韩理论| 亚洲乱妇老熟女爽到高潮的片| 精品一区二区视频| 精品视频国内| 亚洲欧美视频在线| 国产极品在线视频| 99热一区二区三区| 成年人视频网址| 粉嫩的18在线观看极品精品| 色婷婷亚洲十月十月色天| 天天爽夜夜爽人人爽| www.色多多| 日本高清视频一区| 红桃av在线播放| 韩日视频一区| 91 在线视频观看| 国产aⅴ2021| 精品国产二区在线| 一级日韩一区在线观看| 亚洲三级在线播放| 成人欧美一区二区三区视频| 视频在线观看一区二区| 羞羞网站在线免费观看| 男人的天堂亚洲| 国产一区二区精品丝袜| 亚洲一区二区乱码| 国产精品美女久久久久人| 亚洲人成伊人成综合网久久久| 国产原厂视频在线观看| 国产精品zjzjzj在线观看| 日韩久久精品电影| 亚洲欧洲精品成人久久奇米网|