[英]H2 database unuseable when table contains 9 million records
我使用 H2 作为以AUTO_SERVER=TRUE
的嵌入式数据库。
一开始我只有几条记录,即使没有定义索引,性能也不是问题。
当表有更多记录时,性能严重下降,通过添加索引解决了这个问题。
然后数据库表现得非常好,直到最近没有。 记录达到超过 800 万,现在我无法从数据库中获得任何正常的性能,并尝试更改 cache_size 等......但没有任何改进。 我看到有人使用 H2 处理数百万甚至数十亿条记录的帖子,所以我缺少一些基本的东西吗? 即使是诸如select count(*) from HISTORICALDATA2
这样的基本查询也需要很长时间,以至于我最终取消了查询。
这是表定义:
CREATE TABLE "PUBLIC"."HISTORICALDATA2"
(
REQUESTID integer,
SYMBOL varchar(50) NOT NULL,
EXCHANGE varchar(20),
SECTYPE varchar(10),
CURRENCYNAME varchar(5),
ENDDATETIME varchar(20),
DURATION varchar(20),
BARSIZE varchar(20),
WHATTOSHOW varchar(20),
USERTH integer,
FORMATDATE integer,
CHARTOPTIONS varchar(50),
DATETIMEDATA timestamp,
OPEN_PRICE decimal(20,2),
HIGH_PRICE decimal(20,2),
LOW_PRICE decimal(20,2),
CLOSE_PRICE decimal(20,2),
VOLUME integer,
COUNT_FIELD integer,
WAP integer,
HASGAPS boolean,
TSTAMP timestamp DEFAULT CURRENT_TIMESTAMP()
);
和指数:
CREATE INDEX HD_MAIN ON "PUBLIC"."HISTORICALDATA2"
(
SYMBOL,
EXCHANGE,
ENDDATETIME,
WHATTOSHOW,
DURATION,
BARSIZE
);
H2 通常不用作生产数据库。 请参阅是否有任何原因不应该在生产中使用 h2 数据库? 更多细节。 许多答案给出了不这样做的正当理由。
您可以将记录从 h2 迁移到 Postgres、MySQL 或 Oracle。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.