查询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中速度略快一点。

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

文章来自: 大牛笔记

CSDN博客地址:http://blog.csdn.net/weixuehao/article/details/41647185

博客园博客地址:http://www.cnblogs.com/laov/p/4134998.html

时间: 2024-07-30 12:38:33

查询MYSQL和查询HBASE速度比较的相关文章

Mysql慢查询-Mysql慢查询详细教程

一.简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能.二.参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录 三.设置步骤1.查看慢查询相关参数mysql> show variables like 'slow_query%';±--

MySQL加速查询速度的独门武器:查询缓存

[导读] 与朋友或同事谈到MySQL查询缓存功能的时候,个人喜欢把查询缓存功能Query Cache比作荔枝, 是非常营养的东西,但是一次性吃太多了,就容易上火而流鼻血,虽然不是特别恰当的比喻,但是有很多相似的地方.另外Query Cache有其特殊的业务场景,MySQL也不像其他数据库产品,缓存查询语句的执行计划等信息,而是直接缓存查询语句的结果集和对应的SQL语句.本文 就给大家介绍下查询缓存的相关知识,希望可以引导大家正确地使用Query Cache独门武器. 对MySQL查询缓存从五个角

MySQL全文索引、联合索引、like查询、json查询速度大比拼

查询背景 有一个表tmp_test_course大概有10万条记录,然后有个json字段叫outline,存了一对多关系(保存了多个编码,例如jy1577683381775) 我们需要在这10万条数据中检索特定类型的数据,目标总数据量:2931条 SELECT COUNT(*) FROM tmp_test_course WHERE `type`=5 AND del=2 AND is_leaf=1 我们在限定为上面类型的同时,还得包含下面任意一个编码(也就是OR查询) jy157768338177

linux下开启mysql慢查询,分析查询语句

一,为什么要开启这个查询呢? 数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了.mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化.这也是发这篇博文的原因 二,开启mysql的慢查询 方法1,用命令开启慢查询 查看复制打印? mysql> show variables like "%long%";         //查看一下默认为慢查询的

Mysql——子查询

子查询的位置: select 中.from 后.where 中.group by 和order by 中无实用意义. 子查询分为如下几类: 1,标量子查询:返回单一值的标量,最简单的形式. 2,列子查询:返回的结果集是 N 行一列. 3,行子查询:返回的结果集是一行 N 列. 4,表子查询:返回的结果集是 N 行 N 列. 可以使用的操作符:= > < >= <= <> ANY IN SOME ALL EXISTS 标量子查询:是指子查询返回的是单一值的标量,如一个数字

MySQL之查询性能优化一

只有当查询优化,索引优化,库表结构优化齐头并进时,才能实现mysql高性能. 在尝试编写快速的查询之前,需要清楚一点,真正重要是响应时间. 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后再服务器上进行解析,生成执行计划,执行,并返回结果给客户端. 其中"执行"可以认为是整个生命周期最重要的阶段,这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序,分组等. 对于一个查询的全部生命周期,上面列的并不完整.这里我们只是想说:了解查询的生命周期,

MySQL、SqlServer、Oracle三大主流数据库分页查询 (MySQL分页不能用top,因为不支持)

一. MySQL 数据库 分页查询MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.例如:select * from table WHERE … LIMIT 10; #返回前10行select * from table WHERE … LIMIT

mysql随机查询记录的高效率方法

mysql使用rand随机查询记录的高效率方法 一直以为mysql随机查询几条数据,就用 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause

MySQL联合查询

下面具体讲讲简单的JOIN的用法了.首先我们假设有2个表A和B,他们的表结构和字段分别为: 表A: ID Name 1 Tim 2 Jimmy 3 John 4 Tom 表B: ID Hobby 1 Football 2 Basketball 2 Tennis 4 Soccer 1.  内联结:Select A.Name, B.Hobby from A, B where A.id = B.id,这是隐式的内联结,查询的结果是: Name Hobby Tim Football Jimmy Bask