文章分类 -  MongoDB

1 2 下一页

MongoDB的真正性能
摘要:使用情景开始之前,我们先设定这样一个情景:1.一百万注册用户的页游或者手游,这是不温不火的一个状态,刚好是数据量不上不下的一个情况。也刚好是传统MySql数据库性能开始吃紧的时候。2.数据库就用一台很普通的服务器,只有一台。读写分离、水平扩展、内存缓存都不谈。一百万注册用户如果贡献度和活跃度都不高,恐怕公司的日子还不是那么宽裕,能够在数据库上的投资也有限。以此情景为例,设每个用户都拥有100个道具,用户随时会获得或失去道具。我们就来看看这一亿的道具怎么搞。道具一般要使用原型、实例的设计方法,这个不属于数据库的范畴。道具类型001 是屠龙刀,屠龙刀价格1500,基础攻击150,这些,我们把它们称 阅读全文

posted @ 2014-03-25 16:02 一个石头 阅读(217) 评论(0) 推荐(0) 编辑

多线程下pymongo连接数过多的问题处理
摘要:背景项目中有个应用,用到了多线程,线程中会有对MongoDB的操作。一般涉及到这种场景,都会小心MongoDB的连接的数量控制。实现这个应用的时候必然已经考虑这点了,但实际碰到的情况是:多线程的程序运行起来,MongoDB连接数比预期多。涉及的环境:LinuxPython 2.6.5MongoDB 2.0.0MongoDB的驱动是pymongo。本文涉及的版本有4个:1.1.1、2.0.1、2.1.1,以及最新的2.2rc1。过程简化的代码先用一段简化的代码来说明下这个问题。#-*- encoding:UTF-8 -*-import threadingimport timeimport pym 阅读全文

posted @ 2014-03-25 15:20 一个石头 阅读(3474) 评论(0) 推荐(0) 编辑

mongodb中的AND和OR
摘要:mongodb中的AND和OR例如在集合XXX中寻找名字为BuleRiver或者BuleRiver2的信息:[javascript]db.XXX.find({"$or":[{"name":"BuleRiver"}, {"name":"BuleRiver2"}]}); 如果是AND关系的话,直接这样[javascript]db.XXX.find({"name":"BuleRiver", "level":1}); 阅读全文

posted @ 2014-02-19 11:52 一个石头 阅读(451) 评论(0) 推荐(0) 编辑

tornado的mongo驱动选择,pymongo,motor,asyncmongo还是其他?
摘要:背景我用apache的ab test在公司的两台虚拟机上面测试,发现用pymongo的速度最快,asyncmongo其次,最后才是motor库.囧機器配置server端ubuntu 12.04Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz內存 500M基本的server配置全部打開 ˜(比如maxsoconn设到很大)client端freebsd(机子在公司,暂时空缺=.=)測試工具ab test测试用例我这里只贴了asyncmongo的用例,其他两个的代码结构类似,但跟其他业务结合得比较紧,所以就不贴了.大概的用例描述:客户端发起一个json格式的pos 阅读全文

posted @ 2013-12-17 17:09 一个石头 阅读(710) 评论(0) 推荐(0) 编辑

MongoDB 标准连接字符串
摘要:mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]注:并非所有MongoDB驱动都支持完整的连接字符串,不支持此格式连接字串的驱动会有替代连接方案,具体请参照驱动自身的说明文档。 mongodb:// 是连接字串必须的前缀字串 username:password@ 可选项,连接到数据库后会尝试验证登陆 host1 必须的指定至少一个host :portX 可选项,默认连接到27017 /database 如果指定username:pas 阅读全文

posted @ 2013-10-03 22:44 一个石头 阅读(290) 评论(0) 推荐(0) 编辑

MONGODB 阶段性技术总结 【转】
摘要:联合开发,运维,对mongodb 做了一个技术总结。 其中一些关于公司的数据,就擦去了,各位见谅。生产环境最佳实践1.linux 系统:1】关闭文件系统/分区的atime 选项Vi /etc/fstab在对应的分区项后面添加noatime ,nodiratimeLABEL=/1 / ext3 defaults 1 1LABEL=/data1 /data ext4 defaults,noatime,nodiratime 1 22】设置文件句柄4k+,目前该配置已经集成到启动脚本中。Vi /etc/security/limit.conf* soft nproc 65536* hard nproc 阅读全文

posted @ 2013-10-03 22:13 一个石头 阅读(170) 评论(0) 推荐(0) 编辑

创建具有安全验证的Replset cluster(复制集集群)
摘要:版本:mongodb 2.0.4以下安装假设所有目录及文件已经存在该集群为在三台机器上的三个节点,分别为:repl01.mongodb,repl02.mongodb,repl03.mongodb所开端口号为:6666(偶开的端口不是6666就是8888)假设mongodb的安装目录为$MONGO_HOME在三台机器上都执行如下脚本:$MONGO_HOME/bin/mongod –port 6666 –path /data/mongodb/data –logpath /opt/logs/repl-mongod.log –logappend –keyFile /data/mongodb/conf/ 阅读全文

posted @ 2013-10-03 21:52 一个石头 阅读(348) 评论(0) 推荐(0) 编辑

MongoDB 分片Sharding 提案 及 chunks块 和 片键分析
摘要:MongoDB 分片Sharding 方案 及 chunks块 和 片键分析--------------------------------------------------------------------------------0,创建3个Shard Server//创建数据库,日志文件[root@localhost ~]# mkdir -p /data/shard/s0[root@localhost ~]# mkdir -p /data/shard/s1[root@localhost ~]# mkdir -p /data/shard/s2[root@localhost ~]# mkd 阅读全文

posted @ 2013-10-03 19:36 一个石头 阅读(340) 评论(0) 推荐(0) 编辑

mongodb exception in initAndListen: 12596 old lock file, terminating解决方法
摘要:错误信息如下:exception in initAndListen: 12596 old lock file, terminating解决方法1.删除data目录中的.lock文件2.mongod.exe --repair3.启动mongod就可以了将mongodb注册成windows系统服务后,如何在服务启动的时候自动删除mongod.lock文件制作一个定时任务, 开机启动这个任务执行一个bat文件bat中先执行删除 mongod.lock文件, 然后再 start mongo服务 阅读全文

posted @ 2013-06-24 11:23 一个石头 阅读(239) 评论(0) 推荐(0) 编辑

MongoDB基本使用
摘要:成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令:show dbs:显示数据库列表show collections:显示当前数据库中的集合(类似关系数据库中的表)show users:显示用户use <db name>:切换当前数据库,这和MS-SQL里面的意思一样db.help():显示数据库操作命令,里面有很多的命令db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令db.foo.find():对于当前数据库中的foo集合进行数 阅读全文

posted @ 2013-06-18 13:33 一个石头 阅读(102) 评论(0) 推荐(0) 编辑

压缩 MongoDB 的数据文件
摘要:MongoDB采用了磁盘空间预分配的机制,为了避免磁盘碎片以及使用mmap后造成的近一步的内存碎片,但是随着数据的增删除改操作,数据文件不可避免的会产生空洞,造成磁盘空间和内存的浪费。本文说的是这方面的压缩,数据使用某些压缩算法进行压缩的讨论不在此范围。在MongoDB 中,大概有两种方法可以解决这种问题,但是都不是无痛方式,所以并不推荐使用。1.通过repairDatabase整理数据文件repairDatabase 是MongoDB 内置的一个db 上的方法,调用这个方法,MongoDB 会扫描db中的所有数据,并将通过重新插入来重新整理数据集合。这种方法的代价是对这个 db 的读写操作会 阅读全文

posted @ 2013-06-18 11:52 一个石头 阅读(395) 评论(0) 推荐(0) 编辑

MongoDB 关于索引的建议
摘要:我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。有几点要记住。第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。第二,更重要的是,这些索引的建议对你的应用提高也是有限的。对于应用的最佳索引策略应该基于很多的重要因素。包含了你期望查询的类型,数据读取与写入的比率,甚至于你服务器的空闲内存。意思就是,需要对线上的产品做很多的测试剖析工作,才能调整出最佳的索引策略。没有什么好的方法可以替代实际经验的。注意: 如果你是个新手,建议阅读read this introductory article first.索引策略下面有些索引的基本法 阅读全文

posted @ 2013-06-18 11:28 一个石头 阅读(860) 评论(0) 推荐(0) 编辑

mongoDB 中的group
摘要:mongodb 是一种NoSQL 数据,怎样能够实现关系数据库中的group功能?GroupNote: currently one must use map/reduce instead of group() in sharded MongoDB configurations.groupreturns an array of grouped items. The command is similar to SQL's group by. The SQL statementselect a,b,sum(c) csum from coll where active=1 group by a 阅读全文

posted @ 2013-06-08 10:30 一个石头 阅读(461) 评论(0) 推荐(0) 编辑

mongodb distinct 的使用,以及如何计算distinct后的count值
摘要:db.runCommand({"distinct":"accesslog","key":"deviceId","query":{"time":/^2011-12-15/}}).values.length();相当于sql:select count(deviceId) from (select distinct deviceId from accesslog where time like "2011-12-15%") ;解释:查询2011-12-15日,d 阅读全文

posted @ 2013-06-08 10:29 一个石头 阅读(1264) 评论(0) 推荐(0) 编辑

MongoDB整库备份与还原以及单个collection备份、恢复
摘要:mongodb数据库维护离不开必要的备份、恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了。mongodump.exe备份的原理是通过一次查询获取当前服务器快照,并将快照写入磁盘中,因此这种方式保存的也不是实时的,因为在获取快照后,服务器还会有数据写入,为了保证备份的安全,同样我们还是可以利用fsync锁使服务器数据暂时写入缓存中。备份前的检查> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)test 0.0625GB> use MyDBswitched to db My 阅读全文

posted @ 2013-06-05 10:36 一个石头 阅读(266) 评论(0) 推荐(0) 编辑

MongoDB学习笔记(索引)
摘要:一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: > db.test.getIndexes() 删除索引的命令是: > db.test.dropIndex({"username":1}) 在MongoDB中,我们同样可以创建复合索引,如: -- 数字1表示username键的索引按升序存储,-1表示age键的索引按照降序方式存储。 > 阅读全文

posted @ 2013-05-31 17:27 一个石头 阅读(127) 评论(0) 推荐(0) 编辑

mongodb慢查询记录
摘要:在 MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是Mongo Database Profiler.不仅有,而且还有一些比MySQL的SlowQuery Log更详细的信息。它就是我们这篇文章的主题。 开启 Profiling 功能 有两种方式可以控制 Profiling 的开关和级别,第一种是直接在启动参数里直接进行设置。 启动MongoDB时加上–profile=级别 即可。 也可以在客户端调用db.setProfilingLevel(级别) 命令来实时配置。可以通过db.getProfilingLevel()命令... 阅读全文

posted @ 2013-05-31 17:24 一个石头 阅读(257) 评论(0) 推荐(0) 编辑

Mongodb之(初出茅庐)
摘要:Mongodb之(初出茅庐)首先,感谢cnblogs TV,感谢博主的TV,更感谢对上期分享支持的朋友们。在你们的支持,才有了让我写下这一期的动力。夜晚也许你在电视机边看电视,也许你在网上看电影。而我在坚守了一天的电脑之后,继续坐到了电脑边,听着北京广播网的87.6,写着技术分享。好了重点来了,也是very important.接着说我们的mongodb吧 www.2cto.com mongodb也能做mysql、sqlserver能做的几乎所有功能。一、操作符操作符相信大家肯定都知道了,就是等于、大于、小于、不等于、大于等于、小于等于,但是在mongodb里不能直接使用这些操作符。在mong 阅读全文

posted @ 2013-05-31 14:55 一个石头 阅读(123) 评论(0) 推荐(0) 编辑

mongodb查询最小值min和最大值max的方法
摘要:c#代码最小值原理:按某个值顺序排序,第一条就是最小值 最大值原理:按某个值倒序排序,第一条就是最大值var min = collection.FindAll().SetSortOrder(SortBy.Ascending("val")).SetLimit(1).FirstOrDefault();var max = collection.FindAll().SetSortOrder(SortBy.Descending("val")).SetLimit(1).FirstOrDefault();这是一个变通的方法。不知道大家还有别的方法,请赐教!!! 阅读全文

posted @ 2013-05-19 16:39 一个石头 阅读(16436) 评论(0) 推荐(0) 编辑

mongodb与关系型数据库相比的优缺点
摘要:与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延迟。他们需要的是一个“大约”的数字以及更快的处理速度。但某些情况下MongoDB会锁住数据库。如果此时正有数百个请求,则它们会堆积起来,造成许多问题。我们使用了下面的优化方式来避免锁定:每次更新前,我们会先查询记录。查询操作会将对象放入内 阅读全文

posted @ 2013-05-18 13:48 一个石头 阅读(271) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示