大家好,关于全面解析:数据库技术对比——MySQL、Hive、PostgreSQL与Oracle很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
Hive
简介
Hive 是基于Hadoop 构建的数据仓库基础设施,起源于Facebook(美国社交服务网络)。它提供了一组可用于执行提取转换加载(ETL)的工具,ETL是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。 Hive 定义了一种简单的类似SQL 的查询语言,称为HQL,它允许熟悉SQL 的用户查询数据。同时,这种语言还允许熟悉MapReduce的开发人员开发自定义的mappers和reducers,以处理内置mappers和reducers无法完成的复杂分析任务。
数据存储
Hive 没有特殊的数据存储格式,也不为数据创建索引。用户可以非常自由地组织Hive中的表。他们只需要在创建表时告诉Hive数据中的列分隔符和行分隔符。 Hive 可以解析数据。
其次,Hive中的所有数据都存储在HDFS中。 Hive 包含以下数据模型:表、外部表、分区和桶。
内部表:
什么是内表?删除表的时候需要和外部表对比才能看到。数据将与表一起删除。
外部表:数据已经存在于HDFS中。外部表只经历一个过程。加载数据和建表同时完成。它不会被移动到数据仓库目录。它仅建立与数据的连接。删除表不会删除数据。
内部表外部表区分:
向外部表导入数据时,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据不是自己管理的!内表不同;删除内表时,Hive会删除属于该表的所有元数据和数据;删除外部表时,Hive仅删除外部表的元数据,而不会删除数据。已删除!
分区表:
在Hive Select查询中,一般会扫描整个表内容,这会消耗大量时间做不必要的工作。分区表是指创建表时指定的分区的分区空间。扫描时只能扫描某个分区的数据。
存储分区表时,将分支设置的分区单独存储数据(分区字段是文件夹的标识)
桶表:
对于每个表(table)或分区,Hive可以进一步组织成桶,这意味着它是更细粒度的数据范围划分。
优缺点
优点:
可扩展性:针对超大型数据集设计有计算/扩展能力(MR作为计算引擎,HDFS作为存储系统) 可扩展性:Hive支持用户自定义功能,用户可以根据自己的需求实现自己的功能容错性:容错性好如果节点出现问题,SQL仍然可以完成执行。缺点:
Hive的效率比较低,Hive调优困难,粒度粗。
Postgresql
简介
PostgreSQL 是由加州大学伯克利分校计算机科学系开发的基于POSTGRES 的对象关系数据库管理系统。现在它已更名为PostgreSQL,版本4.2。 (ORDBMS)。 PostgreSQL 支持大多数SQL 标准,并提供许多其他现代功能: 复杂查询、外键、触发器、视图、事务完整性、MVCC。
PostgreSQL 是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。用于安全存储数据;支持最佳实践并允许在处理请求时检索它们。
PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。
PostgreSQL是跨平台的,可以运行在Linux、OS X、Microsoft Windows等多种操作系统上。
连接管理系统接受外部操作向系统发出的请求,对操作请求进行预处理和分发,起到系统逻辑控制的作用;
编译执行系统由查询编译器和查询执行器组成,完成对数据库中操作请求的分析、处理和转换,最终实现对物理存储介质中数据的操作;
存储管理系统由索引管理器、内存管理器和外部内存管理器组成。负责存储和管理物理数据,为编译查询系统提供支持;
事务系统由事务管理器、日志管理器、并发控制和锁管理器组成。日志管理器和事务管理器完成对操作请求的事务一致性支持。锁管理器和并发控制为数据的并发访问提供一致性。性支持;
系统表是PostgreSQL数据库的元信息管理中心,包括数据库对象信息和数据库管理控制信息。系统表管理元数据信息,将PostgreSQL数据库的各个模块有机地连接起来,形成高效的数据管理系统。
主要特点
从技术角度来看,PostgreSQL采用了比较经典的C/S(客户端/服务器)结构,即一个客户端对应一个服务器端守护进程。该守护进程分析来自客户端的查询请求。生成规划树,进行数据检索,最后格式化结果返回给客户端。还需要指出的是,PostgreSQL对接口的支持也非常丰富,支持几乎所有类型的数据库客户端接口。这也可以说是PostgreSQL的一大优势。
典型应用场景
企业数据库
比如ERP、交易系统、财务系统,涉及到资金、客户等信息。数据不能丢失,业务逻辑复杂。选择PostgreSQL作为底层数据存储可以帮助您在数据一致性的前提下提供高可用性。其次,它可以用简单的编程来实现复杂的业务逻辑。
LBS 的应用
大型游戏、O2O等应用需要支持世界地图、附近商户、两点之间的距离等。PostGIS增加了对地理对象的支持,让您无需复杂的编码即可在SQL中运行位置查询,帮助您更多精准轻松理顺逻辑,更便捷地实现LBS,提高用户粘性。
数据仓库和大数据
PostgreSQL拥有更多的数据类型和强大的计算能力,可以帮助您更轻松地构建数据库仓库或大数据分析平台,为业务运营加分。
建立网站或应用程序
PostgreSQL良好的性能和强大的功能可以有效提高网站性能,降低开发难度。
优缺点
优点:
稳定性极强,Innodb等引擎在抵御崩溃、断电等灾难场景的能力上有了长足的进步。 PG性能高、速度快。任何系统都有其性能极限。在高并发读写、负载逼近极限的情况下,PG的性能指标仍能保持双曲甚至对数曲线,达到峰值后就不再下降。缺点:
pg 的分布式集群。 bug较多,使用pg时需要小心的数据库扩展问题:扩展需要很长时间
常用函数
MySql
简介
MySQL是瑞典MySQL AB公司开发的关系型数据库管理系统,目前属于一家甲骨文公司。 MySQL 是最流行的关系数据库管理系统。在WEB应用方面,MySQL是最好的RDBMS(关系数据库管理系统)应用软件之一。
MySQL到底能支持多大的数据量?
MySQL 3.22 限制的表大小为4GB。由于MySQL 3.23中使用了MyISAM存储引擎,最大表大小增加到65536TB(2567 1字节)。由于允许的表大小较大,MySQL 数据库的最大有效表大小通常由操作系统对文件大小的限制决定,而不是由MySQL 内部限制决定。事实上,MySQL能够承受的数据量主要与数据表的结构有关,并不是一个固定值。如果表的结构比较简单,那么它能够承受的数据量相对来说比结构复杂的要大一些。
优缺点
优点:访问速度快
缺点:存储的数据量有限
常用函数
Oracle
简介
Oracle 数据库,也称为Oracle RDBMS,简称Oracle。它是Oracle公司的一个关系数据库管理系统。是数据库领域一直处于领先地位的产品。可以说,Oracle数据库系统是目前国际上流行的关系数据库管理系统。该系统便携性好、使用方便、功能强大。适用于各种大、中、小型、微机环境。是一种效率高、可靠性好、适应高吞吐量的数据库解决方案。
全球几乎所有行业都在应用Oracle技术,《财富》排名前100的公司中有98家使用Oracle技术。 Oracle 是第一家在其整个产品线(数据库、业务应用程序以及应用程序开发和决策支持工具)中开发和部署100% 基于互联网的企业软件的公司。甲骨文是全球领先的信息管理软件提供商,也是全球第二大独立软件公司。
PostgreSQL PK MySQL
1、PostgreSQL相对于MySQL的优势
SQL的标准实现比MySQL更好,功能实现更严谨;
b.对表连接的支持比较完善,优化器功能比较完善,支持多种索引类型,复杂查询能力强;
c.PG的主表存储在堆表中,而MySQL使用索引组织表,可以支持比MySQL更大的数据量。
d.PG的主从复制都是物理复制。与MySQL基于binlog的逻辑复制相比,数据一致性更可靠,复制性能更高,对主机性能影响更小。
2、MySQL相对于PG的优势:
MySQL 使用索引来组织表。这种存储方式非常适合基于主键匹配的查询和删除操作,但对表结构设计有限制;
b. MySQL的优化器比较简单,系统表、运算符、数据类型的实现都非常精简,非常适合简单的查询操作;
c. MySQL分区表的实现优于PG基于继承表的分区实现,主要体现在分区数量达到数千或数万时处理性能差异较大。
总体来说,开源数据库还不是很完善,商业数据库Oracle无论是架构还是功能上还是完善得多。从应用场景来看,PG更适合严格的企业应用场景(如金融、电信、ERP、CRM),而MySQL更适合业务逻辑相对简单、数据可靠性要求不高的互联网场景(如Google、脸书、阿里巴巴)。
MySql、Hive、Postgresql对比
Sql调优
1.不要在任何地方使用select * from t,用特定字段列表替换“*”,并且不返回任何未使用的字段
2.考虑使用“临时表”来临时存储中间结果。将临时结果暂时存储在临时表中,后续查询将在tempdb中。这样可以避免程序中多次扫描主表。
3. 小表连接大表
4、谨慎使用Count(Distinct)去除重复统计。一般情况下,COUNT DISTINCT 应先替换为GROUP BY,然后再替换为COUNT。
本文使用文章同步助手进行同步
OK,关于全面解析:数据库技术对比——MySQL、Hive、PostgreSQL与Oracle和的内容到此结束了,希望对大家有所帮助。
【全面解析:数据库技术对比——MySQL、Hive、PostgreSQL与Oracle】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
选哪个数据库真的看实际需求啊,像我做网站用的MYSQL足够了。
有19位网友表示赞同!
Hive主要是数据仓库吧,大规模的分析型工作比较好使。
有17位网友表示赞同!
PG数据安全跟可扩展性比较强,企业级项目不错用。
有7位网友表示赞同!
Oracle那是老大哥级别了,性能稳定可靠,不过贵啊。。。
有8位网友表示赞同!
不同数据库各有优缺点,需要认真比对一下自己的场景再决定。
有20位网友表示赞同!
学习每个数据库都有不同的难度,这个成本也是需要注意的。
有17位网友表示赞同!
听说MySQL的性能在高并发下还是比较有瓶颈,PG怎么样?
有14位网友表示赞同!
数据仓库这种东西确实很复杂,Hive是不是需要专门学习一些技巧?
有10位网友表示赞同!
Oracle感觉有点儿古老了现在,年轻人会不会用它呢?
有7位网友表示赞同!
数据库选择真是个头疼的问题啊,不知道怎么下手比较好。
有14位网友表示赞同!
看大家的讨论,好像PG比较适合数据安全性强的地方。
有14位网友表示赞同!
如果要做实时更新的数据应用,哪种数据库比较好呢?
有19位网友表示赞同!
Hive这种数据仓库型数据库是不是需要很强大的硬件支持?
有10位网友表示赞同!
Oracle那价格吓人,中小企业可能用上不了吧。
有13位网友表示赞同!
MySQL是比较通用的,学习起来相对容易一些吧。
有13位网友表示赞同!
我更偏向使用开源的数据库种类,像MySQL和PG。
有15位网友表示赞同!
这篇文章很有帮助,让我对几种常见数据库有了初步了解。
有15位网友表示赞同!
数据库存储能力、查询速度这些指标都应该考虑进去啊。
有11位网友表示赞同!
希望以后有更多关于不同数据库对比的文章分享出来。
有17位网友表示赞同!