SlideShare una empresa de Scribd logo
1 de 74
Descargar para leer sin conexión
MongoDB for C# developer
 NO sql
 NO relational
 NO joins
 NO ORM
 NO complex transactions
   海量数据
   高并发
   高可用
   复杂度
   非结构化数据
   需求变化
MongoDB for C# developer
   Data Model
     1,2,3范式
     tree、master/detail、relation…
   Objects != Data
     ORM
     DAL
   Key-value
     Memcached、Redis
   Graph Databases
     Neo4j
   Column Families
     BigTable,HBase,cassandra
   Document
     CouchDB,mongoDB
MongoDB for C# developer
MongoDB for C# developer
   酸 ACID
     atomicity, consistency, isolation, durability
   碱 BASE
     Basically Available, Soft-state, Eventually
     Consistent
 Consistency (一致性)
 Availability (可用性)
 Partition tolerance (分区容忍性)

一个分布式系统不可能同时满足这三个需求
   最多只能同时满足两个(AP/CP)
MongoDB for C# developer
Memory is the new disk,
disk is the new tap
-Jim Gray
MongoDB for C# developer
MongoDB for C# developer
function map(fn, a){                 function reduce(fn, a, init){
   for (i = 0; i < a.length; i++){     var s = init;
     a[i] = fn(a[i]);                  for (i = 0; i < a.length; i++)
                                            s = fn( s, a[i] );
    }                                  return s;
}                                    }

(Joel on Software)
MongoDB for C# developer
   NoSQL Databases: Why, what and when
   NoSQL生态系统
http://www.mongodb.org/
   Document-oriented
   Rich, document-based queries
   Full Index Support
   Replication & High Availability
   Sharding
   GridFS
   Map/Reduce
   BSON everywhere
   Memory Mapped Data Files
MongoDB for C# developer
MongoDB for C# developer
MongoDB for C# developer
   http://try.mongodb.org/
   mongod
     mongodb.conf
   mongo
   mongos
   mongostat
   mongoexportmongoimport
   mongodumpmongorestore
   默认数据存储路径是 /data/db,
   默认端口 27017
   默认 HTTP 端口 28017
   日志
     --logpath、--logappend、--verbose、--cpu
   一个.ns文件和n个数据文件
   数据文件大小2倍倍增
   单数据文件最大2G
MongoDB for C# developer
   显示创建
   不能删除对象
   方便传输
   高效
   通用




           http://bsonspec.org
   每个BSON对象大小不能超过4MB
   字段名不能以”$”开头;不能包含”.”
   “_id”是系统保留的字段
> help
MongoDB for C# developer
   4e2647e8 0fe07f 1260 54caf4
     Timestamp + Machineid + Processid + Counter

一个对象被插入到数据库中时,如果它没有ID,会自动生
 成一个”_id”字段,为24位16进制数。
MongoDB for C# developer
   <, <=, >, >=      Regular Expressions
   $all
   $exists           Embedded Object Search
   $mod              JavaScript Expressions
   $ne               Special operators
   $in
   $nin              Explain()
   $nor
   $or
   $and
   $size
   $type
MongoDB for C# developer
MongoDB for C# developer
   Count
     db.characters.find({armor:{$gt:1800}}).count()
   Limit
   Skip ()
     db.characters.find({armor:{$gt:1800}}).skip(10).limit(1)
   Sort
     db.characters.find().sort({armor:-1}).limit(3)
     db.characters.find().sort({$natural:-1}).
   B Tree,支持geospatial index
   影响写速度,占用空间
   默认索引:_id
   索引顺序影响是否用到索引
   索引中缺少的字段为null
   explain()查看执行计划
MongoDB for C# developer
MongoDB for C# developer
   索引保存在 system.indexes
   索引大小 db. characters.totalIndexSize()
   创建索引 db.characters.ensureIndex(key_pattern, options)
     选项: unique; dropDups ; background
   查看索引 db.characters.coll.getIndexes()
   删除索引 db.characters.dropIndexes()
   重建索引 db.characters.reIndex()
MongoDB for C# developer
   Udate(criteria, objNew, upsert, multi)
   Save()
   支持原子操作tomic
   不支持传统事务模型(rollback??)
MongoDB for C# developer
   findAndModify (<options> } )
     find, modify, and return
   db.colname’.remove({…})
   db.eval(…);
   http://localhost:28017/_commands
   db.runCommand( {
     <commandname>: <value> [, options] } );
   db.commandHelp("datasize")
MongoDB for C# developer
   Http Console
     http://localhost:28017/
   mongostat
   db.serverStatus()
   db.stats()、db.colname.stats()
   db.colname.validate()
   系统监控
     memory、cpu、IO
   setProfilingLevel(lvl, <ms>)
     0: none
     1: time-based(默认100ms)
     2: all


   db.system.profile.find()
   mongod --repair
   db.repairDatabase();
   mongod --journal
     version 1.9.2+64-bit默认开启
     group commit
   db.colname.validate();
   Master
   Master/slave
     arbiterOnly
   Replica sets
     db.printReplicationInfo()
     db.printSalveReplicationInfo()
     oplog(capped collection,规划大小)
MongoDB for C# developer
MongoDB for C# developer
   Params
     w: number of replicas to write to
     wtimeout: time to wait for acknowledgements
     fsync: flush to disk
   Unique Index
   空间成本
   维护
   failover
   Single
   One – Many & Many - Many
     Embedded document(4M的限制)
     Normalized
   Tree
   Javascript执行性能
MongoDB for C# developer
   db.addUser
    ("username", "password")
   db.system.users.remove
    ({user: username})
   system.namespaces
   system.indexes
   system.profile
   system.users
   local.sources
   --rest选项
   备份
     mongodump、mongorestore
     db.copyDatabase、db.cloneDatabase
   Lock, Snapshot and Unlock
     admin.runCommand({fsync : 1, lock : 1})
     db.$cmd.sys.unlock.findOne()
   缺少传统数据库丰富的还原机制
   队列
   执行计划
     db.colname.find({..}).expliain()
   减小json数据的大小(使用较短的key)
   优化索引、索引全部放入内存
   优化document schema设计
   db.eval() 在服务端执行某些操作
   用BinData存储UUID格式的数据
     36bytes->16bytes
   使用连接池,修改每个连接的stack size
     默认10M
   预分配空间、减少内存和磁盘碎片
     删除数据--不收回碎片
   NoSQL注入
   --auth 启动参数
   --noscripting启动参数
   每个链接一个线程
   单线程执行Map/Reduce
   一个写线程
   磁盘空间
   内存
   维护
   事务
   mongo-csharp-driver (Github)
   CSharp Driver Tutorial
   MongoDB Deployment Strategies
   MongoDB开发应用实践
   Optimizing MongoDB: Lessons Learned at
    Localytics
   Chrome扩展Mongo Live
   MongoDB部署与运维
   10 Key MongoDB Performance Indicators
   MongoDB Administration
MongoDB for C# developer
MongoDB for C# developer
Thanks
文中大部分资料来源于网络

Más contenido relacionado

La actualidad más candente

Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1Zianed Hou
 
Oracle Data Buffer Cache
Oracle Data Buffer CacheOracle Data Buffer Cache
Oracle Data Buffer CacheSky Jian
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍taotao1240
 
大话redis设计实现
大话redis设计实现大话redis设计实现
大话redis设计实现rfyiamcool
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redispaitoubing
 
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复Lixun Peng
 
Hadoop基础及hive入门
Hadoop基础及hive入门Hadoop基础及hive入门
Hadoop基础及hive入门haiwang
 
SSDB 入门基础
SSDB 入门基础SSDB 入门基础
SSDB 入门基础ideawu
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and TutorialHo Kim
 
主機管理基本指令練習(三)
主機管理基本指令練習(三)主機管理基本指令練習(三)
主機管理基本指令練習(三)K- Peggy
 
mysql总结
mysql总结mysql总结
mysql总结haiwang
 
Introduction to pig&zookeeper
Introduction to pig&zookeeperIntroduction to pig&zookeeper
Introduction to pig&zookeeperGuangyao Cheng
 
无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则wensheng wei
 
Shell奇技淫巧
Shell奇技淫巧Shell奇技淫巧
Shell奇技淫巧David Xie
 
DataNode communicate with NameNode
DataNode communicate with NameNode DataNode communicate with NameNode
DataNode communicate with NameNode Jiang Yu
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 
主機管理基本指令練習(四)
主機管理基本指令練習(四)主機管理基本指令練習(四)
主機管理基本指令練習(四)K- Peggy
 
A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题WASecurity
 

La actualidad más candente (20)

Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1
 
Oracle Data Buffer Cache
Oracle Data Buffer CacheOracle Data Buffer Cache
Oracle Data Buffer Cache
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍
 
大话redis设计实现
大话redis设计实现大话redis设计实现
大话redis设计实现
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redis
 
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
 
Hadoop基础及hive入门
Hadoop基础及hive入门Hadoop基础及hive入门
Hadoop基础及hive入门
 
SSDB 入门基础
SSDB 入门基础SSDB 入门基础
SSDB 入门基础
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and Tutorial
 
主機管理基本指令練習(三)
主機管理基本指令練習(三)主機管理基本指令練習(三)
主機管理基本指令練習(三)
 
mysql总结
mysql总结mysql总结
mysql总结
 
Introduction to pig&zookeeper
Introduction to pig&zookeeperIntroduction to pig&zookeeper
Introduction to pig&zookeeper
 
无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则
 
Shell奇技淫巧
Shell奇技淫巧Shell奇技淫巧
Shell奇技淫巧
 
DataNode communicate with NameNode
DataNode communicate with NameNode DataNode communicate with NameNode
DataNode communicate with NameNode
 
MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 
主機管理基本指令練習(四)
主機管理基本指令練習(四)主機管理基本指令練習(四)
主機管理基本指令練習(四)
 
Redis use cases
Redis use casesRedis use cases
Redis use cases
 
A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题A.oracle 查询结果的缓存问题
A.oracle 查询结果的缓存问题
 

Similar a MongoDB for C# developer

Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流liuts
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享晓锋 陈
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsHo Kim
 
Redis 介绍 -田琪
Redis 介绍 -田琪Redis 介绍 -田琪
Redis 介绍 -田琪Shaoning Pan
 
Cassandra简介.ppt
Cassandra简介.pptCassandra简介.ppt
Cassandra简介.pptjames tong
 
20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_rico20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_ricoRico Chen
 
MongoDB Basic
MongoDB BasicMongoDB Basic
MongoDB Basicsimplels
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验QLeelulu
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南HonestQiao
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010Chuanying Du
 
面向开发的前端性能优化
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化li qiang
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹國昭 張
 
A.oracle 数据字典与脚本初步
A.oracle 数据字典与脚本初步A.oracle 数据字典与脚本初步
A.oracle 数据字典与脚本初步WASecurity
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇小新 制造
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaknuthocean
 
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Chun-Min Chang
 
Practical Data Analysis in R
Practical Data Analysis in RPractical Data Analysis in R
Practical Data Analysis in RChun-Ming Chang
 
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務台灣資料科學年會
 

Similar a MongoDB for C# developer (20)

Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
Glider
GliderGlider
Glider
 
Redis 介绍 -田琪
Redis 介绍 -田琪Redis 介绍 -田琪
Redis 介绍 -田琪
 
Cassandra简介.ppt
Cassandra简介.pptCassandra简介.ppt
Cassandra简介.ppt
 
20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_rico20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_rico
 
MongoDB Basic
MongoDB BasicMongoDB Basic
MongoDB Basic
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
面向开发的前端性能优化
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
A.oracle 数据字典与脚本初步
A.oracle 数据字典与脚本初步A.oracle 数据字典与脚本初步
A.oracle 数据字典与脚本初步
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in china
 
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight
 
Practical Data Analysis in R
Practical Data Analysis in RPractical Data Analysis in R
Practical Data Analysis in R
 
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務
 

Último

函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptxNCU MCL
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptxNCU MCL
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxNCU MCL
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven designJamie (Taka) Wang
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptxNCU MCL
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_patternJamie (Taka) Wang
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLPJamie (Taka) Wang
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptxNCU MCL
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】黑客 接单【TG/微信qoqoqdqd】
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxNCU MCL
 

Último (15)

20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven design
 
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_pattern
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
 
20200226 - AI Overview
20200226 - AI Overview20200226 - AI Overview
20200226 - AI Overview
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 
Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
 
20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 

MongoDB for C# developer

  • 2.  NO sql  NO relational  NO joins  NO ORM  NO complex transactions
  • 3. 海量数据  高并发  高可用  复杂度  非结构化数据  需求变化
  • 5. Data Model  1,2,3范式  tree、master/detail、relation…  Objects != Data  ORM  DAL
  • 6. Key-value  Memcached、Redis  Graph Databases  Neo4j  Column Families  BigTable,HBase,cassandra  Document  CouchDB,mongoDB
  • 9. 酸 ACID  atomicity, consistency, isolation, durability  碱 BASE  Basically Available, Soft-state, Eventually Consistent
  • 10.  Consistency (一致性)  Availability (可用性)  Partition tolerance (分区容忍性) 一个分布式系统不可能同时满足这三个需求 最多只能同时满足两个(AP/CP)
  • 12. Memory is the new disk, disk is the new tap -Jim Gray
  • 15. function map(fn, a){ function reduce(fn, a, init){ for (i = 0; i < a.length; i++){ var s = init; a[i] = fn(a[i]); for (i = 0; i < a.length; i++) s = fn( s, a[i] ); } return s; } } (Joel on Software)
  • 17. NoSQL Databases: Why, what and when  NoSQL生态系统
  • 19. Document-oriented  Rich, document-based queries  Full Index Support  Replication & High Availability  Sharding  GridFS  Map/Reduce  BSON everywhere  Memory Mapped Data Files
  • 23. http://try.mongodb.org/
  • 24. mongod  mongodb.conf  mongo  mongos  mongostat  mongoexportmongoimport  mongodumpmongorestore
  • 25. 默认数据存储路径是 /data/db,  默认端口 27017  默认 HTTP 端口 28017  日志  --logpath、--logappend、--verbose、--cpu
  • 26. 一个.ns文件和n个数据文件  数据文件大小2倍倍增  单数据文件最大2G
  • 28. 显示创建  不能删除对象
  • 29. 方便传输  高效  通用 http://bsonspec.org
  • 30. 每个BSON对象大小不能超过4MB  字段名不能以”$”开头;不能包含”.”  “_id”是系统保留的字段
  • 33. 4e2647e8 0fe07f 1260 54caf4  Timestamp + Machineid + Processid + Counter 一个对象被插入到数据库中时,如果它没有ID,会自动生 成一个”_id”字段,为24位16进制数。
  • 35. <, <=, >, >=  Regular Expressions  $all  $exists  Embedded Object Search  $mod  JavaScript Expressions  $ne  Special operators  $in  $nin  Explain()  $nor  $or  $and  $size  $type
  • 38. Count  db.characters.find({armor:{$gt:1800}}).count()  Limit  Skip ()  db.characters.find({armor:{$gt:1800}}).skip(10).limit(1)  Sort  db.characters.find().sort({armor:-1}).limit(3)  db.characters.find().sort({$natural:-1}).
  • 39. B Tree,支持geospatial index  影响写速度,占用空间  默认索引:_id  索引顺序影响是否用到索引  索引中缺少的字段为null  explain()查看执行计划
  • 42. 索引保存在 system.indexes  索引大小 db. characters.totalIndexSize()  创建索引 db.characters.ensureIndex(key_pattern, options)  选项: unique; dropDups ; background  查看索引 db.characters.coll.getIndexes()  删除索引 db.characters.dropIndexes()  重建索引 db.characters.reIndex()
  • 44. Udate(criteria, objNew, upsert, multi)  Save()  支持原子操作tomic  不支持传统事务模型(rollback??)
  • 46. findAndModify (<options> } )  find, modify, and return
  • 47. db.colname’.remove({…})
  • 48. db.eval(…);
  • 49. http://localhost:28017/_commands  db.runCommand( { <commandname>: <value> [, options] } );  db.commandHelp("datasize")
  • 51. Http Console  http://localhost:28017/  mongostat  db.serverStatus()  db.stats()、db.colname.stats()  db.colname.validate()  系统监控  memory、cpu、IO
  • 52. setProfilingLevel(lvl, <ms>)  0: none  1: time-based(默认100ms)  2: all  db.system.profile.find()
  • 53. mongod --repair  db.repairDatabase();  mongod --journal  version 1.9.2+64-bit默认开启  group commit  db.colname.validate();
  • 54. Master  Master/slave  arbiterOnly  Replica sets  db.printReplicationInfo()  db.printSalveReplicationInfo()  oplog(capped collection,规划大小)
  • 57. Params  w: number of replicas to write to  wtimeout: time to wait for acknowledgements  fsync: flush to disk
  • 58. Unique Index  空间成本  维护  failover
  • 59. Single  One – Many & Many - Many  Embedded document(4M的限制)  Normalized  Tree
  • 60. Javascript执行性能
  • 62. db.addUser ("username", "password")  db.system.users.remove ({user: username})
  • 63. system.namespaces  system.indexes  system.profile  system.users  local.sources
  • 64. --rest选项
  • 65. 备份  mongodump、mongorestore  db.copyDatabase、db.cloneDatabase  Lock, Snapshot and Unlock admin.runCommand({fsync : 1, lock : 1}) db.$cmd.sys.unlock.findOne()  缺少传统数据库丰富的还原机制  队列
  • 66. 执行计划  db.colname.find({..}).expliain()  减小json数据的大小(使用较短的key)  优化索引、索引全部放入内存  优化document schema设计  db.eval() 在服务端执行某些操作  用BinData存储UUID格式的数据  36bytes->16bytes  使用连接池,修改每个连接的stack size  默认10M  预分配空间、减少内存和磁盘碎片  删除数据--不收回碎片
  • 67. NoSQL注入  --auth 启动参数  --noscripting启动参数
  • 68. 每个链接一个线程  单线程执行Map/Reduce  一个写线程
  • 69. 磁盘空间  内存  维护  事务
  • 70. mongo-csharp-driver (Github)  CSharp Driver Tutorial
  • 71. MongoDB Deployment Strategies  MongoDB开发应用实践  Optimizing MongoDB: Lessons Learned at Localytics  Chrome扩展Mongo Live  MongoDB部署与运维  10 Key MongoDB Performance Indicators  MongoDB Administration