企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**clickhouse的缺点** 1:不支持事务,不适合处理业务逻辑 2:Log引擎不支持物理删除(对于数据错误只能进行逻辑删除),只有MergeTree引擎可以对数据进行更新删除操作(binlog同步时表的引擎也需是MergeTree) 3:需要批量写入,频繁的单条写入可能会产生Too many part报错,建议每次1000行以上 4:高并发支持不够好,qps默认100,可设置 **clickhouse的优点** 快,根据官网的介绍,在相同的配置与数据量下,响应速度是 Vertica的2.63倍(一款收费的列示存储数据库), InfiniDB的17倍(可伸缩的分析数据库引擎,基于mysql搭建) MonetDB的27倍(开源的列式数据库) Hive的126倍 Mysql的429倍 **clickhouse的数据类型** <span style="margin-left:10px;">1:Int,Int8,16,32,64范围是-2N次方-1 ~ 2N次方-1-1, <span style="margin-left:10px">2:Uint,UInt8,16,32,64,范围是0~2N次方-1 <span style="margin-left:10px">3:Float32:float,Float64:double <span style="margin-left:10px">4:String,无固定长度字符串,任意字节,类似于mysql的text <span style="margin-left:10px">5:FixedString,FixedString类型和传统意义上的Char类型有些类似,对于一些字符有明确长度的场合,可以使用固定长度的字符串。定长字符串通过FixedString(N)声明,其中N表示字符串长度。但与Char不同的是,FixedString使用null字节填充末尾字符,而Char通常使用空格填充。与String相比,极少会使用FixedString,因为使用起来不是很方便 <span style="margin-left:10px">6:Decimal: Decimal32(s)-(-1*10^(9-s),1*10^(9-s)) Decima64(s)-(-1*10^(18-s),1*10^(18-s)) Decimal128(s)-(-1*10^(38-s),1*10^(38-s)) 例如,Decimal32(4) 可以表示 -99999.9999 至 99999.9999 的数值,步长为0.0001 <span style="margin-left:10px">7:时间类型 时间类型分为DateTime、DateTime64、Date三类。ClickHouse目前没有时间戳类型。时间类型最高的精度是秒,也就是说,如果需要处理毫秒、微秒等大于秒分辨率的时间,则只能借助UInt类型实 DateTime 用四个字节(无符号的)存储 Unix 时间戳,最小值为 0000-00-00 00:00:00,时间戳类型值精确到秒。DateTime类型包含时、分、秒信息,精确到秒,支持使用字符串形式写入 DateTime64可以记录亚秒,它在DateTime之上增加了精度的 设置 Date类型不包含具体的时间信息,只精确到天,它同样也支持字符串形式写入 <span style="margin-left:10px">8:其他格式,如数组,元祖,枚举,ip等,文档可查看 **clickhouse的引擎类型(最常用的是Log引擎与MergeTree引擎)** 1:clickhouse的引擎类型主要有Log,MergeTree,integration,Special 2:Log:log系列表引擎功能相对简单,主要用于快速写入小表,然后全部取出的场景,不支持update,不支持delete(若数据有错或字段类型错误可建新表,然后执行以下sql: INSERT INTO NEW_TABLE SELECT CAST(COLUMN “字段类型”)....... FROM OLD_TABLE; 然后RENAME TABLE OLD_TABLE TO NEW_TABLE;修改表名,尝试过5000万数据修改字段,几秒钟; insert会阻塞select操作