[英]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.