出版時(shí)間:2011-12-28 出版社:機(jī)械工業(yè)出版社 作者:紅丸 譯者:紅丸
Tag標(biāo)簽:無(wú)
內(nèi)容概要
為什么要寫(xiě)這本書(shū)
2005年我開(kāi)始從事J2EE(現(xiàn)在叫Java EE)開(kāi)發(fā),一年以后正式將精力放在數(shù)據(jù)庫(kù)領(lǐng)域,并于當(dāng)年正式成為DBA(數(shù)據(jù)庫(kù)管理員),此后一直從事數(shù)據(jù)庫(kù)的管理工作。從DB2 V8到DB2 V9,從SQL Server 2000到SQL Server 2008,從MySQL到MongoDB,6年的時(shí)間奮斗在DBA這個(gè)領(lǐng)域,至今我依然深愛(ài)著這個(gè)職業(yè)。在以往的日子里,每當(dāng)遇到疑難問(wèn)題時(shí),我總是非常耐心地去處理,并享受著解決問(wèn)題帶來(lái)的喜悅。
2010年,隨著Web 2.0網(wǎng)站的大批涌現(xiàn),NoSQL數(shù)據(jù)庫(kù)逐漸流行起來(lái)。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,NoSQL數(shù)據(jù)庫(kù)具有操作簡(jiǎn)單、完全免費(fèi)、源碼公開(kāi)、隨時(shí)下載等特點(diǎn),并可以用于各種商業(yè)目的。這使NoSQL數(shù)據(jù)庫(kù)產(chǎn)品廣泛應(yīng)用于各種大型門戶網(wǎng)站和專業(yè)網(wǎng)站,大大降低了企業(yè)運(yùn)營(yíng)成本。同時(shí),NoSQL數(shù)據(jù)庫(kù)對(duì)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)造成了一定的沖擊,例如,開(kāi)源數(shù)據(jù)庫(kù)代表MySQL已經(jīng)將Memcached產(chǎn)品嵌入其解決方案中,與此同時(shí),各種商業(yè)數(shù)據(jù)庫(kù)也在不斷推出列式數(shù)據(jù)處理方案來(lái)彌補(bǔ)自身的不足。由此可見(jiàn),NoSQL的良好發(fā)展態(tài)勢(shì)已經(jīng)是不可逆轉(zhuǎn)的了,它必將主宰未來(lái)的互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)市場(chǎng)。MongoDB正是這些NoSQL產(chǎn)品中的杰出代表。
在這種背景下,2010年,機(jī)械工業(yè)出版社華章公司的楊福川準(zhǔn)備籌劃一本關(guān)于MongoDB實(shí)戰(zhàn)方面的書(shū),我正好樂(lè)意與大家一起分享我多年工作實(shí)踐的積累以及數(shù)據(jù)庫(kù)開(kāi)發(fā)、優(yōu)化、管理和維護(hù)經(jīng)驗(yàn),于是我們一拍即合。
此后,我開(kāi)始蟄伏在北京的某個(gè)角落,從日出東方到夕陽(yáng)西下,經(jīng)歷了不知多少個(gè)日日夜夜??催^(guò)漫天塵土的春季,浸泡在炎熱的夏季,走過(guò)落葉紛飛的秋季,不知不覺(jué)進(jìn)入了冬季。漫漫長(zhǎng)路,本書(shū)終于塵埃落定。
本書(shū)全面介紹了MongoDB數(shù)據(jù)庫(kù),重在實(shí)戰(zhàn)演練,學(xué)習(xí)思路也是我親身的學(xué)習(xí)經(jīng)歷。出于嚴(yán)謹(jǐn)?shù)目紤],本書(shū)中的例子都在測(cè)試環(huán)境上調(diào)試通過(guò)。這耗費(fèi)了我大量的時(shí)間和精力,但是,如果能夠幫助讀者以最快的速度掌握一門技術(shù),一切努力都是值得的。
讀者對(duì)象
全書(shū)內(nèi)容循序漸進(jìn)、由淺入深,既可以引導(dǎo)初學(xué)者入門,又可以幫助具備一定基礎(chǔ)的IT技術(shù)從業(yè)人員進(jìn)一步提高技術(shù)水平,力求不同層次的讀者都能從本書(shū)中受益。本書(shū)的讀者對(duì)象包括:
q 準(zhǔn)備擴(kuò)展MongoDB知識(shí)的開(kāi)發(fā)人員
q 有興趣了解MongoDB的DBA或數(shù)據(jù)庫(kù)應(yīng)用程序編程人員
q 正在學(xué)習(xí)數(shù)據(jù)庫(kù)課程的計(jì)算機(jī)相關(guān)專業(yè)的學(xué)生
q 想使用MongoDB實(shí)現(xiàn)快速查詢的技術(shù)人員
q 想進(jìn)一步了解MongoDB的“發(fā)燒友”
q 數(shù)據(jù)庫(kù)管理層和技術(shù)決策者
本書(shū)特點(diǎn)
本書(shū)針對(duì)IT技術(shù)人員在工作中的必備知識(shí)與技能,精心安排了篇章結(jié)構(gòu)。本書(shū)從基礎(chǔ)入手,通過(guò)細(xì)致入微的內(nèi)容組織,配以深入淺出的文字論述,以實(shí)際項(xiàng)目應(yīng)用為背景,力圖讓讀者從多個(gè)角度對(duì)MongoDB有深入的認(rèn)識(shí)和理解。
本書(shū)最大的特點(diǎn)是實(shí)戰(zhàn)性強(qiáng),利用豐富的實(shí)例對(duì)MongoDB進(jìn)行了詳細(xì)的介紹。
本書(shū)系統(tǒng)全面,涵蓋了MongoDB開(kāi)發(fā)、優(yōu)化、管理和維護(hù)的方方面面。從寫(xiě)作風(fēng)格上看,本書(shū)沒(méi)有過(guò)多討論抽象的理論,而是通過(guò)豐富的實(shí)例來(lái)幫助讀者理解應(yīng)用MongoDB數(shù)據(jù)庫(kù)時(shí)會(huì)遇到的各種問(wèn)題及其解決方法,使讀者能夠很輕松地部署測(cè)試環(huán)境,并且熟練地掌握MongoDB數(shù)據(jù)庫(kù)的各種使用技巧。
如何閱讀本書(shū)
本書(shū)主要以引導(dǎo)讀者思考、體會(huì)和實(shí)踐為目的,通過(guò)實(shí)例讓讀者以最快的速度全面接觸MongoDB。在閱讀本書(shū)的時(shí)候,最好有一個(gè)可以實(shí)踐的MongoDB測(cè)試環(huán)境,通過(guò)自己動(dòng)手實(shí)踐來(lái)加深認(rèn)識(shí)、真正理解。對(duì)于管理層和技術(shù)決策者來(lái)說(shuō),可能沒(méi)有太多時(shí)間進(jìn)行大量的測(cè)試和實(shí)踐,學(xué)習(xí)解決問(wèn)題的思路就可以了。
本書(shū)分為6個(gè)部分,共15章:
第一部分 基礎(chǔ)篇(第1章~第2章):主要講解MongoDB的基礎(chǔ)理論和基本操作。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以對(duì)MongoDB進(jìn)行簡(jiǎn)單操作。
第二部分 高級(jí)篇(第3章~第5章):主要講解MongoDB的高級(jí)技術(shù),例如高級(jí)查詢、高級(jí)更新、高級(jí)功能的應(yīng)用。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以熟練地應(yīng)用MongoDB來(lái)完成日常的業(yè)務(wù)需求。
第三部分 管理篇(第6章~第8章):主要講解MongoDB常用的運(yùn)行和維護(hù)管理工具,例如數(shù)據(jù)的導(dǎo)入導(dǎo)出、數(shù)據(jù)的備份和恢復(fù)、數(shù)據(jù)的克隆和復(fù)制,以及與安全相關(guān)的實(shí)用技術(shù)。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者應(yīng)該具備一個(gè)MongoDB DBA所具有的全部技能。
第四部分 性能篇(第9章~第10章):主要講解MongoDB的索引、優(yōu)化、性能監(jiān)控技術(shù)。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以具備MongoDB調(diào)優(yōu)的能力。
第五部分 架構(gòu)篇(第11章~第13章):主要講解MongoDB的高可用架構(gòu)的細(xì)節(jié),如主從復(fù)制、Sharding(分片)等。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以獨(dú)立設(shè)計(jì)MongoDB應(yīng)用系統(tǒng)架構(gòu)。
第六部分 開(kāi)發(fā)篇(第14章~第15章):主要講解如何用C#和Java來(lái)操作MongoDB數(shù)據(jù)庫(kù)。通過(guò)這部分內(nèi)容的學(xué)習(xí),讀者可以將C#或Java開(kāi)發(fā)技術(shù)與MongoDB數(shù)據(jù)庫(kù)結(jié)合起來(lái),完成特定應(yīng)用系統(tǒng)的開(kāi)發(fā)
作者簡(jiǎn)介
“紅丸”,資深數(shù)據(jù)庫(kù)專家,國(guó)內(nèi)MongoDB領(lǐng)域的先驅(qū)之一,積累了豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。精通MySQL、SQL Server和DB2等大中型數(shù)據(jù)庫(kù)的運(yùn)維和管理,還擅長(zhǎng)Java和C#等技術(shù)。此外,他對(duì)Redis和分布式計(jì)算技術(shù)也有一定的研究。活躍于ITPUB等技術(shù)社區(qū),發(fā)表和分享了大量關(guān)于MongoDB和Redis的技術(shù)文章,深受社區(qū)歡迎。
書(shū)籍目錄
前言
第一部分 基 礎(chǔ) 篇
第1章 認(rèn)識(shí)MongoDB / 2
1.1 NoSQL簡(jiǎn)介 / 2
1.1.1 產(chǎn)生背景 / 2
1.1.2 NoSQL的種類及其特性 / 4
1.1.3 NoSQL特點(diǎn) / 8
1.1.4 發(fā)展現(xiàn)狀 / 8
1.2 初識(shí)MongoDB / 9
1.2.1 特點(diǎn)及功能 / 10
1.2.2 適用場(chǎng)合 / 11
1.3 MongoDB實(shí)際應(yīng)用案例 / 12
1.3.1 國(guó)內(nèi)案例 / 12
1.3.2 國(guó)外案例 / 12
1.4 本章小結(jié) / 13
第2章 快速入門 / 14
2.1 體系結(jié)構(gòu) / 14
2.1.1 數(shù)據(jù)邏輯結(jié)構(gòu) / 14
2.1.2 數(shù)據(jù)存儲(chǔ)結(jié)構(gòu) / 15
2.1.3 日志系統(tǒng) / 17
2.1.4 元數(shù)據(jù)的存儲(chǔ) / 18
2.1.5 數(shù)據(jù)類型 / 19
2.2 MongoDB的安裝和配置 / 22
2.2.1 在Windows平臺(tái)下的安裝和配置 / 22
2.2.2 在Linux平臺(tái)下的安裝和配置 / 23
2.3 啟動(dòng)數(shù)據(jù)庫(kù) / 25
2.3.1 命令行方式 / 25
2.3.2 配置文件方式 / 25
2.3.3 Daemon方式 / 26
2.3.4 mongod參數(shù)方式 / 26
2.4 停止數(shù)據(jù)庫(kù) / 27
2.4.1 Ctrl+C組合鍵 / 27
2.4.2 shutdownServer()指令 / 28
2.4.3 UNIX系統(tǒng)指令 / 28
2.5 操作數(shù)據(jù)庫(kù) / 29
2.5.1 連接數(shù)據(jù)庫(kù) / 29
2.5.2 插入記錄 / 29
2.5.3 查詢記錄 / 31
2.5.4 修改記錄 / 34
2.5.5 刪除記錄 / 34
2.6 常用GUI管理工具 / 34
2.6.1 MongoVUE / 34
2.6.2 RockMongo / 35
2.6.3 MongoHub / 36
2.7 本章小結(jié) / 37
第二部分 高 級(jí) 篇
第3章 高級(jí)查詢 / 40
3.1 查詢操作符 / 40
3.2 查詢語(yǔ)法 / 46
3.2.1 數(shù)組內(nèi)容的查詢 / 47
3.2.2 內(nèi)嵌文檔的查詢 / 47
3.2.3 正則表達(dá)式匹配 / 48
3.2.4 $where查詢 / 48
3.3 聯(lián)合查詢 / 49
3.3.1 簡(jiǎn)單手工關(guān)聯(lián) / 49
3.3.2 DBRef方式關(guān)聯(lián) / 50
3.4 游標(biāo)和存儲(chǔ)過(guò)程 / 51
3.4.1 游標(biāo) / 51
3.4.2 存儲(chǔ)過(guò)程 / 52
3.5 本章小結(jié) / 53
第4章 高級(jí)更新 / 55
4.1 數(shù)據(jù)更新命令詳解 / 55
4.1.1 update命令 / 55
4.1.2 save命令 / 56
4.2 數(shù)據(jù)更新操作符 / 57
4.3 本章小結(jié) / 62
第5章 高級(jí)特性 / 63
5.1 Capped Collection集合 / 63
5.1.1 創(chuàng)建Capped Collection / 63
5.1.2 Capped Collection的用途 / 64
5.1.3 注意事項(xiàng) / 64
5.2 GridFS規(guī)范 / 65
5.2.1 如何實(shí)現(xiàn)海量存儲(chǔ) / 65
5.2.2 命令行工具 / 66
5.3 MapReduce編程模型 / 68
5.3.1 Map進(jìn)行分組 / 69
5.3.2 Reduce聚合計(jì)算 / 69
5.3.3 Result獲取結(jié)果 / 70
5.3.4 Finalize格式化輸出 / 70
5.3.5 Options定制輸出 / 71
5.4 本章小結(jié) / 72
第三部分 管 理 篇
第6章 管理工具集 / 74
6.1 數(shù)據(jù)遷移 / 74
6.1.1 導(dǎo)出工具mongoexport / 75
6.1.2 導(dǎo)出工具mongodump / 78
6.1.3 導(dǎo)入工具mongoimport / 79
6.2 數(shù)據(jù)的備份和恢復(fù) / 81
6.2.1 備份工具mongodump / 81
6.2.2 恢復(fù)工具mongorestore / 84
6.3 命令行操作 / 86
6.3.1 通過(guò)eval參數(shù)執(zhí)行指定語(yǔ)句 / 86
6.3.2 執(zhí)行指定文件中的內(nèi)容 / 87
6.4 本章小結(jié) / 88
第7章 管理命令 / 89
7.1 克隆collection / 90
7.1.1 遠(yuǎn)程克隆collection / 90
7.1.2 本地克隆collection / 94
7.2 復(fù)制數(shù)據(jù)庫(kù) / 94
7.2.1 遠(yuǎn)程復(fù)制數(shù)據(jù)庫(kù) / 94
7.2.2 本地復(fù)制數(shù)據(jù)庫(kù) / 96
7.3 刷新磁盤 / 97
7.4 捕獲異常 / 98
7.4.1 返回異常信息 / 98
7.4.2 阻塞客戶端 / 99
7.5 進(jìn)程控制 / 99
7.5.1 查看活動(dòng)進(jìn)程 / 99
7.5.2 結(jié)束進(jìn)程 / 100
7.6 驗(yàn)證collection的有效性 / 100
7.7 數(shù)據(jù)壓縮 / 101
7.8 本章小結(jié) / 102
第8章 訪問(wèn)控制 / 103
8.1 限制特定IP地址訪問(wèn) / 104
8.2 設(shè)置監(jiān)聽(tīng)端口 / 104
8.3 使用用戶名和口令登錄 / 105
8.3.1 建立系統(tǒng)root用戶 / 107
8.3.2 建立指定權(quán)限用戶 / 108
8.3.3 刪除指定用戶 / 109
8.4 本章小結(jié) / 110
第四部分 性 能 篇
第9章 索引及優(yōu)化 / 112
9.1 MongoDB索引概述 / 112
9.2 索引操作 / 113
9.2.1 基礎(chǔ)索引 / 113
9.2.2 靜默方式創(chuàng)建索引 / 115
9.2.3 文檔索引 / 115
9.2.4 組合索引 / 116
9.2.5 唯一索引 / 116
9.2.6 強(qiáng)制使用索引 / 117
9.2.7 刪除索引 / 119
9.2.8 重建索引 / 119
9.2.9 explain查看執(zhí)行計(jì)劃 / 119
9.3 優(yōu)化器Profiler / 121
9.3.1 開(kāi)啟Profiler功能 / 121
9.3.2 查詢Profiler記錄 / 122
9.4 性能優(yōu)化概述 / 123
9.4.1 性能優(yōu)化的原則 / 123
9.4.2 影響性能的因素 / 124
9.5 常用的優(yōu)化方案 / 124
9.5.1 創(chuàng)建索引 / 124
9.5.2 限定返回結(jié)果條數(shù) / 125
9.5.3 只查詢用到的字段 / 125
9.5.4 采用Capped Collection / 126
9.5.5 采用Server Side Code Execution命令集 / 126
9.5.6 使用hint / 127
9.5.7 采用Profiler / 127
9.6 本章小結(jié) / 128
第10章 性能監(jiān)控 / 129
10.1 mongosniff工具 / 129
10.2 mongostat工具 / 131
10.3 db.serverStatus命令 / 132
10.4 db.stats命令 / 134
10.5 HTTP監(jiān)控接口 / 135
10.6 本章小結(jié) / 136
第五部分 架 構(gòu) 篇
第11章 復(fù)制集 / 138
11.1 Replica Sets架構(gòu) / 138
11.2 部署Replica Sets / 139
11.3 主從操作日志 / 144
11.4 主從配置信息 / 146
11.5 管理Replica Sets / 147
11.5.1 主從切換 / 147
11.5.2 讀寫(xiě)分離 / 149
11.5.3 故障轉(zhuǎn)移 / 151
11.5.4 增減節(jié)點(diǎn) / 153
11.6 本章小結(jié) / 160
第12章 分片 / 161
12.1 Sharding簡(jiǎn)介 / 161
12.1.1 Sharding的特點(diǎn) / 161
12.1.2 Sharding架構(gòu) / 162
12.2 構(gòu)建一個(gè)簡(jiǎn)單的Sharding Cluster / 163
12.2.1 啟動(dòng)Shard Server / 163
12.2.2 啟動(dòng)Config Server / 164
12.2.3 啟動(dòng)Route Process / 164
12.2.4 配置Sharding / 164
12.2.5 驗(yàn)證Sharding / 165
12.3 維護(hù)Sharding / 167
12.3.1 列出所有的Shard Server / 168
12.3.2 查看Sharding信息 / 168
12.3.3 判斷是否是Sharding / 169
12.3.4 對(duì)現(xiàn)有的表執(zhí)行Sharding / 169
12.3.5 新增Shard Server / 171
12.3.6 移除Shard Server / 172
12.4 本章小結(jié) / 175
第13章 Replica Sets + Sharding方案 / 176
13.1 Replica Sets+Sharding架構(gòu) / 176
13.2 搭建一個(gè)高可用架構(gòu) / 177
13.2.1 創(chuàng)建數(shù)據(jù)目錄 / 177
13.2.2 配置Replica Sets / 178
13.2.3 配置3臺(tái)Config Server / 181
13.2.4 配置3臺(tái)Route Process / 181
13.2.5 配置Shard Cluster / 181
13.2.6 驗(yàn)證Sharding / 182
13.3 本章小結(jié) / 183
第六部分 開(kāi) 發(fā) 篇
第14章 C#開(kāi)發(fā)接口 / 186
14.1 C#快速入門 / 186
14.1.1 下載驅(qū)動(dòng)和開(kāi)發(fā)環(huán)境 / 186
14.1.2 訪問(wèn)控制 / 188
14.1.3 C#對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)操作 / 189
14.2 C#驅(qū)動(dòng)一致性 / 194
14.3 C#常用操作 / 195
14.3.1 對(duì)MongoDB實(shí)例的操作 / 195
14.3.2 對(duì)用戶的操作 / 198
14.3.3 對(duì)collection的操作 / 202
14.3.4 對(duì)索引的操作 / 208
14.4 C#高級(jí)查詢 / 211
14.4.1 判斷列名是否存在 / 211
14.4.2 比較運(yùn)算符 / 213
14.4.3 邏輯運(yùn)算符 / 221
14.4.4 正則表達(dá)式查詢 / 223
14.4.5 跳過(guò)查詢 / 224
14.5 用C#操作GridFS / 225
14.5.1 插入數(shù)據(jù) / 225
14.5.2 查詢數(shù)據(jù) / 226
14.5.3 讀取并保存數(shù)據(jù) / 227
14.5.4 刪除數(shù)據(jù) / 228
14.6 本章小結(jié) / 229
第15章 Java開(kāi)發(fā)接口 / 230
15.1 Java快速入門 / 230
15.1.1 下載驅(qū)動(dòng)和開(kāi)發(fā)環(huán)境 / 230
15.1.2 訪問(wèn)控制 / 232
15.1.3 Java對(duì)數(shù)據(jù)庫(kù)的基礎(chǔ)操作 / 233
15.2 Java驅(qū)動(dòng)一致性 / 237
15.3 Java常用操作 / 238
15.3.1 對(duì)MongoDB實(shí)例的操作 / 238
15.3.2 對(duì)用戶的操作 / 241
15.3.3 對(duì)collection的操作 / 243
15.3.4 對(duì)索引的操作 / 250
15.4 Java高級(jí)查詢 / 253
15.4.1 通過(guò)游標(biāo)獲取所有document / 253
15.4.2 比較運(yùn)算符 / 254
15.4.3 邏輯運(yùn)算符 / 263
15.4.4 正則表達(dá)式查詢 / 264
15.4.5 跳過(guò)查詢 / 265
15.5 用Java操作GridFS / 266
15.5.1 插入數(shù)據(jù) / 266
15.5.2 查詢數(shù)據(jù) / 267
15.5.3 讀取并保存數(shù)據(jù) / 268
15.5.4 刪除數(shù)據(jù) / 269
15.6 本章小結(jié) / 270
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
MongoDB管理與開(kāi)發(fā)精要 PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版