데이터 베이스 MySQL 튜토리얼 MongoDB应用二三事

MongoDB应用二三事

Jun 07, 2016 pm 04:04 PM
mongodb 애플리케이션 데이터 연대 함께

最近,随着大数据时代的到来,NoSQL数据库作为数据库行业的后起之秀,在短短的几年之间,得到了迅猛的发展,而如今还大有取代RDBMS之势。在众多的NoSQL数据库中,名气最大的莫过于MongoDB了。MongoDB于2009年2月推出第一个版本,至今的5年多时间,其已经发展

最近,随着“大数据时代”的到来,NoSQL数据库作为数据库行业的后起之秀,在短短的几年之间,得到了迅猛的发展,而如今还大有取代RDBMS之势。在众多的NoSQL数据库中,名气最大的莫过于MongoDB了。MongoDB于2009年2月推出第一个版本,至今的5年多时间,其已经发展成为在DB Engine影响力排行世界第5位的数据库。

MongoDB具有以下几个特点:

1) 非结构化的数据结构,保证了适应多种多样的数据类型和形式,无需预先设计数据结构和表模式。

2) 水平扩张,理论上是可以无限扩展的水平扩展性。

3) 多样的功能和平台架构支持,经过其开发团队的自身推进以及Mongo开源社区的蓬勃发展,使得MongoDB支持越来越多的开发语言和大数据架构,同时也不断丰富了他的功能。

而本人作为一个大数据相关的从业人员,在工作中不断地学习MongoDB的知识,我自己也将其运用到了一些实际应用场景当中。

在使用MongoDB的过程中,其性能表现虽然中规中矩,也很好的体现了NoSQL的基本特性,但是实际应用场景之中,MongoDB仍然有不少功能上的不足以及性能上可改进之处。

1. 性能

首先我想谈谈MongoDB的性能表现。作为NoSQL数据库,MongoDB的读写查等许多操作的性能方面自然是领先于RDBMS的,然而在与其他的NoSQL产品比较时,MongoDB其实并没有太大的优势。

根据网上之前公布的一些权威机构的测试结果,MongoDB的性能在众多NoSQL数据库中只能说是一般般。读写性能方面,相比于HBase,MongoDB在少分区下还能基本持平,但是在多分区的情情景下性能表现也只有HBase的1/3甚至1/5。而与这方面的佼佼者Cassandra相比,Mongo在各项对比中,也只能达到Cassandra的1/10甚至更少。

http://planetcassandra.org/nosql-performance-benchmarks

而与存储方式同类的Couchbase相比,MongoDB似乎也不占优势。

http://www.csdn.net/article/2013-04-15/2814886-nosql-benchmark

http://www.couchbase.com/press-releases/couchbase-blows-past-competition-nosql-performance-benchmark

从以上两个测试报告也可以看出,作为NoSQL领军人物的MongoDB,在性能表现上确实差强人意。

2. 功能

2.1 事务

事务作为RDBMS一个非常实用的特性,在处理高可用性高安全性的情景,如企业级的应用时,事务有它独到的优点。

MongoDB并没有事务处理的功能,而在原子性的保证方面,其只能做到单个文档级别,不能支持多文件的原子性。

如今,MongoDB在开源之后应用层也有民间开发的集成了事务功能的组件,但是应用层的实现在数据库的通信上面不能保证性能和可靠性,也就很难提供更专业和完善的支持。

2.2 SQL支持

SQL作为已经使用了几十年的数据库操作语言,不仅在应用上,有着完善多样的接口和驱动,同时,SQL的思维在众多数据库使用者和DBA的脑中已经根深蒂固,想要迅速的改变这种思维方式是困难也没有必要的。所以,NoSQL对于SQL语句的支持也很重要。MongoDB并不具备这样的原生支持,同样,应用层的一些驱动并不能很好的结合数据库本身,完全发挥它的能量。

相反,有许多的同类产品已经提供自带的SQL语句处理,例如通过对接PostgreSQL来实现SQL语句支持,这样能让开发者更快的熟悉和转入NoSQL。

2.3 锁

MongoDB 只有库级粒度的锁,这意味着当 MongoDB 一个写锁处于占用状态时,其它的读写操作都需要等待。虽然因为改动过的锁处理机制让其能保证较高的并发量和高性能(感兴趣可以另外介绍)。

可是基本保证并能完全避免问题,如果数据操作不当,依然会导致长时间占用写锁,比如前台创建索引操作,当出现这种情况的时候,整个数据库就处于完全阻塞状态,无法进行任何读写操作,情况十分严重。

2.4 自动分区

体现MongoDB水平扩展能力的重要一个功能就是自动分区(auto-sharding),然而MongoDB的自动分区在实际应用当中也存在着不少问题。1)在高负载的情况下,MongoDB的自动分区功能会出现不可用或者运行缓慢的情况。2)可以看到网上有不少使用者在系统自动分区后出现数据错误或者数据丢失的情况(最出名的当然是Foursquare的宕机事件)。3)我自己在实际应用中也出现过类似问题,也就是MongoDB在高负载下,出现了数据的丢失,并且还没办法恢复。

2.5 Join

MongoDB不支持Join操作,需要在多个Collection中查找时,不能使用Join将多个Collection合并,只能分别在每个Collection中运行一次存储操作。

3. 安全性

MongoDB的原生数据库系统安全性虽然也是它极力展示的一个特性之一,但是事实上

MongoDB的安全性设计仍有缺陷。首先,MongoDB的默认安全设置为否,这给了很多不熟悉MongoDB特点的新人或是第一次转换NoSQL的企业用户一个非常大的安全隐患。此外,MongoDB也在网上被报道一些安全漏洞或者黑客攻击事件,包括非法数据获取、数据的无故丢失等这些事件究其原因也是安全保障设计的缺陷。

4. 易用性

易用上来说,MongoDB的表现也是中规中矩,虽然可以使用Javascript的Shell工具以及界面化的MMS,但是其操作仍有优化的空间。此外,MongoDB不具备自动安装部署功能。MongoDB的安装部署必须全手动操作,这样不仅比较耗时,对于新手来说可能因为不熟悉而忽略或不能完成一些系统配置的工作,导致安装失败或是使用过程中出现异常。

以上是我个人在实践中发现的MongoDB的几点不足,我认为,MongoDB虽然是作为NoSQL的领军人物在与关系型数据库华山论剑,但是其实他并不完善,所以我希望未来MongoDB自身能做出改进,当然我更希望能有新的数据库产品能后来居上,这样才能加快NoSQL数据库的更快进步。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

iPhone 홈 화면에서 삭제를 취소하는 방법 iPhone 홈 화면에서 삭제를 취소하는 방법 Apr 17, 2024 pm 07:37 PM

홈 화면에서 중요한 항목을 삭제하고 다시 복구하려고 하시나요? 다양한 방법으로 앱 아이콘을 화면에 다시 표시할 수 있습니다. 우리는 당신이 따라갈 수 있는 모든 방법과 홈 화면에 앱 아이콘을 다시 넣을 수 있는 방법에 대해 논의했습니다. 방법 1 - 앱 라이브러리에서 앱 아이콘 바꾸기 앱 라이브러리에서 직접 홈 화면에 앱 아이콘을 배치할 수 있습니다. 1단계 – 옆으로 스와이프하여 앱 라이브러리의 모든 앱을 찾습니다. 2단계 – 이전에 삭제한 앱 아이콘을 찾습니다. 3단계 – 메인 라이브러리의 앱 아이콘을 홈 화면의 올바른 위치로 드래그하기만 하면 됩니다. 이것은 응용 다이어그램입니다

iPhone의 느린 셀룰러 데이터 인터넷 속도: 수정 사항 iPhone의 느린 셀룰러 데이터 인터넷 속도: 수정 사항 May 03, 2024 pm 09:01 PM

지연이 발생하고 iPhone의 모바일 데이터 연결 속도가 느립니까? 일반적으로 휴대폰의 셀룰러 인터넷 강도는 지역, 셀룰러 네트워크 유형, 로밍 유형 등과 같은 여러 요소에 따라 달라집니다. 더 빠르고 안정적인 셀룰러 인터넷 연결을 얻기 위해 할 수 있는 일이 몇 가지 있습니다. 수정 1 – iPhone 강제 다시 시작 때로는 장치를 강제로 다시 시작하면 셀룰러 연결을 포함한 많은 항목이 재설정됩니다. 1단계 – 볼륨 높이기 키를 한 번 눌렀다가 놓습니다. 그런 다음 볼륨 작게 키를 눌렀다가 다시 놓습니다. 2단계 - 프로세스의 다음 부분은 오른쪽에 있는 버튼을 누르는 것입니다. iPhone이 다시 시작되도록 하세요. 셀룰러 데이터를 활성화하고 네트워크 속도를 확인하세요. 다시 확인하세요 수정 2 – 데이터 모드 변경 5G는 더 나은 네트워크 속도를 제공하지만 신호가 약할 때 더 잘 작동합니다

nodejs와 vuejs의 차이점 nodejs와 vuejs의 차이점 Apr 21, 2024 am 04:17 AM

Node.js는 서버측 JavaScript 런타임인 반면, Vue.js는 대화형 사용자 인터페이스를 생성하기 위한 클라이언트측 JavaScript 프레임워크입니다. Node.js는 백엔드 서비스 API 개발, 데이터 처리 등 서버 측 개발에 사용되고, Vue.js는 단일 페이지 애플리케이션, 반응형 사용자 인터페이스 등 클라이언트 측 개발에 사용됩니다.

초지능의 생명력이 깨어난다! 하지만 자동 업데이트 AI가 등장하면서 엄마들은 더 이상 데이터 병목 현상을 걱정할 필요가 없습니다. 초지능의 생명력이 깨어난다! 하지만 자동 업데이트 AI가 등장하면서 엄마들은 더 이상 데이터 병목 현상을 걱정할 필요가 없습니다. Apr 29, 2024 pm 06:55 PM

세상은 미친 듯이 큰 모델을 만들고 있습니다. 인터넷의 데이터만으로는 충분하지 않습니다. 훈련 모델은 '헝거게임'처럼 생겼고, 전 세계 AI 연구자들은 이러한 데이터를 탐식하는 사람들에게 어떻게 먹이를 줄지 고민하고 있습니다. 이 문제는 다중 모드 작업에서 특히 두드러집니다. 아무것도 할 수 없던 시기에, 중국 인민대학교 학과의 스타트업 팀은 자체 새로운 모델을 사용하여 중국 최초로 '모델 생성 데이터 피드 자체'를 현실화했습니다. 또한 이해 측면과 생성 측면의 두 가지 접근 방식으로 양측 모두 고품질의 다중 모드 새로운 데이터를 생성하고 모델 자체에 데이터 피드백을 제공할 수 있습니다. 모델이란 무엇입니까? Awaker 1.0은 중관촌 포럼에 최근 등장한 대형 멀티모달 모델입니다. 팀은 누구입니까? 소폰 엔진. 런민대학교 힐하우스 인공지능대학원 박사과정 학생인 Gao Yizhao가 설립했습니다.

미 공군이 주목할만한 최초의 AI 전투기를 선보였습니다! 전 과정에 걸쳐 장관이 직접 간섭 없이 테스트를 진행했고, 10만 줄의 코드를 21차례 테스트했다. 미 공군이 주목할만한 최초의 AI 전투기를 선보였습니다! 전 과정에 걸쳐 장관이 직접 간섭 없이 테스트를 진행했고, 10만 줄의 코드를 21차례 테스트했다. May 07, 2024 pm 05:00 PM

최근 군계는 미군 전투기가 이제 AI를 활용해 완전 자동 공중전을 완수할 수 있다는 소식에 충격을 받았다. 네, 얼마 전 미군의 AI 전투기가 최초로 공개되면서 그 미스터리가 드러났습니다. 이 전투기의 정식 명칭은 VISTA(Variable Stability Flight Simulator Test Aircraft)로 미 공군 장관이 직접 조종해 일대일 공중전을 모의 실험한 것이다. 5월 2일, 미 공군 장관 프랭크 켄달(Frank Kendall)이 X-62AVISTA를 타고 에드워드 공군 기지에서 이륙했습니다. 1시간의 비행 동안 모든 비행 작업은 AI에 의해 자동으로 완료되었습니다. Kendall은 "지난 수십 년 동안 우리는 자율 공대공 전투의 무한한 잠재력에 대해 생각해 왔지만 항상 도달할 수 없는 것처럼 보였습니다."라고 말했습니다. 그러나 지금은,

공장에서 일하는 테슬라 로봇, 머스크 : 올해 손의 자유도가 22도에 달할 것! 공장에서 일하는 테슬라 로봇, 머스크 : 올해 손의 자유도가 22도에 달할 것! May 06, 2024 pm 04:13 PM

테슬라의 로봇 옵티머스(Optimus)의 최신 영상이 공개됐는데, 이미 공장에서 작동이 가능한 상태다. 정상 속도에서는 배터리(테슬라의 4680 배터리)를 다음과 같이 분류합니다. 공식은 또한 20배 속도로 보이는 모습을 공개했습니다. 작은 "워크스테이션"에서 따고 따고 따고 : 이번에 출시됩니다. 영상에는 옵티머스가 공장에서 이 작업을 전 과정에 걸쳐 사람의 개입 없이 완전히 자율적으로 완료하는 모습이 담겨 있습니다. 그리고 Optimus의 관점에서 보면 자동 오류 수정에 중점을 두고 구부러진 배터리를 집어 넣을 수도 있습니다. NVIDIA 과학자 Jim Fan은 Optimus의 손에 대해 높은 평가를 했습니다. Optimus의 손은 세계의 다섯 손가락 로봇 중 하나입니다. 가장 능숙합니다. 손은 촉각적일 뿐만 아니라

단일 카드는 듀얼 카드보다 Llama를 70B 더 빠르게 실행합니다. Microsoft는 A100에 FP6을 넣었습니다 | 단일 카드는 듀얼 카드보다 Llama를 70B 더 빠르게 실행합니다. Microsoft는 A100에 FP6을 넣었습니다 | Apr 29, 2024 pm 04:55 PM

FP8 이하의 부동 소수점 수량화 정밀도는 더 이상 H100의 "특허"가 아닙니다! Lao Huang은 모든 사람이 INT8/INT4를 사용하기를 원했고 Microsoft DeepSpeed ​​팀은 NVIDIA의 공식 지원 없이 A100에서 FP6을 실행하기 시작했습니다. 테스트 결과에 따르면 A100에 대한 새로운 방법 TC-FPx의 FP6 양자화는 INT4에 가깝거나 때로는 더 빠르며 후자보다 정확도가 더 높은 것으로 나타났습니다. 또한 오픈 소스로 제공되고 DeepSpeed와 같은 딥 러닝 추론 프레임워크에 통합된 엔드투엔드 대규모 모델 지원도 있습니다. 이 결과는 대형 모델 가속화에도 즉각적인 영향을 미칩니다. 이 프레임워크에서는 단일 카드를 사용하여 Llama를 실행하면 처리량이 듀얼 카드보다 2.65배 더 높습니다. 하나

2024년 QS랭킹 공개! 컴퓨터 과학 MIT가 목록을 장악하고 있으며, 칭화 대학교가 11위, 북경 대학교가 15위를 차지하고 있습니다. 2024년 QS랭킹 공개! 컴퓨터 과학 MIT가 목록을 장악하고 있으며, 칭화 대학교가 11위, 북경 대학교가 15위를 차지하고 있습니다. Apr 18, 2024 pm 09:04 PM

2024QS 주제별 세계 대학 순위가 공개되었습니다! 전체적으로 2023년과 별 변화가 없습니다. 공식 홈페이지 정보에 따르면 2024QS 과목별 세계 대학 순위는 55개 세부 분야, 5개 주요 학문 분야를 다루고 있다. 순위에는 총 1,559개 대학이 참여했으며, 그 중 64개가 올해 새로운 얼굴이다(즉, 2023년 순위에는 나타나지 않는다). 이들 64개 대학 중 14개 대학이 실제로 처음으로 등장했습니다. 그 중에는 중국 과학 아카데미 대학이 있습니다. 세련된 과목에 따르면 음악은 올해 새롭게 도입된 과목이다. 또한, 데이터과학과 인공지능 순위도 확대돼 51개 대학이 새롭게 순위에 추가됐다. 전체 목록의 상위 5개 대학은 MIT, 캠브리지 대학, 옥스퍼드 대학, 하버드 대학입니다.

See all articles