一网打尽18种主流数据库:12种SQL+6种NoSQL
还记得两三年前仅有几家云计算平台供应商可供选择的时候,似乎市场上也没有多少云数据库。但是云蓬勃发展之后,云数据库也呈现雨后春笋之势。而哪些是真正可靠而易用的,对用户而言,并不好分析。所以,本文分析了18种数据库的可用性以及应用方向(注意,这
还记得两三年前仅有几家云计算平台供应商可供选择的时候,似乎市场上也没有多少云数据库。但是云蓬勃发展之后,云数据库也呈现雨后春笋之势。而哪些是真正可靠而易用的,对用户而言,并不好分析。所以,本文分析了18种数据库的可用性以及应用方向(注意,这里说的管理数据库服务,不是仍然需要用户管理和实施的数据库实例)。仍有不足之处,希望听到大家更多的评论。
SQL services
1.Amazon Relational Database Service(RDS)
AWS的RDS是第一个云数据库服务,也是目前最完整的数据库服务。如同AWS的大部分服务一样,其作为AWS的管理接口,可以兼容大部分AWS所提供的其他云计算服务。其最初仅是为了AWS自身掌握和管理MySQL服务而存在,而现在RDS还支持Microsoft SQL Server或Oracle Database。这一消息在2012年5月由AWS博客发布,当时称Microsoft SQL Server将成为RDS的一部分。当然,业内分析者认为这是亚马逊为了避免用户认为“被迫绑定”而做出的妥协与让步。用户可以运行装载在Amazon EC2上的Windows SQL Server实例,但是这些操作需要DBA经验以及对工作负荷管理有清晰认识。而RDS则提供了更易实现的管理数据库服务。
2.Clustrix Database as a Service
不久前,数据库厂商Clustrix刚加入云,但其在云计算方面早有积累。其服务,可以运行在Rackspace Cloud,为用户提供高性能的固态硬盘,可靠的single-tenant部署,以及弹性MySQL(旗舰版)。Clustrix称其适合在OLTP(联机事务处理)和OLAP(联机分析处理)的应用,并可以利用2500个以上的指标来监测系统。
3.EnterpriseDB Postgres Plus Cloud Database
EnterpriseDB是商业化Post greSQL数据库,由Postgres Plus提供的基于云的旗舰版产品。其目标是企业开发商,Postgres Plus Cloud包含高可用群集、高连接数和与Oracle的高兼容性。
4.FathomDB
有些读者对FathomDB的印象还停留在作为Rackspace的合作伙伴,FathomDB与AWS当时新的RDS相竞争。但现在,FathomDB仍然存在,但却是作为开源其原有技术以帮助开发者建立任何服务而不仅局限在托管数据库服务方面。据悉,该公司正在开发下一代数据库服务,持续关注。
5.Google Cloud SQL
Google Cloud SQL不是最丰富的数据库,但是也有其独到之处。首先,其与谷歌其他云服务能够集成,并实现轻松互动;其次,凭借谷歌在云计算的名气,Cloud SQL很容易在区域中复制,效用最大。虽然目前其仅支持Java和Python的开发应用,且实例受限于10GB存储容量。
6.Heroku Postgres
Heroku Postgres是PaaS平台——Heroku的内部PostgresSQL数据库。其设计是为了可靠性而后数据保护(Heroku声称可以达到99.99%的正常运行时间,并准备实现99.9999999999%(小数点后还有9个9,数据持久性),且不需要通过PaaS平台,将经验传递给开发者。Heroku Postgres还有一个有趣的功能——数据夹。其允许用户通过URL将一个SQL查询结果发送给其他人。
7.HP Cloud Relational Database for MySQL
显然,这个名字还没有准备好。因为其仍处于内测阶段,还有很多工作要做,很多功能需要添加。作为构建在OpenStack上的一个MySQL分布,理论上看,将一个数据库业务一朵云移到另一朵上更为容易。
8.IBM SmartCloud Application Services
如同HP的云数据库一样,IBM的云数据库也在建设中。详细的具体特点还比较少。但是相比其他,IBM SmartCloud Application Services是建立在IBM DB2的基础上,作为IBM PaaS平台——SmartCloud Application Service的一部分来提供,目前也在测试阶段。
9.Microsoft SQL Database
其前身是SQL Azure,在微软新的重点策略——混合云中,SQL Database是一个关键关键组成部分。其既可以作为一个独立的云数据库使用,也可以提供Microsoft SQL Server的用户共同体验,以及允许在本地服务器数据库上的数据共享。SQL Database还提供了一种选择,使得在同一公司基础设施架构中,与其他数据库部署同步。
10.Oracle Database Cloud Service
并非适合每个人,但是对于现有的使用Oracle数据库的用而言,如果想要选择云主机就要感谢Oracle Database Cloud Service的存在了。毕竟,声称其所有功能和性能都与Oracle Database 11g Release 2相当。不过其定价并不明确,每月付费金额是基于数据库大小的,而长期合同则估计要单独确定。
11.Rackspace Cloud Databases
Cloud Databases是Rackspace最新增加的在线数据库服务,一开始就建立在OpenStack平台上。在早期接入方式上,用户很难使用SLAs或云主机相关功能(如监测、备份或图形用户界面)。但受益于基于虚拟化和存储区域网络体系架构,这些用户得到了高性能和可靠性的的服务承诺。
12.Xeround
服务于亚马逊RDS,Xeround可能是市场上最受欢迎的云数据库之一。其也是最灵活的云数据库,基于MySQL的服务可以部署在任何公有云拼图,比如AWS,Rackspace,Joyent,Heroku等。Xeround声称自动缩放是其主要的一个优势,基于MySQL前端架构设计使得其理论上可以支持多种数据库选项,较为独特。
NoSQL services
1.Amazon DynamoDB
DynamoDB是亚马逊今年2月发布的NoSQL产品,其本身基于原始的Dynamo kay-value,最初是为了满足公司内部需求。具体看,就是设计网页或大数据应用时满足快速访问数据和及时实现部署的弹性收放。DynamoDB建立在SSD结构上,并自动实现数据添加功能。据悉,DynamoDB是一个共享型的数据库云服务。所谓共享型的数据库云服务,是指一台机器上的CPU、内存及磁盘资源会给多用户使用。按照AWS CTO Werner Vogels的说法:“DynamoDB是一个性能好、可靠高且具有可扩展性的NoSQL云数据库服务,DynamoDB集15年分布式非关系性数据库开发之精粹,又通过内部使用考验,是AWS团队精心打造的产品。”事实上,在AWS首页的Database列表中,只能看到RDS和DynamoDB,显然DynamoDB已经替换了SimpleDB原来在这个列表中的位置。详细对比可见《程序员文章》解析DynamoDB
2.Amazon ElastiCache
Amazon ElastiCache不是技术上的NoSQL服务,但是其完全可以实现为开发者提供类似Memcached管理服务,以确保用户可以在MySQL部署尽可能快地使用数据。Memcached已被诸多网络所应用,包括Facebook。据了解,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
3.Cloudant
虽然Cloudant基于开源的CouchDB架构的数据库平台,但其自己认为自己并非是NoSQL服务,而仅是一个数据层。其通过收集全球各地的云供应商的资源来提供可预见的扩展性NoSQL存储,并内置了MapReduce analytics engine。这也是农业企业巨头——Monsanto采用Cloudant来支持其基因架构的一个原因。
从应用来看,Cloudant的数据存储方案更加适合分布式产生的数据,比如传感网、web服务器、移动设备服务等等。
4.Database.com
作为Salesforce.com的独立数据库服务,Database.com不是NoSQL,也不是SQL。可以确定的是,多租户数据库架构也是为Salesforce.com的CRM和Force.com平台而服务的。其存储的数据类型非常多,包含非结构数据,专为但不仅局限于为Salesforce.com服务。
5.Microsoft Windows Azure Table Storage
这是专为Windows Azure而存在的NoSQL数据存储,其目的是为了方便查询数百万TB非关系型数据。因为其是 Windows Azure Storage的一部分,平均每个账户总数据库最大不超过100TB(Blob,Table和Queue storage)。
6.MongoHQ/MongoLab
MongoDB是迄今为止最流行的NoSQL数据库,其可以承担起管理云的重任。因此,围绕在MongoDB周围有很多服务,其中MongoHQ/MongoLab是最广为人知的。其应用场景很简单:快速部署、全面监测与实现高可靠性。二者都是通过提供共享和专用产品的方式来吸引更多用户。
显然,作者Derrick Harris 没有花费笔墨来描述Oracle、SQLServer、Symfoware、DB2、Sybase等更多耳熟能详的数据库,但作为目前市场主流的这18种创新数据库,与云计算的关系无疑更为紧密。(郭雪梅/编译)
cloud-databases-101

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











Go 언어는 효율적이고 간결하며 배우기 쉬운 프로그래밍 언어입니다. 동시 프로그래밍과 네트워크 프로그래밍의 장점 때문에 개발자들이 선호합니다. 실제 개발에서 데이터베이스 작업은 필수적인 부분입니다. 이 기사에서는 Go 언어를 사용하여 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. Go 언어에서는 일반적으로 사용되는 SQL 패키지, Gorm 등과 같은 타사 라이브러리를 사용하여 데이터베이스를 운영합니다. 여기서는 sql 패키지를 예로 들어 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. MySQL 데이터베이스를 사용하고 있다고 가정합니다.

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

PHP는 웹사이트 개발에 널리 사용되는 백엔드 프로그래밍 언어로, 강력한 데이터베이스 운영 기능을 갖추고 있으며 MySQL과 같은 데이터베이스와 상호 작용하는 데 자주 사용됩니다. 그러나 한자 인코딩의 복잡성으로 인해 데이터베이스에서 잘못된 한자를 처리할 때 문제가 자주 발생합니다. 이 기사에서는 잘못된 문자의 일반적인 원인, 솔루션 및 특정 코드 예제를 포함하여 데이터베이스에서 중국어 잘못된 문자를 처리하기 위한 PHP의 기술과 사례를 소개합니다. 문자가 왜곡되는 일반적인 이유는 잘못된 데이터베이스 문자 집합 설정 때문입니다. 데이터베이스를 생성할 때 utf8 또는 u와 같은 올바른 문자 집합을 선택해야 합니다.

Golang의 데이터베이스 콜백 기능을 사용하면 다음을 달성할 수 있습니다. 지정된 데이터베이스 작업이 완료된 후 사용자 정의 코드를 실행합니다. 추가 코드를 작성하지 않고도 별도의 함수를 통해 사용자 정의 동작을 추가할 수 있습니다. 삽입, 업데이트, 삭제, 쿼리 작업에 콜백 함수를 사용할 수 있습니다. 콜백 함수를 사용하려면 sql.Exec, sql.QueryRow, sql.Query 함수를 사용해야 합니다.
