MongoDB一些规则

MongoDB命名规范

  • 不能是空字符串
  • 不能含有.、''、*、/、\、<、>、:、?、$、\0。建议只使用ASCII码中字母和数字
  • 数据库名区分大小写
  • 数据库名长度最多为64字节
  • 集合名不能包含\0字符,这个字符表示集合名的结束
  • 集合名不能是空字符串""
  • 集合名不能使用系统集合的保留前缀"system."
  • 集名名中不建议包含字符'$',虽然很多驱动程序可以支持包含此字符的集合名

MongoDB集合数量

默认情况下,MongoDB 的每个数据库的命名空间保存在一个 16MB 的 .ns 文件中,平均每个命名占用约 628 字节,也即整个数据库的命名空间的上限约为 24000。
每一个集合、索引都将占用一个命名空间。所以,如果每个集合有一个索引(比如默认的 _id 索引),那么最多可以创建 12000 个集合。如果索引数更多,则可创建的集合数就更少了。同时,如果集合数太多,一些操作也会变慢。甚至使得MongoDB集群无法服务的情况发生!

MongoDB保留库名

  • admin
  • local
  • config

MongoDB连接池

connectionsPerHost:每个主机答应的连接数(每个主机的连接池大小),当连接池被用光时,会被阻塞住,默认值为100
threadsAllowedToBlockForConnectionMultiplier:线程队列数,它和上面connectionsPerHost值相乘的结果就是线程队列最大值。如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误,默认值为5,则最多有500个线程可以等待获取连接
maxWaitTime: 被阻塞线程从连接池获取连接的最长等待时间(ms)。默认值为120,000
connectTimeout:在建立(打开)套接字连接时的超时时间(ms)。默认值为10,000
socketTimeout:套接字超时时间(ms)。默认值为0,无限制(infinite)
autoConnectRetry:这个控制是否在连接时,会自动重试,2.13驱动已经【废弃】,请使用connectTimeout代替它


Replica set读写分类
set.ReadPreference = new ReadPreference(ReadPreferenceMode.PrimaryPreferred);

状态说明:

primary 主节点,默认模式,读操作只在主节点,如果主节点不可用,报错或者抛出异常。

primaryPreferred 首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点。

secondary 从节点,读操作只在从节点, 如果从节点不可用,报错或者抛出异常。

secondaryPreferred 首选从节点,大多情况下读操作在从节点,特殊情况(如单主节点架构)读操作在主节点。

nearest 最邻近节点,读操作在最邻近的成员,可能是主节点或者从节点

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值