MongoDB是一个面向文档的数据库,属于NoSQL数据库,它使用类似JSON的文档和schemata。
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的繁昌网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
MongoDB的默认接口是(CLI)命令行,新用户很难像专业人员那样处理数据库。因此,有一些MongoDB管理工具来提供GUI界面以提高生产力。就像phpmyadmin为MySQL/MariaDB数据库提供基于HTTP网络的GUI界面一样。但是,此处包含的所有工具都不是基于HTTP的,只有少数工具为MongoDB提供Web界面。以下是使用GUI的比较流行的MongoDB管理工具列表:
要从具有图形用户界面的MongoDB开始,MongoDB是最好的方法之一。MongoDB Compass Community由MongoDB开发人员开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI mongodb工具,以 探索 数据库交互;具有完整的CRUD功能并提供可视方式。借助内置模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器的负载,它提供了数据库操作的实时统计信息。就像MongoDB一样,Compass也有两个版本,一个是Enterprise(付费),社区可以免费使用。适用于Linux,Mac或Windows。
NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它带有一堆mongodb工具来管理数据库和监控服务器。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等等......它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBooster也可用于Windows,MacOS和Linux。
ClusterControl是另一个MongoDB工具,具有管理数据库基础结构的GUI。它还有两个版本 - 社区和企业版。不用说,ClusterControl社区版可以免费使用,而企业则是付费的。它不仅限于MongoDB,还支持MySQL,MySQL复制,MySQL NDB集群,Galera集群,MariaDB,PostgreSQL,TimescaleDB,Docker和ProxySQL。
ClusterControl为数据库基础架构提供全自动安全性,该基础架构具有单个图形用户界面,可操作和自动化MongoDB和MySQL数据库环境。它可通过YUM/APT提供回购,适用于Linux平台(RedHat,Centos,Ubuntu或Debian)。
Nosqlclient是一个免费的开源MongoDB管理工具,基于Web的GUI意味着不再需要命令行来管理数据库。我们可以使用Nosqlclient在MongoDB中插入,删除或更新数据,而无需使用查询。它可作为桌面应用程序,Docker和Web应用程序使用。Web使用HTTP为MOngoDB提供基于浏览器的界面。
Robo 3T由MongoDB客户端Studio 3T的开发人员维护和提供。以前,Robo 3T被称为Robomongo。它也是适用于Windows,MacOS和Linux的跨平台MongoDB GUI管理工具。它具有相同的引擎和环境,是MongoDB shell(3.2)的一部分。
上面提到的Robomong被3T收购并更名为Robot 3T;现在是Studio 3T的一部分。那么,Studio 3T是什么?与其他提到的MongoDB管理GUI工具一样,Studio 3T也是一个基于GUI的工具,用于管理数据库,但在付费类别中。但是,此工具的30天免费试用版允许用户在投入资金之前使用并了解其功能。与免费和开源Robot 3T相比,Studio 3T具有更多功能并提供企业支持。与Robo 3T相同,它也适用于Windows,Linux(Ubuntu和CentOS)和MacOS。
Mongo Management Studio是一个用于数据库管理的免费MongoDB GUI工具。它轻巧,界面清晰,易于开发基于MongoDB的项目。它使用nodeJs,Electron框架,MongoDB和AngularJs开发。MMS与MongoDB 3.0/3.2/3.4兼容。
与上述所有MongoDB管理工具一样,用户可以轻松安装它,但免费版仅适用于Windows;而企业和个人则适用于Linux,Windows和MacOS。企业版(Web服务器)支持MongoDB Web界面HTTP GUI,这意味着我们可以在主服务器上安装,之后可以在本地或远程使用浏览器的任何系统上访问。但是,个人版和免费版只能在已安装它们的本地系统上使用。
它是面向关系,NoSQL和云平台的数据库开发人员的通用集成开发环境(IDE)。因此,支持各种数据库来开发,访问,管理和可视化分析数据。
对于MongoDB,Aqua Data Studio使用具有管理和数据库查询功能的图形用户界面作为管理工具。Aqua Data studio的Visual界面允许用户浏览和修改数据库结构,包括模式对象和集合,以及维护数据库安全性。
它提供了一个MongoDB数据库工具包,包括各种工具,如Visual Analytics,MongoSQL查询参考,MongoJS查询分析器,MongoShell MongoShell,FluidShell,查询和分析工具,网格和数据透视图,表数据编辑器,导入和导出工具,实体关系建模;Visual Query Builder;比较工具:架构比较,文件比较;SQL 历史 记录,Open API脚本环境,集成安全Shell(SSH)和版本控制:Subversion(SVN),Git,CVS,Perforce。
MongoJS查询分析器Javascript编辑器允许执行JavaScript命令并支持自动完成和语法突出显示。结果可以在树层次结构,网格结果和文本中看到。
作为付费产品,Aqua Data Studio的试用版提供14天,具有所有企业功能。所以,如果你正在寻找一些付费产品,那么你可以在花钱之前免费试用它。它适用于Windows,Linux和MacOS。
这听起来像phpMyAdmin工具。但是,phpMoAdmin也是PHP编写的但是可用于MongoDB。它基于Vork PHP框架。很轻巧,易于安装。它只有115KB的moadmin.php文件,用户可以放在网站的任何地方开始工作。
它是一个跨平台的MongoDB管理工具,在Open Source许可下发布,使用Electron框架和Angular JS构建。可在GitHub上找到。
以上谈到了Windows,Linux和MacOS MongoDB管理客户端,所以那些正在寻找智能手机和平板电脑的用户mongoDB管理可以试试Mongolime。它为MongoDB移动客户端提供了轻松连接和访问MongoDB服务器的功能。它具有内置的SSH隧道,可以通过SSL轻松验证和连接远程服务器。MongoLime是免费增值MongoDB客户端应用程序,支持iOS和Android平台。
使用Node.js,Express和Bootstrap3编写的基于Web的MongoDB管理界面。它允许连接多个数据库;查看/添加/删除数据库,集合和文档;预览音频/视频/图像资产;GridFS支持 - 添加/获取/删除难以置信的大文件;在文档中使用BSON数据类型,Mobile / Responsive - Bootstrap以及更多功能。
本文主要内容是测试了不同NoSQL数据库在测试工具YCSB中的表现。我们选取了3款流行的内存(in-memory)数据库管理系统:Redis,Tarantool 以及 CouchBase,还有缓存系统Memchached。Memchached虽然不属于数据库管理系统但常作为快速存储系统使用。
测试环境由4台在Microsoft Azure Cloud中的虚拟机组成的计算机组组成。这些虚拟机同属于一个数据中心。nosql-1和nosql-2用作测试Tarantool和CouchBase,nosql-3和nosql-4用作测试Redis,Azure Redis Cache 以及 Memcached。这些机器都安装和配置了相应数据库和测试项目。虚拟机的配置为4核A3 CPU,7GB RAM,120GB硬盘。
数据库及设置
内存数据库管理系统会存储所有在主内存中的数据并在磁碟上进行持续更新操作;透过日志记录每个数据的修改以确保连贯性。由于是以append-only方式进行日志写入,因此它很少遇到瓶颈问题;读取/写入都不会造成频繁的磁碟头移动。
Redis在2009推出,目前的最新版本是3.0.5。我们这里使用的版本是3.0.4,以append-only(只附加)方式进行数据管理,与其配合使用的是Microsoft Azure Redis Cache工具。
Tarantool是一款开源NoSQL数据库管理系统。我们使用的是Tarantool 1.6.7-126-gb35aff9,日志采用write-ahead(先写)模式。Memcached是一款分布式内存缓存系统,这里使用是Memcached 1.4.14-0ubuntu9。
Couchbase Server是开源分布式NoSQL面向文档数据库,这里使用的版本是Couchbase 4.0.0-4047-1。
YCSB测试工具
Yahoo! Cloud Serving Benchmark(YCSB)是功能强大的NoSQL数据库性能测试工具,它提供了6种主要的负载工作类型,以字母A到F来区分。
负载A负责更新操作,极值是50/50的读写操作,如用于进行新近操作记录。负载B负责读取操作,极值是95/5的读写操作,如用于进行图片标签管理,多进行标签读取操作。负载C负载100%的读取操作,如用于进行用户属性获取。负载D以先进先出方式进行插入操作,如用户进行最新数据读取。负载E负责小范围记录读取而不是单个记录读取,如线程会话。负载F负责记录的读取,修改和写入,如用户信息管理。
我们对配置文件作了两处参数修改:数据条目recordcount设为200000,操作条目operationcount设为5000000。YCSB是多线程工具,我们将以8, 16, 32, 64, 128 及256 线程来进行测试。详细的测试脚本请点击这里进行下载。
下列测试结果图以颜色进行测试对象区分,
Tarantool (HASH) (蓝)
Tarantool (TREE)(浅蓝)
Redis (红)
Azure Redis Cache (橙)
Memcached (绿)
CouchBase(黑)
更多图片请点击[这里]查看。
结论
Tarantool在所有负载类型测试中皆取得了最优成绩。它创建了一个无锁内存引擎,以协同多任务方式进行操作而不是互斥或并行处理方式。根据以下性能图表现,我们的结论是Tarantool的高吞吐量处理是其最大优势之一。因此在多数场合下,Tarantool是用户的最佳选择。
“NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。”
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
Memcache Memcache Redis Redis MongoDB MongoDB 列式数据库 列式数据库 Hbase Hbase
HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。
HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。
Cassandra Cassandra
Apache Cassandra是一款免费的开源NoSQL数据库,其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。
主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)
NoSQL 数据库因其功能性、易于开发性和可扩展性而广受认可,它们越来越多地用于大数据和实时 Web 应用程序,在本文中,我们通过示例讨论 NoSQL、何时使用 NoSQL 与 SQL 及其用例。
NoSQL是一种下一代数据库管理系统 (DBMS)。NoSQL 数据库具有灵活的模式,可用于构建具有大量数据和高负载的现代应用程序。
“NoSQL”一词最初是由 Carlo Strozzi 在 1998 年创造的,尽管自 1960 年代后期以来就已经存在类似的数据库。然而,NoSQL 的发展始于 2009 年初,并且发展迅速。
在处理大量数据时,任何关系数据库管理系统 (RDBMS) 的响应时间都会变慢。为了解决这个问题,我们可以通过升级现有硬件来“扩大”信息系统,这非常昂贵。但是,NoSQL 可以更好地横向扩展并且更具成本效益。
NoSQL 对于非结构化或非常大的数据对象(例如聊天日志数据、视频或图像)非常有用,这就是为什么 NoSQL 在微软、谷歌、亚马逊、Meta (Facebook) 等互联网巨头中特别受欢迎的原因。
一些流行的 NoSQL 数据库包括:
随着企业更快地积累更大的数据集,结构化数据和关系模式并不总是适合。有必要使用非结构化数据和大型对象来更好地捕获这些信息。
传统的 RDBMS 使用 SQL(结构化查询语言)语法来存储和检索结构化数据,相反,NoSQL 数据库包含广泛的功能,可以存储和检索结构化、半结构化、非结构化和多态数据。
有时,NoSQL 也被称为“ 不仅仅是 SQL ”,强调它可能支持类似 SQL 的语言或与 SQL 数据库并列。SQL 和 NoSQL DBMS 之间的一个区别是 JOIN 功能。SQL 数据库使用 JOIN 子句来组合来自两个或多个表的行,因为 NoSQL 数据库本质上不是表格的,所以这个功能并不总是可行或相关的。
但是,一些 NoSQL DBMS 可以执行类似于 JOIN的操作——就像 MongoDB 一样。这并不意味着不再需要 SQL DBMS,相反,NoSQL 和 SQL 数据库倾向于以不同的方式解决类似的问题。
一般来说,在以下情况下,NoSQL 比 SQL 更可取:
许多行业都在采用 NoSQL,取代关系数据库,从而为某些业务应用程序提供更高的灵活性和可扩展性,下面给出了 NoSQL 数据库的一些企业用例。
内容管理是一组用于收集、管理、传递、检索和发布任何格式的信息的过程,包括文本、图像、音频和视频。NoSQL 数据库可以通过其灵活和开放的数据模型为存储多媒体内容提供更好的选择。
例如,福布斯在短短几个月内就构建了一个基于 MongoDB 的定制内容管理系统,以更低的成本为他们提供了更大的敏捷性。
大数据是指太大而无法通过传统处理系统处理的数据集,实时存储和检索大数据的系统在分析 历史 数据的同时使用流处理来摄取新数据,这是一系列非常适合 NoSQL 数据库的功能。
Zoom使用 DynamoDB(按需模式)使其数据能够在没有性能问题的情况下进行扩展,即使该服务在 COVID-19 大流行的早期使用量激增。
物联网设备具有连接到互联网或通信网络的嵌入式软件和传感器,能够在无需人工干预的情况下收集和共享数据。随着数十亿台设备生成数不清的数据,IoT NoSQL 数据库为 IoT 服务提供商提供了可扩展性和更灵活的架构。
Freshub就是这样的一项服务,它从 MySQL 切换到 MongoDB,以更好地处理其大型、动态、非统一的数据集。
拥有数十亿智能手机用户,可扩展性正成为在移动设备上提供服务的企业面临的最大挑战。具有更灵活数据模型的 NoSQL DBMS 通常是完美的解决方案。
例如,The Weather Channel使用 MongoDB 数据库每分钟处理数百万个请求,同时还处理用户数据并提供天气更新。
1、MySQL
MySQL是一个开源的关系型数据库管理系统,为甲骨文公司产品。支持多种存储引擎、集群、全文索引、支持多线程、充分利用CPU资源、支持多用户等其它许多非常专业的功能。
MySQL由于性能高、成本低、可靠性好已经成为最流行的开源数据库,并且被广泛应用在Web应用程序以及其它中小型项目上。从WordPress到Movable
Type都把MySQL作为默认的数据库。此外,自甲骨文收购MySQL以后,又将MySQL闭源的潜在风险,因此社区采用分支的方式避开这种风险,开发并运营着完全兼容MySQL的MariaDB数据库。
2、MongoDB
MongoDB是一款开源、面向文档并且也是当下人气最旺的Nosql数据库,它也是一款介于关系数据库和非关系数据库之间的产品。Mongo最大特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。还具有高性能、易部署、易使用,存储数据非常方便等特点。
3、Hadoop
Hadoop是一个开源的、基于列存储模型的分布式数据库,它是Apache Hadoop项目的一部分,开发语言为Java。
Hadoop不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是Hadoop基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸缩、并建立在关系模型基础上的分布式数据库。
4、Redis
Redis是一个开源、支持网络、基于内存、键值对存储数据库。开发者无需存储数字和字符串即可dump整个哈希值、列表、集合以及其它复杂的结果存储,此外,Redis还提供复制/同步和持久化等功能。
Redis是一个高性能的键值对数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
5、MariaDB
MariaDB数据库管理系统是MySQL的一个分支,完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。另外又添加了一些功能,以支持本地的非阻塞操作和进度报告。这意味着,所有使用MySQL的连接器、库和应用程序也将会在MariaDB下工作。