各存储引擎优缺点
Posted tianlianchao1982
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各存储引擎优缺点相关的知识,希望对你有一定的参考价值。
MPP的优缺点
MPP解决了单个SQL数据库不能存放海量数据的问题,但是也存在一些问题,例如:
当节点数达到100左右时,MPP有些仍会遇到SQScalability的问题,速度变慢,或者不稳定。
当增加或者删除节点的时候,需要的维护工作仍然比较大,集群会遇到数据迁移和重新平衡的问题
MPP数据库适合存储高密度价值数据,并且是长期存储和多次使用,所以MPP并行数据库会花大量的精力在Load阶段,把数据处理成适合分析格式。带来的优点就是从查询速度快,通常在秒级甚至毫秒级以内就可以返回查询结果。缺点是不支持细粒度的容错。
Hive的优缺点
一、优点
1.操作接口采用类SQL语法,提高快速开发的能力(简单、容易上手)
2.避免了去写MapReduce,减少开发人员的学习成本
3.Hive擅长处理大数据,对小数据处理没有优势,因为Hive的延迟比较高
二、缺点
1.Hive的HQL表达能力有限,迭代算法无法表达
2.不擅长数据挖掘方面,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现
3.Hive自动生成的MapReduce作业,通常情况下不够智能化
4.Hive调优比较困难,粒度较粗
5.Hive不擅长处理实时性高的场合
ClickHouse优缺点
一、优点
- 为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理;
- 数据压缩空间大,减少IO;处理单查询高吞吐量每台服务器每秒最多数十亿行;
- 索引非B树结构,不需要满足最左原则;只要过滤条件在索引列中包含即可;即使在使用的数据不在索引中,由于各种并行处理机制ClickHouse全表扫描的速度也很快;
- 写入速度非常快,50-200M/s,对于大量的数据更新非常适用。
二、缺点
- 不支持事务,不支持真正的删除/更新;
- 不支持高并发,官方建议qps为100,可以通过修改配置文件增加连接数,但是在服务器足够好的情况下;
- SQL满足日常使用80%以上的语法,join写法比较特殊;最新版已支持类似SQL的join,但性能不好;
- 尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作,因为ClickHouse底层会不断的做异步的数据合并,会影响查询性能,这个在做实时数据写入的时候要尽量避开;
- Clickhouse快是因为采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以ClickHouse不能支持高并发的使用场景,默认单查询使用CPU核数为服务器核数的一半,安装时会自动识别服务器核数,可以通过配置文件修改该参数。
全量数据导入:数据导入临时表 -> 导入完成后,将原表改名为tmp1 -> 将临时表改名为正式表 -> 删除原表
增量数据导入: 增量数据导入临时表 -> 将原数据除增量外的也导入临时表 -> 导入完成后,将原表改名为tmp1-> 将临时表改成正式表-> 删除原数据表
以上是关于各存储引擎优缺点的主要内容,如果未能解决你的问题,请参考以下文章
目前流行的源程序 版本管理软件和项目管理软件都有哪些, 各 有什么优缺点?