数据库疑点

大规模数据如何检索?

思考
1.用什么数据库好?(mysql、sybase、oracle、mongodb、hbase…)
2.如何解决单点故障;(lvs、F5、A10、Zookeep、MQ)
3.如何保证数据安全性;(热备、冷备、异地多活)
4.如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;)
5.如何解决统计分析问题;(离线、近实时)

传统数据库的应对解决方案
对于关系型数据,我们通常采用以下或类似架构去解决查询瓶颈和写入瓶颈:
解决要点:
1.通过主从备份解决数据安全性问题;
2.通过数据库代理中间件心跳监测,解决单点故障问题;
3.通过代理中间件将查询语句分发到各个slave节点进行查询,并汇总结果

非关系型数据库的解决方案
对于Nosql数据库,以mongodb为例,其它原理类似:
解决要点:
1)通过副本备份保证数据安全性;
2)通过节点竞选机制解决单点问题;
3)先从配置库检索分片信息,然后将请求分发到各个节点,最后由路由节点合并汇总结果

另辟蹊径——完全把数据放入内
完全把数据放在内存中是不可靠的,实际上也不太现实,当数据达到PB级别时,按照每个节点96G内存计算,在内存完全装满的数据情况下,需要的机器是:1PB=1024T=1048576G
节点数=1048576/96=10922个
实际上,考虑到数据备份,节点数往往在2.5万台左右。成本巨大决定了其不现实!

从前面讨论解到,把数据放在内存也好,不放在内存也好,都不能完完全全解决问题。
全部放在内存速度问题是解决了,但成本问题上来了。
为解决以上问题,从源头着手分析,通常会从以下方式来寻找方法:
1、存储数据时按有序存储;
2、将数据和索引分离;
3、压缩数据;
这就引出了Elasticsearch。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值