各数据库查询效率对比 hive、hbase、mysql、 oracle

本文对比了Hadoop&Hive与Oracle在处理大规模数据集时的性能,发现Oracle在特定查询上的表现优于Hadoop&Hive。此外,通过实验比较了HBase和MySQL在读写速度上的表现,结果显示HBase在处理大量数据时具有优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、hive和oracle的性能测试

环境如下:
oracle 三节点rac,使用共享存储
Hadoop&hive 一个主节点,5个数据节点。
两个环境每台服务器的配置基本一样,都是物理实机。

为比较hadoop和oracle性能
在oracle rac当中tbilllog中导入了20亿条日志记录,占用空间表500G;
在hadoop&hive当中,同样也建表tbilllog导入了20亿条日志记录,点用hdfs空间也大概500G

下面用同样的SQL查询,进行性能对比,发现在oracle中的性能明显还要比hive中的要好

Select  substr(Bindingphone,1,3), Count(Callid)
From Members Join icd32.Tbilllog
On Members.Bindingphone = Tbilllog0.Callerno
Group By substr(Bindingphone,1,3);

在oracle数据库里,SQL查询时间是20多分钟
而在hive里要用上2个多小时
这个结果令人惊讶,难道是因为hadoop节点不够多,数据量还不够大,还是因为hadoop&hive性能参数设置的不太优化?
Oracle在500G的2亿行的数据里查询性能仍占优势,那hadoop&hive优势在哪呢?

二、查询MYSQL和查询HBASE速度比较

Mysql,关系型数据库;

HBase,NoSql数据库。

查询Mysql和查询HBase,到底哪个速度快呢?

与一些真正的大牛讨论时,他们说HBase写入速度,可以达到每秒1W。而HBase的理想速度为每秒10W。

来个实验说明一下,此实验只能表明,当前环境下运行状态。我的实验效果,没有到1W,还在优化中…

环境:

有3台虚拟机,运行Hadoop集群;3台虚拟机也在跑HBase:master,node1,node2

master上,同时安装了Mysql数据库。

目前有这样一个需求:

有一堆文本文件,每个文本文件内,存储着日志;

每一行为一条记录;

现在需要,逐行读取记录,并根据记录中的mac地址和sn号,去从HBase或Mysql中,获取账号信息。

然后合并成一条记录,写入HBase的“SHUJU”表内。

Mysql表结构:

id,mac,sn,addtime,account

HBase表结构:

ROWKEY为mac+sn,mac,sn,account,addtime

测试效果如下:

每隔一分钟,执行一次count操作,统计当前数据条数。

select count(1) from SHUJU

结果如下

=====================================

Mysql上,第一次测试。

开始时间11:03:15

28135(条数)

39014

49659

264564

274379

285174(条数)

结束时间11.26.15

285174 – 28135 = 257039

257039 / 23 = 11 175.608695652

也是1W以上。。。

=====================================

查询的 HBase库

开始时间14:43:00

5622(条数)

16671

25062

34848

46652

58001

69690

79908(条数)

结束 14:50:00

79908 – 5622 = 74 286

74286 /7 = 10 612 每分钟个数。

=====================================

mysql

开始 14:58:30

19248(条数)

26526

36389

45837

51945

62497

72319

82695(条数)

结束时间:15:04:30

间隔 七分钟

82695 – 19248 = 63 447

93447 / 7 = 9 063.8571428571

======================================

可以看出在HBase中速度,比mysql中速度略快一点。

但是总的速度,还是有待提高。。。

HBase与Oracle读写读写性能比较

在研究传统数据库(如Oracle)在数据存取过程中的表现时,采用了按照月进行分区、创建复杂查询条件索引、添加存储过程、避免全表扫描操作(如执行“like”语句)、建立缓存等设计。

研究发现索引过多则写入性能下降,而且对非结构化数据存储支持性能不佳,在整体大数据操作上编程和配置的复杂度提高。

研究测试了直接对GPS数据表进行插入和读取操作的速度情况:

在进行数据插入操作时(对比每分钟插入数据量),百万条以下的数据插入速度Oracle和HBase没有明显差异,但超过百万条以后,Oracle的数据插入速度逐步下降,千万条以上HBase数据插入速度比Oracle快2~7倍;

在进行数据读取操作时,HBase千万条以上数据读取速度是Oracle的5~15倍;

在同时进行插入和读取操作的过程时,HBase读取速度比Oracle快15~30倍。在相同的硬件和网络环境中分析对海量交通流数据的处理能力,HBase列式数据库无论从插入性能还是读取性能都可以调优到更高水平。 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四月天03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值