在一开始接触计算机的时候,我特别不能理解,为什么世界上会有数据库这样的东西。因为有个东西叫excel,它和数据库一样是一个表格,我只要把数据库放上去,在里面搜索一个数据比数据库还快,所以我在想为什么要有数据库。
大学的时候开始学习关系型数据库。仅关系型数据库就有 DRDS、Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL等等等等。
随着web 2.0 的兴起,关系型数据库渐渐表现的力不从心,而NoSQL 顺势而生、迅猛发展。 蓝鹅,光 NoSQL 数据库就有四大类,包括HBase、Redis、Cassandra、 CouchDB 、MongoDb、Infinite Graph 、InfoGrid 、Riak 等等等等。

困惑还远远不止以上这些。
近期,开始接触时序数据库。时序数据这个领域是一个比较专的领域,但同时它的范围又很广,因为我们平时遇到的数据里头有相当大的一部分都是时序数据,但是它又相对来说比较专,因为它不像我们一般的数据库什么都可以做,所以时序数据这个领域还是蛮特别的。
说到时序数据库,那也不止一种啊,InfluxDB、Graphite、OpenTSDB、Riak TS、 Druid 等等等等。
时序数据库的选型问题也是让人头疼呢?(对,就是那么生硬的转折)我们应该从哪些方面去考虑呢?写性能?数据分析的能力?存储压缩比?性价比?
在阿里巴巴内部,就是在时序数据处理和存储所面临的问题以及解决问题的过程中,以及不断应对挑战,就慢慢形成了高性能时序数据库 HiTSDB 。他不是一朝一夕的结果,而是经过阿里内部多年的孵化,诞生出来的。
优酷VIP季卡 x 2
云栖定制电脑包 x 3
免费套餐邀请码 x 2
巴洛克上校
已获得优酷VIP季卡
复制链接去分享
为啥世界上又会有那么多种的数据库呢?
引用一段话
Oracle: 我们需要企业级数据库。
MySQL: Oracle 不开源。
PostgreSQL: MySQL 的功能不够多。
SQLite: 你可以把我嵌入到任何地方。这样,4 种数据库够大家用了。
MongoDB: 为什么我们要用 join 和模式(schema)?
CouchDB: 为什么我们要有集合(collection)?
Redis: 为什么我们要面向文档?
Memcached: 为什么我们要用硬盘?
Neo4j: SQL 缺乏足够的关系。
Bigtable: MongoDB 的对 web 的扩展性不管好。
Hbase: Bigtable 不开源。
Cassandra: Bigtable 不是 Facebook 开发的。
Riak: Cassandra 不是用 Erlang 语言编写的。
OrientDB: 让我们把所有东西都放到同一个数据库里!
<font size="+1" color="red"> HiTSDB :你们都不行我数据高效读写 ,多种数据计算能力,况且现在免费公测还不赶紧的,
完美解决这个问题!
天&mdash;空
已获得云栖定制电脑包
复制链接去分享
因为:
Oracle: 是一个面对企业开放的数据库。
MySQL: MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
PostgreSQL: MySQL的功能不够多,而且PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统(比如Oracle、Sybase、IBM的DB2和MicrosoftSQLServer)之外的另一种选择。。
SQLite: 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库
MongoDB:是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
CouchDB: 是用Erlang开发的面向文档的数据库系统,CouchDB一种半结构化面向文档的分布式,高容错的数据库系统,其提供RESTFul HTTP/JSON接口,所以它一直倍受用户的青睐。
Redis: 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Memcached:是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Neo4j: SQL缺乏足够的关系。
Bigtable: Bigtable将 存储的数据都视为字符串,但是Bigtable本身不去解析这些字符串,客户程序通常会在把各种结构化或者半结构化的数据 串行化到这些字符串里。通过仔细选择数据的模式,客户可以控制数据的位置相关性。最后,可以通过BigTable的模式参数来控制数据是存放在内存中还是硬盘上。
Hbase: Bigtable不开源。
Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身。Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身。
Riak: Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。Riak支持多节点构建的系统,每次读写请求不需要集群内所有节点参与也能胜任。
OrientDB:OrientDB的主要特点是支持多模型对象,即它支持不同的模型,如文档,图形,键/值和真实对象。 它包含一个单独的API来支持所有这四个模型。
youirong给个邀请码吧~(渴望)
一点就给错了。。。。这系统还不能撤回。我面壁思过去了
。。
你是要免费套餐邀请码吗?我有……
不了Thanks♪(・ω・)ノ
到产品页面申请试用,然后帐号留下,然后坐等审批,一般不超过一天
浮生递归
已获得优酷VIP季卡
复制链接去分享
能不能来张季卡,哈哈,先谢谢啦
SQL数据库,设置特别多。有次SQL装好后,进行了一堆设置后,还是无法访问。最后找人帮忙,也是检查了一大圈,才发现有个协议没开。真是太不智能了。就不能一键安装,一键设置就能直接使用么。反正每次都是相同操作。
luneice
已获得免费套餐邀请码
复制链接去分享
数据是一种记录,数据库是这些记录的集合。似乎有人类以来就有数据库的影子了,只是那个时候数据量少没有意识到数据的分类。现在互联网发展迅速,许多记录需要保存,而且保存的形式又很多,因此就发明了许许多多的数据库。关系型的非关系型,有适合高并发的做大数据分析的等。总之,不同数据库的发明是各式各样需求推动的,没有需求发明它干嘛,还不如怪怪撸代码。
所以在选择数据库的时候也要看自己的需求喽,是普通的应用还是网站?是做数据挖掘和数据分析?根据不同的需求选择合适的数据库才是明智的,才能达到事半功倍的效果。
北方的郎
已获得云栖定制电脑包
复制链接去分享
1. 世界上为什么会有数据库?
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
2. 为啥世界上又会有那么多种的数据库呢?
因为用户需求不同,同时各个厂商也都有自己的利益以及技术特点。
3. 作为如此优秀滴程序猿GG,在数据库的使用中,你遇到过哪些坑?
其实在工作中数据库方面的大部分问题最后往往都是误操作,烂SQL比如缺乏索引,乱用游标等等。数据库系统本身的坑还真不多。
4. 在做一个数据库技术选型的时候,你会考虑哪些方面呢?
价格,性能,安全等因素。不过其实一个技术团队往往用一种数据库,一般不会轻易变的。
1569181547541214
已获得云栖定制电脑包
复制链接去分享
为什么要有数据库呢?在一本看过计算机教学书前言中指出
第一,excel 无法多人共享数据。保存在已连接网络的计算机中的文件,可以通过共享设定实现多个用户在线阅读或编辑。但是,当某个用户打开该文件的时候,其他用户就无法进行编辑了。如果是网上商城的话,当某个用户购买商品地时候,其他用户就无法购买了。
第二,excel无法提供操作大量数据所需的格式。瞬间从几十万或者上百万的数据中获取想要的数据,必须把数据保存为适当的格式。excel无法提供相应的数据格式。
第三,实现编写自动化需要编程技术能力。通过编写计算机程序可以实现数据读取和编辑自动化。
第四,无法应对突发事故。当文件被误删、硬盘故障无法读取的时候,可能会造成重要数据地丢失。同时数据还可能被他人简单的读取或窃用。
心之海子
已获得免费套餐邀请码
复制链接去分享
😁,希望能得到一个邀请码。
1.世界上为什么会有数据 库?
我觉得这是随着信息技术和市场的发展,必然出现的产物,因为在在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段,所以数据库的产生是必然的。
2.为啥会有那么多的数据库?
数据类型的多样化,要求 对 数据的数量结果 也必然是多样而不同的,针对种种不同,不同 的数据库应运而生了 。我 相信随着信息化,智能化 时代的到来,对数据的处理需求将再爆发出来,到时会有更多新型的数据库会 出现,你说呢 ?
3.在数据使用中会遇到那些坑?
我说说我在数据库事务中遇到的坑 吧!
a.乐观锁与可重复读
乐观锁其实在更大范围确保了可重复读的问题,如果你的事务隔离等级为可重复读,mysql的默认等级,你又使用了乐观锁的话,你一定要小心谨慎,不然很可能出错。举个很经典的例子,死循环。
public void update(String id){
DataVo vo=mapper.getById(id);
while(mapper.update(vo)==0){
vo=mapper.getById(id)
}
}
b.readonly是否为只读事务
从数据库的层面我们知道只读事务可以解决重复读的问题,并且防止该事务中的任何非查询操作。但是我们在数据库驱动中设置的readonly属性真的就是数据库层面的只读事务吗。
这个问题没有确切的答案,需要看具体的驱动实现。比如:在老版本的oralce驱动中确实是设置了只读事务,而在新驱动中则只设置连接为只读。而且甚至在事务中存在非查询操作也不会报错。
c.事务与缓存可重复读
隔离等级为Repeatable read的事务可以重复读取同一数据,然而同时使用缓存的时候要格外小心,因为缓存很可能会破坏可重复读。
4.在做一个数据技术选型的时候,会考虑那些方面?
我觉得首先需要对数据的特点做出分析跟判断,你想要对数据处理后得到什么样的结果,以结果为导向,以安全,效率为条件 ,从这几个方面去考虑选择那些数据技术。
这个是需要怎么来参与呢?
如果您要申请HiTSDB的公测,那直接查看 https://www.aliyun.com/aliware/hotproducts/hitsdbbeta?spm=5176.8217306.rtdmain.4.ZQMYQL 这里即可。如果想领取礼品呢,给个高质量的回答,本姑娘来打赏:)
给点32个赞!!!!
问题2的回答666(⁎⁍̴̛ᴗ⁍̴̛⁎)
@youirong 《十里春风不如你》
表格存储:BigTable好啊,可是G家不给外人用;那你们怎么不用HBase?因为只会C++啊啊