亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Java操作MongoDB實(shí)戰(zhàn):從驅(qū)動(dòng)選型到性能調(diào)優(yōu)的完整指南

Java操作MongoDB實(shí)戰(zhàn):從驅(qū)動(dòng)選型到性能調(diào)優(yōu)的完整指南 1. 為什么要在 Java 里折騰 MongoDB很多做后端的朋友第一次接觸 MongoDB都是在“大數(shù)據(jù)從入門(mén)到實(shí)戰(zhàn)”這類課程或者實(shí)驗(yàn)里。老師丟過(guò)來(lái)一個(gè) JSON 文檔說(shuō)“把它存進(jìn)去再查出來(lái)”然后你就開(kāi)始裝驅(qū)動(dòng)、寫(xiě)連接、跑測(cè)試??雌饋?lái)簡(jiǎn)單但真到項(xiàng)目里問(wèn)題就來(lái)了連接怎么管、文檔怎么映射、查詢?cè)趺磳?xiě)才不慢、批量插入怎么優(yōu)化。這些坑實(shí)驗(yàn)手冊(cè)上通常不會(huì)寫(xiě)。這篇內(nèi)容就是圍繞“Java 和 MongoDB 配合使用”這個(gè)核心場(chǎng)景把從環(huán)境搭建到增刪改查、再到性能調(diào)優(yōu)的完整鏈路拆開(kāi)講一遍。適合已經(jīng)會(huì)寫(xiě) Java、但對(duì) MongoDB 還停留在“聽(tīng)說(shuō)過(guò)”階段的開(kāi)發(fā)者也適合做過(guò)實(shí)驗(yàn)但沒(méi)真正理解背后機(jī)制的同學(xué)。我會(huì)盡量用從業(yè)者的視角把每一步的“為什么”講清楚而不是只丟一段能跑的代碼。MongoDB 在 Java 生態(tài)里的定位很明確它是一個(gè)面向文檔的 NoSQL 數(shù)據(jù)庫(kù)數(shù)據(jù)以 BSON類似 JSON 的二進(jìn)制格式存儲(chǔ)天然適合字段不固定、嵌套結(jié)構(gòu)多、讀寫(xiě)量大的場(chǎng)景。Java 這邊官方提供了mongodb-driver-sync和mongodb-driver-reactive兩套驅(qū)動(dòng)前者同步阻塞、上手快后者基于響應(yīng)式流、適合高并發(fā)。實(shí)驗(yàn)里通常用同步驅(qū)動(dòng)就夠了但如果你在做大數(shù)據(jù)方向的實(shí)戰(zhàn)理解兩者的取舍很有必要。我見(jiàn)過(guò)太多人把 MongoDB 當(dāng) MySQL 用建一堆關(guān)聯(lián)集合然后抱怨查詢慢。這不是 MongoDB 的問(wèn)題是用法的問(wèn)題。所以下面我會(huì)先講整體設(shè)計(jì)思路再落到具體操作最后把常見(jiàn)坑一個(gè)個(gè)填上。2. 整體設(shè)計(jì)與技術(shù)選型思路2.1 同步驅(qū)動(dòng)還是響應(yīng)式驅(qū)動(dòng)別選錯(cuò)Java 連 MongoDB第一步就是選驅(qū)動(dòng)。官方現(xiàn)在主推兩個(gè) artifact驅(qū)動(dòng)類型Maven 坐標(biāo)適用場(chǎng)景學(xué)習(xí)曲線同步驅(qū)動(dòng)org.mongodb:mongodb-driver-sync傳統(tǒng) Web 應(yīng)用、批處理、實(shí)驗(yàn)練習(xí)低響應(yīng)式驅(qū)動(dòng)org.mongodb:mongodb-driver-reactive高并發(fā)、流式處理、Spring WebFlux中高Spring Data MongoDBorg.springframework.data:spring-data-mongodb需要 Repository 抽象、快速開(kāi)發(fā)低實(shí)驗(yàn)場(chǎng)景我建議直接用同步驅(qū)動(dòng)原因是它的 API 直觀報(bào)錯(cuò)信息清晰調(diào)試方便。響應(yīng)式驅(qū)動(dòng)雖然性能上限高但Publisher、Subscriber這套概念對(duì)新手不友好一旦背壓處理不當(dāng)反而容易出現(xiàn)數(shù)據(jù)丟失或者內(nèi)存堆積。如果你是在 Spring Boot 項(xiàng)目里用那spring-data-mongodb是更省事的選擇它把MongoTemplate和MongoRepository都封裝好了。但要注意封裝越厚出問(wèn)題時(shí)排查越難。我個(gè)人的習(xí)慣是實(shí)驗(yàn)和調(diào)優(yōu)階段用原生同步驅(qū)動(dòng)業(yè)務(wù)開(kāi)發(fā)用 Spring Data兩者不沖突。2.2 連接方式單機(jī)、副本集還是分片MongoDB 的部署形態(tài)直接決定 Java 端的連接字符串怎么寫(xiě)。常見(jiàn)三種單機(jī)模式mongodb://localhost:27017實(shí)驗(yàn)夠用但沒(méi)有高可用。副本集模式mongodb://host1:27017,host2:27017,host3:27017/?replicaSetrs0生產(chǎn)標(biāo)配支持自動(dòng)故障轉(zhuǎn)移。分片集群模式通過(guò)mongos路由連接mongodb://mongos1:27017,mongos2:27017適合海量數(shù)據(jù)。實(shí)驗(yàn)里基本都是單機(jī)但你要知道單機(jī)連接字符串和副本集連接字符串的寫(xiě)法差異不只是多個(gè)地址。副本集必須帶replicaSet參數(shù)否則驅(qū)動(dòng)可能以單機(jī)模式連接導(dǎo)致讀寫(xiě)關(guān)注readConcern/writeConcern行為不符合預(yù)期。提示連接字符串里的?replicaSetxxx不是可選項(xiàng)。漏掉它驅(qū)動(dòng)不會(huì)自動(dòng)發(fā)現(xiàn)主節(jié)點(diǎn)故障轉(zhuǎn)移就失效了。2.3 文檔映射POJO 還是 DocumentJava 是強(qiáng)類型語(yǔ)言MongoDB 是弱 schema 的文檔數(shù)據(jù)庫(kù)兩者之間的映射是核心問(wèn)題。驅(qū)動(dòng)提供了兩種方式直接用Document對(duì)象本質(zhì)是一個(gè)MapString, Object靈活但類型不安全字段名寫(xiě)錯(cuò)要到運(yùn)行時(shí)才發(fā)現(xiàn)。用 POJO PojoCodecProvider把 Java 對(duì)象自動(dòng)轉(zhuǎn)成 BSON類型安全代碼可讀性好。實(shí)驗(yàn)里為了看清底層結(jié)構(gòu)通常先用Document。但真實(shí)項(xiàng)目我強(qiáng)烈建議用 POJO 映射配合BsonProperty、BsonId這些注解能省掉大量手工拼裝代碼。代價(jià)是需要注冊(cè)CodecProvider配置稍微多幾行。CodecProvider pojoCodecProvider PojoCodecProvider.builder() .automatic(true) .build(); CodecRegistry pojoCodecRegistry fromRegistries( MongoClientSettings.getDefaultCodecRegistry(), fromProviders(pojoCodecProvider) );這段代碼的意思是在默認(rèn)編解碼器基礎(chǔ)上追加自動(dòng)掃描 POJO 的能力。automatic(true)會(huì)讓驅(qū)動(dòng)自動(dòng)為你的實(shí)體類生成編解碼器不用一個(gè)個(gè)手動(dòng)注冊(cè)。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)3.1 環(huán)境準(zhǔn)備依賴、版本、連接池先看依賴。Maven 項(xiàng)目里加這一條就夠同步驅(qū)動(dòng)用了dependency groupIdorg.mongodb/groupId artifactIdmongodb-driver-sync/artifactId version4.11.1/version /dependency版本選擇有個(gè)經(jīng)驗(yàn)驅(qū)動(dòng)版本和 MongoDB 服務(wù)端版本不需要完全一致但驅(qū)動(dòng)大版本不要落后服務(wù)端太多。比如服務(wù)端是 6.x驅(qū)動(dòng)用 4.9 以上比較穩(wěn)。驅(qū)動(dòng) 5.x 開(kāi)始要求 Java 8 以上實(shí)驗(yàn)環(huán)境如果是 JDK 8用 4.x 系列最省心。連接池是另一個(gè)容易被忽略的點(diǎn)。MongoClient內(nèi)部自帶連接池默認(rèn)最大連接數(shù)是 100。實(shí)驗(yàn)里無(wú)所謂但如果你在壓測(cè)這個(gè)值要調(diào)MongoClientSettings settings MongoClientSettings.builder() .applyConnectionString(new ConnectionString(mongodb://localhost:27017)) .applyToConnectionPoolSettings(builder - builder.maxSize(200) .minSize(20) .maxWaitTime(5, TimeUnit.SECONDS)) .build(); MongoClient client MongoClients.create(settings);maxSize是連接池上限minSize是保底連接數(shù)maxWaitTime是拿不到連接時(shí)的最大等待時(shí)間。這三個(gè)值要結(jié)合你的并發(fā)量來(lái)定。我的經(jīng)驗(yàn)是maxSize設(shè)為預(yù)期并發(fā)線程數(shù)的 1.2 倍左右minSize設(shè)為maxSize的 10% 到 20%避免每次請(qǐng)求都新建連接。注意MongoClient是線程安全的整個(gè)應(yīng)用生命周期內(nèi)只應(yīng)該創(chuàng)建一個(gè)實(shí)例。每次請(qǐng)求都MongoClients.create()是最常見(jiàn)的性能殺手連接池會(huì)被反復(fù)創(chuàng)建銷(xiāo)毀開(kāi)銷(xiāo)極大。3.2 數(shù)據(jù)庫(kù)與集合懶創(chuàng)建機(jī)制MongoDB 有個(gè)和 MySQL 很不一樣的地方數(shù)據(jù)庫(kù)和集合是懶創(chuàng)建的。你getDatabase(test)的時(shí)候如果test不存在它不會(huì)報(bào)錯(cuò)也不會(huì)立刻創(chuàng)建只有第一次寫(xiě)入數(shù)據(jù)時(shí)才真正建庫(kù)建集合。MongoDatabase database client.getDatabase(experiment_db); MongoCollectionDocument collection database.getCollection(students);這兩行執(zhí)行完數(shù)據(jù)庫(kù)里其實(shí)什么都沒(méi)有。直到你執(zhí)行insertOneexperiment_db和students才會(huì)出現(xiàn)。這個(gè)機(jī)制的好處是靈活壞處是你沒(méi)法在插入前檢查集合是否存在——因?yàn)闄z查結(jié)果永遠(yuǎn)是“不存在”。如果你需要顯式創(chuàng)建集合比如要指定分片鍵或者校驗(yàn)規(guī)則得用createCollectiondatabase.createCollection(students, new CreateCollectionOptions() .validationOptions(new ValidationOptions() .validator(Filters.exists(name))));上面這段給students集合加了一個(gè)校驗(yàn)規(guī)則插入的文檔必須包含name字段。這是 MongoDB 少有的“schema 約束”手段適合對(duì)數(shù)據(jù)質(zhì)量要求高的場(chǎng)景。3.3 增刪改查從 Document 到 POJO先看最基礎(chǔ)的插入。用Document拼裝Document doc new Document(name, A同學(xué)) .append(age, 22) .append(courses, Arrays.asList(math, physics)) .append(address, new Document(city, 某市).append(zip, 100000)); collection.insertOne(doc);嵌套文檔和數(shù)組直接往里塞就行這是 MongoDB 相比關(guān)系型數(shù)據(jù)庫(kù)最直觀的優(yōu)勢(shì)。查詢也簡(jiǎn)單Document query new Document(age, new Document($gte, 20)); FindIterableDocument results collection.find(query); for (Document d : results) { System.out.println(d.toJson()); }$gte是大于等于MongoDB 的查詢操作符都以$開(kāi)頭。常用的還有$lt、$in、$exists、$regex。這里有個(gè)坑$regex如果不用索引在大集合上會(huì)全表掃描性能極差。實(shí)驗(yàn)數(shù)據(jù)少看不出來(lái)生產(chǎn)環(huán)境能拖垮整個(gè)庫(kù)。用 POJO 的話先定義實(shí)體public class Student { BsonId private ObjectId id; BsonProperty(name) private String name; private int age; private ListString courses; // getter/setter 省略 }然后注冊(cè)編解碼器用MongoCollectionStudent操作MongoCollectionStudent studentColl database .getCollection(students, Student.class); studentColl.insertOne(new Student(A同學(xué), 22, Arrays.asList(math)));BsonId標(biāo)記主鍵BsonProperty指定字段在 BSON 里的名字。如果 Java 字段名和 BSON 字段名一致注解可以省略。POJO 方式的好處是編譯期就能發(fā)現(xiàn)字段拼寫(xiě)錯(cuò)誤IDE 還能自動(dòng)補(bǔ)全。3.4 索引查詢性能的分水嶺MongoDB 默認(rèn)只在_id上建索引。其他字段的查詢?nèi)绻唤ㄋ饕褪侨蠏呙?。?shí)驗(yàn)數(shù)據(jù)幾百條無(wú)所謂上萬(wàn)條就能明顯感覺(jué)到卡頓。建索引的代碼collection.createIndex(Indexes.ascending(name)); collection.createIndex(Indexes.compoundIndex( Indexes.ascending(age), Indexes.descending(name) ));第一個(gè)是單字段升序索引第二個(gè)是復(fù)合索引age 升序 name 降序。復(fù)合索引的字段順序很重要遵循“最左前綴”原則查詢條件里必須包含索引的第一個(gè)字段索引才可能被用上。查看索引有沒(méi)有生效用explaincollection.find(Filters.eq(name, A同學(xué))) .explain(ExplainVerbosity.EXECUTION_STATS);輸出里關(guān)注winningPlan的stage字段。如果是COLLSCAN說(shuō)明走了全表掃描如果是IXSCAN說(shuō)明索引生效了。這個(gè)排查方法我每次調(diào)優(yōu)都會(huì)用比猜靠譜得多。提示索引不是越多越好。每個(gè)索引都會(huì)占用存儲(chǔ)空間并且拖慢寫(xiě)入速度。因?yàn)槊看尾迦?、更新都要同步維護(hù)索引。一般單集合索引數(shù)量控制在 5 個(gè)以內(nèi)。4. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 完整實(shí)驗(yàn)流程從零到可運(yùn)行假設(shè)你拿到一個(gè)實(shí)驗(yàn)任務(wù)用 Java 連接本地 MongoDB插入 1000 條學(xué)生數(shù)據(jù)然后按年齡范圍查詢并統(tǒng)計(jì)。下面是我會(huì)走的完整流程。第一步確認(rèn) MongoDB 服務(wù)在跑。命令行執(zhí)行mongosh能進(jìn)去就行。然后建 Maven 項(xiàng)目加驅(qū)動(dòng)依賴寫(xiě)一個(gè)MongoDemo類。第二步初始化客戶端。這里我用try-with-resources確保關(guān)閉try (MongoClient client MongoClients.create(mongodb://localhost:27017)) { MongoDatabase db client.getDatabase(experiment_db); MongoCollectionDocument coll db.getCollection(students); // 后續(xù)操作 }第三步批量插入。注意不要循環(huán)insertOne那樣 1000 條就是 1000 次網(wǎng)絡(luò)往返。用insertManyListDocument docs new ArrayList(); for (int i 0; i 1000; i) { docs.add(new Document(name, student_ i) .append(age, 18 (i % 10)) .append(score, Math.random() * 100)); } coll.insertMany(docs);insertMany默認(rèn)是有序插入遇到錯(cuò)誤會(huì)停止。如果希望跳過(guò)錯(cuò)誤繼續(xù)插加new InsertManyOptions().ordered(false)。第四步范圍查詢加統(tǒng)計(jì)。查詢年齡在 20 到 22 之間的學(xué)生Bson filter Filters.and( Filters.gte(age, 20), Filters.lte(age, 22) ); long count coll.countDocuments(filter); System.out.println(符合條件的人數(shù) count);Filters.and把多個(gè)條件組合起來(lái)比手寫(xiě)Document嵌套更清晰。countDocuments會(huì)走索引如果 age 上有索引比f(wàn)ind().size()高效因?yàn)楹笳咭阉形臋n拉到客戶端再數(shù)。第五步建索引再跑一次查詢對(duì)比explain結(jié)果。這一步是實(shí)驗(yàn)里最能體現(xiàn)“優(yōu)化”價(jià)值的地方。4.2 參數(shù)計(jì)算連接池大小怎么定連接池大小不是拍腦袋定的。有個(gè)粗略公式maxSize 預(yù)期QPS × 平均查詢耗時(shí)(秒) / 單連接吞吐舉個(gè)例子預(yù)期 500 QPS平均查詢耗時(shí) 20ms0.02秒單連接每秒能處理約 50 次查詢。那么需要的并發(fā)連接數(shù)大約是500 × 0.02 10考慮峰值留 2 倍余量maxSize設(shè) 20 到 30 就夠。設(shè)成 200 反而浪費(fèi)資源因?yàn)?MongoDB 服務(wù)端每個(gè)連接都要占內(nèi)存。minSize一般設(shè)maxSize的 10% 到 20%保證低峰期也有熱連接可用避免冷啟動(dòng)延遲。maxWaitTime設(shè) 3 到 5 秒超過(guò)這個(gè)時(shí)間還沒(méi)拿到連接說(shuō)明池子太小或者有慢查詢占著連接不放應(yīng)該快速失敗而不是無(wú)限等待。4.3 批量寫(xiě)入的性能對(duì)比我實(shí)測(cè)過(guò)三種寫(xiě)入方式數(shù)據(jù)量 10 萬(wàn)條單機(jī) MongoDB寫(xiě)入方式耗時(shí)說(shuō)明循環(huán) insertOne約 85 秒每次一次網(wǎng)絡(luò)往返最慢insertMany 分批 1000約 6 秒批量提交網(wǎng)絡(luò)開(kāi)銷(xiāo)攤薄bulkWrite 混合操作約 5.5 秒支持插入、更新、刪除混合差距非常明顯。insertMany之所以快是因?yàn)樗讯鄺l文檔打包成一個(gè) BSON 數(shù)組一次網(wǎng)絡(luò)請(qǐng)求發(fā)過(guò)去。但批次不能無(wú)限大MongoDB 單次請(qǐng)求有 16MB 上限。1000 到 5000 條一批是比較穩(wěn)妥的范圍具體看單條文檔大小。bulkWrite更靈活適合“有則更新、無(wú)則插入”的 upsert 場(chǎng)景ListWriteModelDocument writes new ArrayList(); writes.add(new UpdateOneModel( Filters.eq(name, student_1), new Document($set, new Document(score, 95)), new UpdateOptions().upsert(true) )); coll.bulkWrite(writes);upsert(true)表示如果匹配不到就插入新文檔。這個(gè)在數(shù)據(jù)同步場(chǎng)景里特別常用。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 連接超時(shí)與認(rèn)證失敗最常見(jiàn)的報(bào)錯(cuò)是MongoTimeoutException提示Timed out after 30000 ms while waiting for a server。原因通常有三個(gè)服務(wù)沒(méi)啟動(dòng)、地址端口寫(xiě)錯(cuò)、防火墻攔截。排查順序是先mongosh手動(dòng)連一下能連上說(shuō)明服務(wù)沒(méi)問(wèn)題再檢查 Java 端的連接字符串。認(rèn)證失敗報(bào)MongoSecurityException一般是用戶名密碼錯(cuò)或者認(rèn)證數(shù)據(jù)庫(kù)沒(méi)指定。MongoDB 的用戶是掛在某個(gè)數(shù)據(jù)庫(kù)下的連接字符串里要帶authSourcemongodb://user:passlocalhost:27017/experiment_db?authSourceadminauthSourceadmin表示去 admin 庫(kù)驗(yàn)證身份。如果用戶建在experiment_db下就寫(xiě)authSourceexperiment_db。這個(gè)參數(shù)漏掉認(rèn)證必然失敗。5.2 中文亂碼與編碼問(wèn)題Java 默認(rèn)字符集如果是 GBK寫(xiě)入中文可能亂碼。解決辦法有兩個(gè)一是啟動(dòng) JVM 時(shí)加-Dfile.encodingUTF-8二是確保 MongoDB 服務(wù)端和驅(qū)動(dòng)都用 UTF-8。MongoDB 內(nèi)部存儲(chǔ)就是 UTF-8問(wèn)題基本都出在 Java 端。我建議在 IDE 的 Run Configuration 里顯式設(shè)置-Dfile.encodingUTF-8一勞永逸。5.3 查詢慢的排查思路查詢慢先別急著加索引。按這個(gè)順序排查用explain看執(zhí)行計(jì)劃確認(rèn)是不是COLLSCAN。如果是COLLSCAN看查詢條件字段有沒(méi)有索引。如果有索引但還是慢看索引是否被正確使用最左前綴原則。如果索引沒(méi)問(wèn)題看返回?cái)?shù)據(jù)量是不是太大考慮加projection只返回需要的字段。最后看是不是連接池不夠?qū)е抡?qǐng)求排隊(duì)。projection是個(gè)容易被忽略的優(yōu)化點(diǎn)collection.find(filter) .projection(new Document(name, 1).append(age, 1).append(_id, 0));1表示包含該字段0表示排除。只返回需要的字段能顯著減少網(wǎng)絡(luò)傳輸和反序列化開(kāi)銷(xiāo)。實(shí)驗(yàn)里數(shù)據(jù)少感覺(jué)不到生產(chǎn)環(huán)境一個(gè)文檔幾百個(gè)字段只取三個(gè)字段能快好幾倍。5.4 常見(jiàn)問(wèn)題速查表問(wèn)題現(xiàn)象可能原因解決方法MongoTimeoutException服務(wù)未啟動(dòng)/地址錯(cuò)/防火墻先用 mongosh 驗(yàn)證連通性MongoSecurityException認(rèn)證失敗檢查 authSource 參數(shù)中文亂碼JVM 字符集非 UTF-8加 -Dfile.encodingUTF-8查詢慢全表掃描建索引并用 explain 驗(yàn)證寫(xiě)入慢循環(huán)單條插入改用 insertMany 批量寫(xiě)入連接耗盡連接池太小或未復(fù)用客戶端調(diào)大 maxSize復(fù)用 MongoClient內(nèi)存溢出一次查詢返回過(guò)多文檔加 limit 和 projection5.5 幾個(gè)我踩過(guò)的坑第一個(gè)坑在循環(huán)里創(chuàng)建MongoClient。當(dāng)時(shí)寫(xiě)了個(gè)工具類每次調(diào)用都MongoClients.create()壓測(cè)時(shí)連接數(shù)暴漲服務(wù)端直接拒絕新連接。后來(lái)改成單例問(wèn)題消失。MongoClient必須全局唯一這是鐵律。第二個(gè)坑ObjectId和 String 混用。MongoDB 的_id默認(rèn)是ObjectId類型但前端傳過(guò)來(lái)往往是字符串。查詢時(shí)如果直接拿字符串去匹配_id永遠(yuǎn)查不到。正確做法是new ObjectId(str)轉(zhuǎn)換collection.find(Filters.eq(_id, new ObjectId(65a1b2c3d4e5f6a7b8c9d0e1)));第三個(gè)坑更新操作忘了$set。直接傳一個(gè)Document給updateOne會(huì)把整個(gè)文檔替換掉而不是更新指定字段。正確寫(xiě)法是collection.updateOne( Filters.eq(name, A同學(xué)), new Document($set, new Document(age, 23)) );$set只更新指定字段其他字段保持不變。如果確實(shí)想整體替換才用不帶操作符的文檔。這個(gè)區(qū)別在實(shí)驗(yàn)里經(jīng)常被忽略導(dǎo)致數(shù)據(jù)莫名其妙丟失。第四個(gè)坑count()方法已廢棄。老教程里用collection.count()新驅(qū)動(dòng)里改成了countDocuments()。前者是估算值后者是精確計(jì)數(shù)。如果只是要個(gè)大概數(shù)量用estimatedDocumentCount()更快它直接讀元數(shù)據(jù)不掃描集合。6. 從實(shí)驗(yàn)到實(shí)戰(zhàn)的擴(kuò)展方向?qū)嶒?yàn)做完代碼能跑這只是起點(diǎn)。真實(shí)項(xiàng)目里還有幾塊要補(bǔ)一是事務(wù)MongoDB 4.0 之后支持多文檔事務(wù)但只在副本集和分片集群上可用單機(jī)不支持二是聚合管道aggregate能做分組、排序、聯(lián)表功能比f(wàn)ind強(qiáng)得多三是變更流watch可以監(jiān)聽(tīng)集合的實(shí)時(shí)變化適合做數(shù)據(jù)同步和事件驅(qū)動(dòng)。聚合管道我單獨(dú)提一下因?yàn)樗跀?shù)據(jù)分析場(chǎng)景里太常用了。比如按年齡分組統(tǒng)計(jì)平均分collection.aggregate(Arrays.asList( Aggregates.group($age, Accumulators.avg(avgScore, $score)), Aggregates.sort(Sorts.descending(avgScore)) ));$age是分組字段$score是參與平均計(jì)算的字段。聚合管道是分階段執(zhí)行的每個(gè)階段處理上一階段的輸出類似 Unix 管道。理解了這個(gè)模型寫(xiě)復(fù)雜分析就順手了。事務(wù)的使用要謹(jǐn)慎。MongoDB 的事務(wù)性能開(kāi)銷(xiāo)比單文檔操作大得多能不用就不用。大部分場(chǎng)景下通過(guò)合理的數(shù)據(jù)建模把關(guān)聯(lián)數(shù)據(jù)嵌入同一個(gè)文檔就能避免跨文檔事務(wù)。這也是 MongoDB 設(shè)計(jì)的初衷用文檔模型減少關(guān)聯(lián)而不是像關(guān)系型數(shù)據(jù)庫(kù)那樣靠事務(wù)保證一致性。最后說(shuō)一句我個(gè)人的體會(huì)MongoDB 的 Java 驅(qū)動(dòng) API 設(shè)計(jì)得挺克制核心就是MongoClient、MongoDatabase、MongoCollection三層。把這三層的關(guān)系理清楚剩下的就是查文檔拼參數(shù)。實(shí)驗(yàn)里多花點(diǎn)時(shí)間看explain輸出比盲目調(diào)參有用得多。索引和批量寫(xiě)入這兩個(gè)點(diǎn)吃透基本就能應(yīng)付大部分實(shí)戰(zhàn)場(chǎng)景了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
性色中出| 国内黄色精品| 国产一国产一级毛片古装| 亚洲s在线观看| 97超碰色屌| 色大香蕉97N| 超碰97人人乐| 欧洲久久一二线| 国产精品一区二区a| 操逼片中文| 国产女人高潮视频| 色偷综合| 女同女同恋久久级三级| 92人人操人人| 天天影视网综合少妇| 超碰97色色| 中国特猛少妇色xxx| 国产高清吃奶免费视频网站| 99自拍视频在线观看| 久久久穴999| 国产路线专区| 中文字幕一区av| 超碰久久精品| 亚洲日韩美女中文字幕乱| 自拍欧美| 国产高清午夜成人在线观看| 日韩人妻少妇 一区二区三区| 久久草视频污视频| 人人爱人人乐人人操| 秋霞视频一区二区| 天堂资源站| 欧美精品23| 久久超碰大香蕉| 无码不卡八戒| 亚洲丝袜色| 玖玖超碰熟| 亚洲色欲天天天堂色欲网女| 欧美人妻色| 一级做a爰片性色毛片久久| 亚洲色图91欧美日韩| 亚洲欧美碰碰| 亚洲精品天天影视综合网| 色综合一区二区三区| 超碰久热| 加勒比综合在线| 亚洲一区日韩精品| 91熟女视频网| 亚洲国产午夜真人一级片中文字幕精品黄网站| 黄资源| 亚川综合视频| 国产久久视频| 国产精品一区二区 尿失禁| 久久黄黄黄| 婷婷激情四射| 日日插夜夜| 国产日韩中文字幕欧美| 熟女乱伦二区| 东北女人高潮视频| 久久久一区二区三区四曲免费听 | 激情抓乳插进去啪啪啪日韩 | 日韩精品一二三四| 综合久久久久久久久91| 日韩少妇在线视频| 伊人激情| 中文字幕精品免费一区二区| 天堂av最新电影网| 欧美熟女丝袜| 日韩性爱视频免费在线| 黄页网站成人免费| 激情网五月天| 中文字幕日韩人妻视频| 日韩三级av片| 久操在97| 日日干夜夜操视频h| 岛国片在线视频网站| 91精品少妇搡搡搡| 色色丁香| 亚洲乱码尤物193YW| 亚洲天堂久久久久久粉红视频| 诱惑人妻欧美一区在线播放| 极品五月天噜噜| 国产偷人伦激情在线观看| 91国精产品| 亚洲天堂7777| 亚洲乱色熟女一区| 男人天堂新在线| 欧美性爱网97| 熟女丰满人妻一区| 免费观看啪视频| 无遮挡又黄又刺激的视频| 国产精品欧美激在线| 亚洲婷婷五月天| 国产精品婬乱一级毛片彝族| 日韩欧美亚洲自拍偷拍| 色香综合天天影视综合| 欧美狠狠操| julia高潮后不停追击中出| 丝袜剧情| 午夜精品久久久久久久久久久久久| 色婷婷丁香五月| 欧美,日韩综合久久| 骚妻少妇精品性色无码四色A V| 影音综合网| 熟女精品一区二区三区| 天美精品av| 久操精品网| 国产偷拍自拍在线视频| 91爆操视频| 人妻啪| 一级一性爱免费视频| 超碰综合97在线| 亚洲男人的天堂网| 人妻激情在线视频| 韩国国产欧美情侣视频在线| 亚州高清色综合| 99精品在线观看| 国产日韩在线播放av| 成人九九| 天天日天天干天天摸天天操| 亚洲色婷婷综合久久一区二区三区| 99热这里只有是精品10| 日本免费一区二区不卡| 日韩精品99久久久久久中文字幕| 狠狠狠狠狠| 精品成人av一区二区三区在线| 日韩欧美一级特黄大片| 国产a级午夜毛片| 超碰碰激情97+久| 中文字幕一区 二 区 三 四 五 区日 日 骚| 国产欧美伊人| 一区二区三区男女操逼黄色小电影| 伊色综合天堂色97| 少妇69中文| 色妇91| 国产精品粉嫩福利在线| 久久久涩| 蜜臀久久99精品久久久| 天天插夜夜操| 强奸乱伦动态污图免费 | 中文字幕免费在线观看| 综合久久99| 国产精品点击进入在线影院高清| 国产日韩无码一区二区三区久久区| 亚洲免费成人在线高清无码视频 | 日产精品久久久一区二区| 中文字幕第二页| 加勒比aⅴ| 久久精品国产精品一区| 999国产精品999| 色播五月丁香| 夜夜嗨一区| 黄页av| 操逼大黄片| 欧美,日韩,亚洲视频| 国产亚洲在线| 亚洲欧美中文日韩视频中国语| 丁香六月婷婷久久综合| 欧美少妇高潮久久91| 日韩午夜精品一区二区三区电影| 老司机天天操| 国产激情久久久| 国产农村妇女精品1区二区| 少妇内射视频| 夜夜草我| 婷婷久久综合久| 中美日韩毛片| 中文字幕精品码亚洲| av中亚| 日韩精品在线观看观看| www.色婷婷.com| 亚洲宗合电影| 无码粉嫩白虎一线天b区| 欧美自拍偷拍综合图片| 国产免a费看黄片在线| 欧美一级久久久丰满| 久久9视频| 亚洲色9| 碰碰97| 97人妻免费中文字幕| 91啪9色| 国产久9| 国产熟女精品一区二区| 91亚州日韩高清| 91少妇通奸网站| 国产成人超碰在线| 啪啪视频mP4| 久久久不卡区一区二区三区久久久| 日日骚一区二区三区| 亚洲欧美综合| 97人人干| 人伦四五区| 亚州日韩97| 亚洲少妇视频| 久久综合五月天| 亚洲熟女乱色一区二区三区久久久| 亚洲丝袜诱惑| 亚洲国产高清福利视频| 欧美性天天影院| 亚洲精品国语在线播放| 澳门成人网站久国产日韩| 久久久啊啊啊| 久久久久9| 欧美熟妇亚洲版| 久久久久久69国产一区二区| 伊人久久大香线综合无码| 天天综合-91入口| 超碰久热| 蜜臀99久久国产| {男男暴菊gay无套网站| 婷婷五月天久久精品视频一区二区三区| 极品肉射| 91肏屄网| 精品视频一区二区| 亚洲棕合电彰| 岛国片在线播放| 国产AV天美| 国产一区二区三区久久久精品| 91色图片| 五十路三级片| 后入式五六区| www.丁香五月| 日韩成人私密一级精品av| 亚洲中文字幕妇伦久久| 极品欧美一区二区三区| 日韩99精品视频综合区| 九九成人精品| 日本色色网| 中文视频在线观看| 天天摸夜夜操视频| 国产一区二区三区导航| 97中文综合| 天天干,夜夜爽| 九七超碰人人乐| 久无码| 91天堂| 黑丝少妇在线观看| 草草影院最新网址| 欧美草草高清日韩视频| 91偷拍欧美亚洲| 亚洲性爱免费电影| 啊啊啊好大好深| 视频在线观看一二三区| 操逼片国产| 久久综合超碰| 婷婷色导航| 久久欲| 高清肉丝中文无码| 久久九九97| 九九毛片这里只有精品| 91在线超高颜值国产| 欧美色图片欧美色图| 夜夜操狠狠操| 国产色精品午夜大片| 狠狠爱夜夜| 欧美熟妇乱码在线一区| 中文字幕第2页| 日日骚 av| 被体育老师抱着c到高潮| 欧美不卡五十路| 日韩资源网| 色香色香欲天天天影视综合网| 午夜激情床戏激情| 91高清无码下载| 欧美AB在线| 夜草欧美| 91黑丝美女| 国模少妇一区二区三区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 操人妻少妇中文| 永久免费发布性爱网| 天天综合网网欲色| 久久久亚洲精品中文字幕人妻| 亚洲97P| 97综合在线| 97资源视频| 亚洲无线观看久久| 91夜色| 78精品在线| 9长久久精品| 91女人的网站| 久久9亚洲| 激情第四色| 国产超碰| 亚洲综合另类| 欧美激情精品| 亚洲黄色电影| 91色宗合| 女人综合网| 操死我了嗯嗯嗯| 亚洲精品久| 狠狠爱综合网| 亚洲成人免费在线| 亚洲综合色婷婷| 热的中文 热的有码 热的国产| 色一射色一射| 中文字幕乱碼在线| 偷拍五区| 欧美综合 站| 伊人伊人LD| 欧美在线啊啊啊| 91新在线欧美| 久久久久网站-538在线视频-欧美永久乱码| 澳门成人网站久国产日韩| 欧美|91色综合| 欧美日韩情色一区二区| 亚洲 中文 女同| 久久婷婷一区二| 混色激情av| 天美国产三级传媒| 欧洲与亚洲欧美精品中文字幕| 亚洲Av噜噜一区二区三区妖精| 欧美少妇第一页| 超碰人妻久久人妻中文97| 色 婷97| 天天看片麻豆| 国产青青美女玩逼视频| 国产后入清纯| 久久精品国产亚洲粉嫩| 综合久久少妇中文字幕| 操逼日批| 精品久久久久av影院| 超碰在线香蕉| 大香蕉宗合网在线| 97看操| 精品女同一区| 女人综合网| 黄色操人| 久久精品色欧美aⅴ一区二区| 亚洲精品三| 国产欧美日韩女同性恋ww喷水精品 | aaaa少妇高潮大片| 欧美|91色综合| 狠狠操一区二区| 少妇色综合| 97国产中文| 亚洲色人| 日本人人操人人操| 日本特黄f c2| 天天内射| 777超碰| 一级岛国大片| www色色com| 欧美性爱一区| 欧美亚州综合网图片| 东北毛片| 欧美一区二区三区日韩| 麻豆精品久久久久久久| 日本二区不卡| 日韩人妻有码免费视频| 91碰碰| 黄色高清久久无码依人| 91老妇女| 国产成人无码a| 中文字幕123| 欧美一区二区情色| 日日摸天天爽夜夜欢| 一级@啪啪视频| 婷婷五月天福利| 传媒免费一区二区三区| 天美传媒精品一区二区| 欧美视频中文字幕区| 啊啊啊啊啊操我视频| 18精品一二区| 亚洲蜜乳av| 久久秀这里有精品| 国产一线二线三线av| 欧美日韩激情无码专区| 国产乱伦视频污| 伊人久久大香大香线蕉中文| 欧美97视频| 97超碰久久| 久久精品色欧美aⅴ一区二区| 麻豆AV短剧| 国产捆绑一区| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 中文字幕日韩电影人妻| 久久侵犯人妻爽爽爽| 亚洲国产精品久久久久婷婷老年 | 国产一区二区精品在线视频| 人人操我人人干| 懂色AV一区二区三区| 女人18精品一区二区三区| www.91人妻.com| 91久青| 蜜臀久久久99久久久久| 国产精品久久久鸭无码的功能| 97在线观看免费视频l| 欧美第一页| 偷拍 精品另类 凸凹了四区| 东京热大香蕉| 另类图片五月| 视频一区二区免费在线| 婷婷伊人一区| 亚洲影院成人| 加勒比综合九九99视频在线播放| 乱伦日本中文自拍| 欧美 日韩 国产传媒| 天堂69亚洲精品中文字| 国产性感在线观看| 91精品微拍福利| 影音综合网| 日韩熟女操逼| 日韩 欧美 校园一区| 国产福利视频精品视频| 亚州色图狠狠干| 日本精品人妻少妇一区二区| 色婷婷六月丁香七月婷婷| 超碰97色色| 新久久AV| 青青草好吊| av婷婷色婷婷色六月| 色香网| 婷婷午夜| 欧美爱爱97| 国产性刺激| 日韩精品在线观看观看| 97在线免费公开视频| 99成人| 人人搞人人插人人操| 久久熟妇五十路一区| 翔田千里AⅤHD无码| 午夜福利在线合集| 欧美在线播放aaaa| 视频一区二区免费在线| 精品人妻一区春色| 国产激情视频在线观看| 欧美国产精品久久九九| 黄色十八禁| 九九热精品| 亚洲码在线中文在线观看| 香蕉免费一区二区三区不读| 国产又色又爽又舒服的三级视频| 2017av无码免费无线播| 久久人妻一区二区三区高清 | se01国产在线视频| 亚洲在线观看| 成 人 影视 一区 二区 三区 四区| 最新日日夜夜天天干干| 久久在肏| 走光一区92下载| 日本一级黄色电影| 免费观看国产不卡av| 抽插一区二区视频| 亚洲限制级| 99在线免费观看| 岛国网址国产 | 大肉棒导航| 婷婷色五月激情| 国内毛片热久久思思热| 欧美色爱综合| 伊人991| 亚洲黑丝在线| 亚洲国产奇米影视久久| 婷婷伊人五月| 亚洲一区二区中文字幕| 妇人噜噜| 性色avv| 91精品无码人妻系列| 国产乱伦视频污| 又黄又硬又粗又长国产视频| 超碰在线97国产| 91爽啪| 人人操人人摸人| 色综合av综合久久| 超碰99re| 国产精品久久久久久久久久久久久久| 成人天天爽| 欧美综合97www| 91九色网| 超碰碰碰碰| 天天色天天干天天射| 2020久久免费视频| 91青青草| 欧美天天射| 亚洲影视高清第一页| 四虎884a| 色婷婷蜜臀av| 97网址www| 丁香五月成人| 亚洲无码99| 这里都是精品在线观看| 亚洲乱码尤物193YW| 手机在线中文字幕国产| 精品视频免费在线一区| 亚洲国产婷婷在线播放| 亚洲av综合色| 人妻少妇被猛烈进入中| 国产东北女人在线视频| 日韩AV无码中文一区二区| 手机在线A片| 国产精品亚洲天堂网址| 国产特级毛片AAAAAA高潮流水| 九九九精品成人免费视频小说| 国产福利合集| 国产精品美女视频诱惑| 女性喷水高潮在线观看| 日韩精品在线视频,日韩精品……| 日韩小电影| 热热色中文无码| 另类欧美色| 天天射夜夜操| 无码高清操逼网址| 国产黄片在线免费观看| 欧亚性爱视频免费看| 在线v中文字幕一区二区三区 | 国产精品 视频| 人人模人人看| 国产一区二区三区久久久精品| 亚洲无码免费看| 一区二区三区四区免费视频| 国产成人无码久久精品| 99re9在线| 欧美色997| 青青伊人久久| 色路综合| 黑人精品XXX一区一二区| 老司机深夜18禁污污网站| 亚洲自拍天堂| 操91| 亚洲激情色片| 五月天亚洲网| 欧美97爱| 欧美一级久久久久久久大片动画| 91精品人妻电影| 亚洲综合另类| 看黑丝美女操逼青青网站| h色99999| 久久久性| 久久精品中文字幕无码l| www.夜夜操| 欧美97在线观看| 久久精品日韩专区免费观看| A级在线视频| 九九探花视频在线观看| 久久亚洲影院一区二区| 亚洲美女黄色| 欧美性爱第一页久久| JIZZJIZZ国产精品喷水| 久久久影院| 内射中国少妇高清视频免费视频| 日本506070| 无码精品人妻一区二区三区妖精| 熟女丰满人妻一区| 韩日自拍| 老熟女乱伦一区| 中文字幕在线观看二区三区| 无码人妻丰满熟妇奶水区毛片| 欧美久久人体| 午夜无遮挡男女啪啪视频| 中文字幕在线观看视频www| 欧美五区| 欧美色狠| 激情综合亚洲| 久草毛片| 91快色色色色色| julia在线观看久久| 亚洲欧美综合图片| 日韩成人性爱电影在线播放| 日韩9999| 久久黄片国产一区二区| 日本高清电影欧美色图| 99草精| 91成人精品在线播放| 韩国轻伦国内自拍一区| 992大香蕉| 五月天婷精品激情| 欧美综合网1| 日本人妻伦在线中文字幕| 99热综合| 青青草这里只有精品| 黄色电影观看久久9| 国产性感骚丝袜在线| 丰满人妻-区二区三区免费看| 国产美女mm131爽爽爽爽| 91久久堂| 日韩中文字幕精品一区在线| 综合 青草 伊久久 影院 综合 | 亚av顶级裸体一区二区三区四区五区 | 电影69乱码96| 亚洲色阁| 麻豆2区1区天美| julia国产在线| 日本日皮视频逼| AV久日| 尤物一级在线免费观看| 亚洲文学偷乱拍啪啪啪啪| 巨爆乳一区二区爆乳区| 熟女一区二区三区| 做爱A级亚欧| 亚洲文学偷乱拍啪啪啪啪| av绯色| 黄久在线| 亚洲强奸乱伦影视网| 麻豆区久久久久亚| 大香蕉伊人久久| 色色97爱| 啊啊啊啊啊啊在线看| 九九九九精品九九九九| 亚洲 中文 女同| 国产精品久久aV| 日韩欧美偷拍美女视频| 黄片免费看黄片免费看| 久久久555| 久久国色天香香蕉| 久久久亚洲Av| 密臀成人视频久久久| 婷婷导航| 乱操乱伦AV| 午夜精品久久久久久久99热影院| 国产理论视频在线播放| 欧美色老汉| 夜夜爽爽爽| 五月婷婷丁香六月丁香| 天天干夜夜肏| 六六久久日韩不卡| 日韩精品在线视频在线观看| 亚洲极品| 青青草自拍视频在线播放| 亚洲日韩视频二区| 日韩色图 一区二区| 99热思思| www.伪伪| 加勒比色99999| JULIA人妻风俗店中出电影| 亚洲阿v天堂无码z2018| 日本欧美不卡| 亚洲 另类 丝袜 自拍 动漫| www.婷婷| 黄片com.| av网站免费看| 婷婷精品久久av影视| 天天干天天日天天射黄色大片| 中日韩熟女| 91综合在线| 久久后入制服| 欧洲精品一区二区三区| 熟妇熟女视频一区二区三区| 亚洲一区二区三区中文字幕| 日日夜夜摸| 不卡六六在线91| 免費人妻夜夜爽天天爽爽一区| 91天堂色男人的天堂| 老司机午夜精品视频| 天天久久久久久| 久久综合超碰| 国产夜夜艹| AV九九| 精品在线观看视频在线| 乱性AV| 妇女一区二区三区| 欧美国产操逼| 亚洲av热热色| 久久久久久久久久久久久9999| 欧美精品自慰系列寂寞少妇| 亚洲欧洲综合av在线| 色悠久| 九九九成人| 成熟熟女国产精品一区二区| 日韩紧密久久| 人妻少妇一区二区| 九九伊人网| 手机看片1025| 久精品无码av一区二免费国产在线观看 | 久久久久久久久一区二区三区| 校园春色宗合网| 99热导航| 二级久久网| 精品国产自在在线99| 九九热视频在线观看| 国模精品一区二区三区苹果色戒| 日韩探花精品在线视频| 日韩卡一卡二卡三在线| 免费精品中文字幕| 强奸乱伦大香蕉| 日本成人A片免费看| 国内精品a| 日韩黄色av中文字幕| se吧提供91精品国产91久久久久久| 天天综合97| 欧美成人性活片| 精品九九九九九| 亚洲天天操| 呦呦一区| 精品人妻视频入口| 影音先锋日本乱伦| 久久天天艹| 岛国大片在线观看网站入口| 奇米狠999| 日韩A优精品在线观看| 亚洲一欧洲中文字幕在线| 午夜福利免费福利视频| 无码日韩网站| 26uuu国产| 亚洲色人妻综合| 欧色综合| 99国内熟女露脸视频| 久久视频,这里只有精品| 久久久九精品| 久久精品区| 日本操逼视频免费| 亚洲伊人a线观看视频| 亚洲偷拍欧美激情| 新怡红院| 欧美色人| 91搞逼视频| 一级啊性爱在线视频| 99视频只有精品| xxx亚洲午夜天堂| 福利在线视频一区二区| 抽插一区二区视频| 国产亚洲色婷婷久久99精品91 - 百度 | 日韩美女久久一区二区三区| 欧美日韩国产电影| 91美女视频直播| 国产内射爽爽大片| 欧美日韩国产中文精品字幕自在自线| 91超级碰| 大香蕉天天看妹子| yazhouzaixian| 九九热九九| 美女尤物人人操| 五月丁香影院| 涩涩久久精品| 国产女人视频三四五区| 日本丝袜人妻内射| 日韩精品一区二区三区四虎影视| 欧美日韩大陆黑人少妇99| 中文字幕一品色图| 99色网| 亚洲中文字幕熟女| 日本性爱欧美性爱| 五月天激情婷婷| 大香蕉宅男伊人| 九九久久国产精品| 久久婷婷一区| 天天插夜夜操| 天天爽爽爽爽| 嫩草影院永久在线制服丝袜| 欧美中文综合| 亚洲二区精品在线观看| 色网在线视频观看免费| 久久久999日本大片| 97超碰中文字幕| 免费国产电影一区二区| 成人三级片无码| 男插女青青影院| 色香av| 影音先锋日本乱伦| 小情侣高清国产在线视频| 欧美综合色站| 91爱啪| 日日摸夜夜夜夜爽| 99热99re超碰精品| 欧美综合色,www| 亚洲精品aa久久伊人| 91九久| 欧美欧美少妇| 免费A V在线播放| 亚洲人成色9999精品久久| 性高潮久久久| 日本国产欧美高清在线| 黄色不卡视频| 久久97精品久久久久久久不卡| 强歼乱伦资源网| 极品粉嫩少妇视频| 老熟女阿 国产91| 成人免费福利网站国产| 亚州宗合另类| 亚州性9| 青娱乐黄色录像| 久久国产99精品72福利| 日日日啊啊啊| 亚洲限制级| 综合久久99亚洲人妻中文在线| 国产99999久久精品| 91美女视频直播| 一区二区三区一亚洲中文字幕、综合区灬 | 精品国产一区二区三区在线播出| 久久综合国产精品国产| 国产一区二区在线电影| 欧美综合自拍成人自拍第二十页| 9/A片| 9999九九九久久久| 校园激情狠狠四射| 综合激情二| 国产宅男宅女在线观看| 日本色色网| 欧美亚洲日韩16色| 热久久九九热| 夜夜欧美 | 偷拍欧美激情| 夜夜操老骚逼视频网站| 怡红院亚洲怡春院av| 天天澡天天狠天天天做| 大香网站| 91亚洲人电影| 99热日| 神马九九| 欧美αv.com| 超碰三级秋霞| 超碰97综合网| 欧美日产国产在线成人第一区| av天堂手机版追回| 天天舔九色婷婷| 亚洲综合在线第一页| 岛国片国产成人亚洲播放| 精品久久久亚洲AV成人网站| 久久久久亚洲精品| 男人天堂电影院| 蜜乳AV色欲AVAV无码| 情色日播放AV| 欧美 亚洲精品首页| 99久久精品无码一区二区| 久久一区二区三区入口| 91l欧美在线| 永久免费观看的毛片的网站| 亚洲高清无码免费观看视频| 一区 欧美 日韩 麻豆| 高清无码学生妹高潮| 天天操人人操狠狠插| 久久久精品成人国产| 97se综合网| 亚洲高清欧美总合| 国产午夜激片Av毛片不卡| 九九热在线视频| 嗯嗯啊啊好大好爽| 色哟哟AⅤ| 婷婷四五区| 久久国产精品m码| 91精品久久综合熟女| 福利大香蕉| 五十路六十路七十路熟婆| 日本青青草在线| 加勒比综合| 白嫩嫩一区| 怡红院久久老司机| 久操婷婷| 91综合网在线| 在线 制服丝袜中出 人妻| 五十路人妻在线| 一,爱啪啪,在线免费视频| 亚洲日韩久久精品一区| 福利操逼| 久久日本熟女精品一区| 日韩欧美成人午夜福利| 美欧老女人97| 人人操人人插人www| 99热aaa| 国产一区自拍欧美日韩| 性生活无遮挡纯毛片在线看| 熟妇的味道HD中文字幕| 91久久青青草原精品| 九九热免费国产视频婷婷伊人五月 | 国产 日韩 另类 视频一区爱| 中文字幕文字幕无码一区二区三区电影99| 91人妻精华帖| jiujiujiujingpin| 国产成人精品日本亚洲语言| 96超碰网| 啊啊啊啊视频免费| 家庭乱伦麻豆| 无码视频一区二区| 欧亚性爱视频免费看| 91成人精品| 亚洲熟妇自偷自拍另欧美| 极品销魂美女一区二区| 亚洲情色在线| 在线观看综合精品亚洲| 男人天堂毛片| 刺激性视频黄页| 嫩草一区二区在线观看| 97神马久久| 精品四五区| 搞中出久久| 综合亚州欧美| 75大香蕉| 欧美,日韩,亚洲视频| 密臀视频三区免费网站| 天操天操夜操夜月操月年年操| 超碰在线观看av不卡| 国产热av| JULIA人妻风俗店中出电影| www.伪伪| 97色香蕉| 一区二区三区四区五区高清无码永久视频 | 超碰久热| 成人26uuu| 久久成人网站| 亚洲人妻一区二区三区| 欧美成人四级在线播放| 超碰色97| 碰超人人在线一区二区三区| 免费啪啪啪网站18岁| 免费精品无码一级毛片牛牛影视| 伊人aaa| 国产一区二区三区中文字幕| 1000部熟女视频在线观看| 青草伊人久久| 久草毛片电影怡| 男人天堂一区二区| 日韩黄片视频试看| 亚洲欧美人妻| 欧美日韩人妻精品一区二区三区| 国产超碰在线一区| 久久九九国产精品| 亚洲阿v天堂在线| 蜜臀久久99精品久久久久久成人小说| 久久精9| 久都青青视频| blacked精品一区国产| 亚洲精品久久久久毛片A片拉屎 | 蜜乳av一区二区| 亚洲色婷婷综合久久久久中文| 欧美日本天堂| 亚洲国产剧情少妇激情| 99热超碰| 午夜爽爽爽在线观看永久入口姬片| 92一区二区| 亚洲 欧美 日本 国内 首页| 亚洲黄色网址| 亚洲国产剧情少妇激情| 无码免费一区二区三区啪啪| 不卡啪啪视频| 亚洲一区二区精品福利| 熟女乱伦A| 国产亚洲色停停久久99精品91| 玖玖久久久| 精品国产乱码久久久| 色噜噜人妻av中文字幕| 人妻内射一区二区在线视频| 天天插夜夜爽| 91久久国产综合精品| 精品人妻一区二区乱码一区二区| 久操婷婷| 欧美亚洲中文字幕| 成人美女av| 97精品熟女少妇一区| 中文字幕五月婷婷免费| 久久精品国产Aⅴ| 亚洲天堂男人| 精品国产一区探花在线观看| 亚洲综合影院| 国产后入式在线观看| 欧美青青草视频| 欧美色图小说综合| 久久久久久中文| 久久久三区二区一区| 亚洲清纯唯美| 亚洲97资源| 久操免费观看| 又大又大又大又粗爽高潮观看| 丁香九月婷婷| 啊啊啊啊啊啊啊啊在线观看| 国产精品96| 欧美片第一页| 国产日韩欧美中文在线播放| 不卡中文字幕aⅴ在线| 亚洲av综合色区图片亚洲| 国产黄片在线免费观看| 欧美成人黄网色网站| 亚洲综合激情五月久久| 狠狠色婷婷7777久| 日韩美一区| 欧美A√综合网 | 国产视频不卡在线观看| 视频黄色国产一级| 亚欧韩av| 国产精品久久久视频| 亚洲精品天天影视综合网 | 3P丝袜熟女 色综合| 天天做天天爱天天爽| 国产精品视频电影| a人欧美综合天堂麻豆| 天天干1区2区在线| 亚洲全色网| 脫衣舞一区二区三区| 伊人99热| 欧美日韩夜夜| 亚洲老司机123专区| 美女91网| 最新日日夜夜天天干干| 婷婷亚洲五月***久久| 欧美99热| 人妻精品一区二区全免费| 大香蕉日亚洲日本亚大 | 日韩人妻精品久久久久| 91狠狠综合久久久久久| 日本精品久久久久久久| 97欧美日韩| 顶级丝袜熟女一区二区三区| 日韩人妻资源在线看| 熟妇一区二区三区| 日韩91网| 中文日本免费高清| 亚洲国产精品久久久久久久久久| 日韩超碰精品综合| 9997se| 2018天天日天天日| 精品少妇一区二区三区在线视频| 亚洲情色五月天 | 91女日逼| 中文字幕亚洲永久精品| 国产在线76页| 蜜臀久久在线视频| 青娱乐国产剧情av一区| 中文字幕成人| 土豪酒店各种姿势玩弄极品幼稚| 日语五十路和六十路亚洲国产精品| 中文字幕亚洲永久精品| 午夜福利久久久噜久噜久久综合 | 97操在线| 日本人妻最新在线中| 九九色热| 日本性一区| 性暴力欧美猛交在线直播| 久久五月丁香| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 97 九色| 亚洲国产精品无码AV久久| 18禁精品网站在线看| 亚洲综合888| 日日夜夜精品视频| 婷婷五月花| 欧美91网| 无码高清专| 91久久国产综合精品| 天天射天天操天天干天天吃2018| 99亚亚热| 久久这里只有精品9| 丁香六月东京热| 亚洲性少妇| 人人操人人摸人人看人人干| 日韩精品9999| 国产亚洲精品无码三区| av九九| 欧美激情1区| aaa一级黄片| 九九九九一区| www.久久99| 亚洲色电影在线| 精品超碰国产| 久久爱97| 美女黄色一级A视频| 一区二区影视| 天天综合色电影| 欧美日韩亚洲天堂| 色哟哟的毛片| 一区在线精品中文字幕| 67914在线精品观看| 无码人妻精品一区二区三区99不卡| 大香蕉婷婷| 91精品导航| 亚洲国产精品乱码在线观看| 亚洲一级黄色毛片| 你草精品在线视频| 一本一道波多野毛片中文在线| 嗯嗯,好大,好爽,好骚| 福利视频一区二区微拍| 蜜桃狠狠色伊人亚洲综合 | 992大香蕉| 九色视频91| 人妻丝袜美腿中文字幕| 久久综合精品一区二区三区| 操逼免费视频无码国产| 欧美黑人91| 99性爱| 精品午夜福利| 天天日日日射| 美女写真| 91天堂| 中文字幕丝袜人妻| 午夜福利 成人 91| 亚洲欲色9532548967一区| 欧美呦呦性爱| 人人九九精| 神马精品视频| 国产免a费看黄片在线| 亚洲性感丝袜诱惑在线观看| 丝袜大香蕉| 日本色色视频网站| 天天综合~91| 欧美熟妇人体| 亚洲第一在线视频| 国产熟女无套内射| 啊啊啊快操我视频| 99热国产| 八戒无码国产午夜福利| 青青草原香蕉日本Ap| 欧美精品在线观看| 精品毛片av一区二区| 国产999精品久久久| 91网18| 亚洲激情综合| 情趣丝袜无码操逼视频| 超碰97人人乐| 1区2区3区在线视频| 最近2019中文字幕国语免费版| 丰满熟女一区二区三区在线播放| 五月开心久久AV官网| 天天欧美色| 亚洲精品国产精品成人| 国产精品粉嫩福利在线| 中文字幕片| 99热精品在线观看| 国产亚洲精品美女久久久m| 婷婷色综合欧美日韩| 大香蕉天天看妹子| 色色色999| 成人亚欧免费视频| 日韩熟女无码| 99精品人妻| 玖色av| 国产精品青草综合久久| 色y情视频免费看| 日本加勒比无码专区| 欧洲性人爱视频| 91高跟美女在线播放| 日韩欧美亚洲国产日韩| 伊人久久综合影院| 黑人娇小av在线播放| 蜜区区视频79 | 九九色精品| 国人欧美精品一区二区| 久久亚洲欧美中文字幕国语 | 国产精品午夜高潮呻吟久久av| 久久成人国产精品| 天天伊人| 欧美碰碰综合色| 超碰久草| 大香蕉青青9| 国产婷婷一区| 一区久久久二区| 亚州宗合另类| 欧美少妇熟女| 色综合美国| 麻豆天美国美国产| 久/久精品99看9| 伊人婷婷五月天| 99久久综合网| 亚洲夜夜欢无码一区二区| 亚洲色图欧美视频| 日韩欧美国产高清视频| 中国AAAAAA黄色片| 中出欧美| 欧美色就是色| 97色在线视频| 97在线观看| 一区二区高清视频| 亚洲国产另类在线中文| 少妇精品久久| 亚洲av青草久久一区二区| 午夜性刺激视频免费观看| 精品无码久久久久久久杏吧| 亚洲视频中文一区| 在线中文字幕| 性爱视频无打码在线观看| 中文字幕日韩专区精品系列| 成人a级高清视频在线观看| 天堂俺去俺来也www久久婷婷| 天天躁日日躁xxxxx|