検索
企业应用NoSQL的关键Jun 07, 2016 pm 04:44 PM
nosqloracleデータベース

有关NoSQL能否胜任企业级数据库的功能的讨论现在是甚嚣尘上,其中人们关注的焦点就是NoSQL数据库的环境是不确定、变化的。一些No

有关NoSQL能否胜任企业级数据库的功能的讨论现在是甚嚣尘上,其中人们关注的焦点就是NoSQL数据库的环境是不确定、变化的。

一些NoSQL企业号称已经准备好企业级的服务了,但是事实上却是他们对企业需要的功能属性仍然是没有做到扎实的,甚至有的为了保证数据库的表现把相关的属性都移除了。这种情况对于测试原型或者非生产环境下当然可以接受,但是很难想象实际应用中,企业会把他们最关键的数据用这样危险的方式处理。

NoSQL数据库的特征是灵活、敏捷、快速和可扩展,同时还拥有灾难恢复和高的可用性。当然,如果开发一款企业级应用的NoSQL数据库,以上的特性还不够,最主要的还要能支持企业级应用的要求,,包括事务的一致性、SQL支持等。

如今,NoSQL已经进入了数据库行业的主流,数据中心的管理员们正在认真的研究这个新的技术,以保证他能够满足企业的所有要求,而不只是其中一部分。只有这样,企业才可以真正好好地发掘和管理好大量数据背后的价值,并且把操作规范化,同时避免了可能出现的风险。

事务

ACID事务原本是RDBMS的一个“独门绝技”,如今的NoSQL基本没有此类的内容。因为向一个本来就不以一致为目标的数据库中加入一致性功能,这个难度是可想而知的,因此后来才出现了“最终一致性”。有了“最终一致性”,虽然不能时刻保证数据的完全一致,但是也在很大程度上解决了一致性的问题,而且实际应用的情况下,“最终一致性”完全能满足大多数应用的要求。

此外,事务和NoSQL其实并不是对立的,完全可以实现事务和NoSQL的有机结合。对于企业级的应用,事务的存在能保证数据操作的安全性和可靠性。我认为企业级的NoSQL应该支持简单的事务操作,比如事务中的操作只能是插入数据、修改数据以及删除数据,在事务过程中执行的其它操作不会纳入事务范畴,也就是说事务回滚时非事务操作不会被执行回滚。如果一个表或表空间中有数据涉及事务操作,则该表或表空间不允许被删除。这样虽然功能不如RDBMS全面但是也已经能满足企业级应用的绝大多数需求了!

SQL支持

有些人认为,NoSQL本来就不能够也不应该支持SQL语句,其实我认为这个是一种误解。SQL语言原本也是基于关系型模型的操作,但是很多的操作和语句并不限定于关系型数据库,此外对于大多数数据库使用者和DBA而言,SQL的思维已经在他们脑中根深蒂固,一方面想要完全改变这种想法是很困难也没有必要的,同时SQL语言在很多的企业级应用场景中仍然是很适合的,我认为不能全盘否认SQL。

所以,我认为NoSQL对于SQL语言的支持也是很重要的。之前提到的SequoiaDB,它们就运用了自己开发的转换器,实现了对于PostgreSQL的支持。在我们的实际应用中,SQL的支持确实让我们节省了许多的学习时间。

读写分离

在数据库操作中,为了保证一致性特性,对于正在进行写操作的数据,其他的程序是无法调用的,这必然将影响到性能的表现。纵使文档型NoSQL的数据模型已经不是RDBMS的表结构,而是独立的JSON文档,已经很好的提升了性能,但是在遇到写操作时,仍然需要对写的那个文档“锁住”。因此,我认为读写分离对于企业级NoSQL是至关重要的。如SequoiaDB,他们应用了Master-Slave 的模式构建数据组,这样Master主节点的数据异步复制到Slave 从节点,Slave节点进行只读操作就而Master节点进行写入操作,这样就实现了读写分离,进一步提升了性能。

NoSQL在企业级别的应用已经不少,但是现在绝大多数NoSQL产品似乎没有针对企业级做出对应的功能和策略,大多还是由实际应用的团队自己解决这些问题,所以像SequoiaDB这种,设计之初就是面向企业级用户,并且为了企业级用户设计了专有功能的NoSQL数据库对于真正需要应用的企业来说才是首选!

《NoSQL数据库入门》,高清PDF 版下载见

NoSQL数据库的基础知识

本文永久更新链接地址:

linux

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
深入理解MySQL索引优化器工作原理深入理解MySQL索引优化器工作原理Nov 09, 2022 pm 02:05 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于索引优化器工作原理的相关内容,其中包括了MySQL Server的组成,MySQL优化器选择索引额原理以及SQL成本分析,最后通过 select 查询总结整个查询过程,下面一起来看一下,希望对大家有帮助。

Spring Boot与NoSQL数据库的整合使用Spring Boot与NoSQL数据库的整合使用Jun 22, 2023 pm 10:34 PM

随着互联网的发展,大数据分析和实时信息处理成为了企业的一个重要需求。为了满足这样的需求,传统的关系型数据库已经不再满足业务和技术发展的需要。相反,使用NoSQL数据库已经成为了一个重要的选择。在这篇文章中,我们将讨论SpringBoot与NoSQL数据库的整合使用,以实现现代应用程序的开发和部署。什么是NoSQL数据库?NoSQL是notonlySQL

数据库系统的构成包括哪些数据库系统的构成包括哪些Jul 15, 2022 am 11:58 AM

数据库系统由4个部分构成:1、数据库,是指长期存储在计算机内的,有组织,可共享的数据的集合;2、硬件,是指构成计算机系统的各种物理设备,包括存储所需的外部设备;3、软件,包括操作系统、数据库管理系统及应用程序;4、人员,包括系统分析员和数据库设计人员、应用程序员(负责编写使用数据库的应用程序)、最终用户(利用接口或查询语言访问数据库)、数据库管理员(负责数据库的总体信息控制)。

PHP和NoSQL数据库的应用PHP和NoSQL数据库的应用Jun 19, 2023 pm 03:25 PM

在现代的网络应用程序开发中,PHP和NoSQL数据库已经成为了非常受欢迎的技术选择。在过去,PHP曾被广泛应用于开发动态网站和Web应用程序,而NoSQL数据库则是最近才出现的全新的数据存储技术,它提供了更加灵活和可扩展的解决方案。在这篇文章中,我们将会探讨PHP和NoSQL数据库在实际应用中的情况。PHP是一种服务器端编程语言,最初

access数据库的结构层次是什么access数据库的结构层次是什么Aug 26, 2022 pm 04:45 PM

结构层次是“数据库→数据表→记录→字段”;字段构成记录,记录构成数据表,数据表构成了数据库。数据库是一个完整的数据的记录的整体,一个数据库包含0到N个表,一个表包含0到N个字段,记录是表中的行。

mysql查询慢的因素除了索引,还有什么?mysql查询慢的因素除了索引,还有什么?Jul 19, 2022 pm 08:22 PM

mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题。遇到这种问题,我们一般也会想到是因为索引。那除开索引之外,还有哪些因素会导致数据库查询变慢呢?

使用PHP和MongoDB实现NoSQL数据库,满足不同用户需求使用PHP和MongoDB实现NoSQL数据库,满足不同用户需求Jun 26, 2023 pm 11:39 PM

NoSQL(NotOnlySQL)数据库是近年来快速发展的一类数据库,与传统关系型数据库相比,其具有更好的可扩展性和性能,并支持更多的数据类型和数据存储方式。其中,MongoDB是一款使用文档数据库模型的NoSQL数据库,被广泛应用于Web应用、移动应用、物联网设备等领域。本文将介绍如何使用PHP编写MongoDB数据库的基本操作,并通过实例演示如何满足

数据库的什么是指数据的正确性和相容性数据库的什么是指数据的正确性和相容性Jul 04, 2022 pm 04:59 PM

数据库的“完整性”是指数据的正确性和相容性。完整性是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。完整性对于数据库系统的重要性:1、数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据;2、合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能;3、完善的数据库完整性有助于尽早发现应用软件的错误。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。