我的建表方式:createPartitionedTable(dbHandle=db, table=tbTemp, tableName=tbName, partitionColumns=`data_time`ticker, compressMethods={data_time:"delta"}, sortColumns=`ticker`data_time, keepDuplicates=LAST)
设置keepDuplicates=LAST
windows系统,使用社区版数据库导入了一个月的快照数据,数据条数在2亿左右
第一次导入完成后,select count(*) 查询仅用时300ms
相同的数据集,再次导入后,select count(*) 总条数和第一次导入完成后相同,但是运行时间远高于第一次时长。刚完成导入后查询耗时25秒,重启server后查询耗时6秒。
问题:
1、为什么性能会差这么多?是keepDuplicates导致的吗?
2、除了通过keepDuplicates去重数据,还有其他方式能通过loadText / loadTextEx或者类似方式,直接读取csv并去重插入数据库吗?
可以参考 https://gitee.com/dolphindb/Tutorials_CN/blob/master/tsdb_explained.md 8.3 的 QA
以及 4.2 的测试结果,重复写数据,在查询的时候有个去重开销,影响较大