使用MongoDB开发实践体会

php中文网
发布: 2016-06-07 17:17:58
原创
1060人浏览过

年前在项目中使用了NoSQL的代表之一 mdash;mdash; MongoDB,微博上总结了一些心得,在这里和各位分享一下。MongoDB是一个非常适

年前在项目中使用了nosql的代表之一 —— mongodb,微博上总结了一些心得,在这里和各位分享一下。
 
开发中用mongodb的爽快之处
 
mongodb是一个非常适合php开发的#nosql# 数据库,尤其支持高并发和schema-free(自由结构)特性,使得php开发变得更灵活,更高效。大家都来试试吧!
 
或许很多时候,记录在mysql里面的自由字段(如序列化后的数组),都很难去回忆或者找到在什么地方。而mongodb却可以让你轻松找到需要的数组,而且很有规律(条件查询)。这种轻松,对比起来就知道了。
 
mysql在大数据量情况下,orderby和groupby的效率会非常的低。从目前的实践来看,mongodb是很有希望和很有必要替代orderby和groupby,因其有灵活的数据结构模型,可作为一个可查找和排序、归类的数据中间缓存层,而且效率会比通常的mysql查询高很多。
 
思考mongodb的使用场景
 
重要数据:mysql,一般数据:mongodb,临时数据:memcache
 
对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于php程序而言,mongodb可以作为一个持久化的数组来使用,,并且这个持久化的数组还可以支持排序、条件、限制等功能。
 
将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合成业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计后生成view,在对view进行查询和报表。从这个意义上,mongodb提供了一个更快速,更使用的view
 
php中使用mongodb要注意的
 
mongodb等nosql技术,作为memcache和mysql的一个中间view是比较好的选择。而nosql进行持久化是非常不好的事情,除非有ssd硬盘,否则普通硬盘条件下,持久化会令系统负担极大,并且效率甚至有可能比mysql还要低。
 
在用 php 操作 mongodb 时,排序字段值需要强制类型。不然排序的时候会有问题。 不强制类型时会 类似以下形式: 1 10 2 3 解决办法就是在写入的时候 加上 (int)$sort 强制一下类型。
 
mongodb遇到“caught exception: non-utf8 string: ”的异常,这是插入非utf8编码文字的时候就会抛出
 
以上就是我在微博中总结的一些mongodb使用的体会,你有什么看法呢?欢迎评论留言!

Gnomic智能体平台
Gnomic智能体平台

国内首家无需魔法免费无限制使用的ChatGPT4.0,网站内设置了大量智能体供大家免费使用,还有五款语言大模型供大家免费使用~

Gnomic智能体平台 47
查看详情 Gnomic智能体平台

linux

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号