如何检查h2数据库的大小?

How to check the size of a h2 database?

我有一个问题,我无法在 Internet 上找到答案。我有很多数据存储在 h2 数据库中。我在我的 Web 服务中使用 h2 数据库,用 Java Hibernate 和 Angular.

编写

我有大约 30000 行数据,但我不知道如何开始获取它的大小。我查到的h2文件也没有相关信息。

我一般有6张表,3万行数据。

那么,如何计算我的 h2 数据库的大小?

如果需要数据库文件的大小可以执行以下查询:

SELECT `VALUE` FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME = 'info.FILE_SIZE';

如果您的数据库是旧版 PageStore 格式,您需要执行另一个查询:

SELECT
    (SELECT CAST(`VALUE` AS BIGINT) FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME = 'info.PAGE_COUNT')
    *
    (SELECT CAST(`VALUE` AS INTEGER) FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME = 'info.PAGE_SIZE')

您还可以使用 DISK_SPACE_USED 函数确定某些 table 的大小(不包括其索引):

CALL DISK_SPACE_USED('TABLE_NAME');

table 的名称应指定为字符串。

旧版PageStore引擎支持该函数,默认MVStore引擎也支持该函数,但仅从1.4.198版本开始,在旧的1.4.*版本中为returns0.返回值也不包括 LOB 占用的大小。

使用默认的 MVStore 引擎,您还可以获得 space 数据库文件中当前使用的页面占用:

SELECT
    (SELECT CAST(`VALUE` AS BIGINT) FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME = 'info.PAGE_COUNT_LIVE')
    *
    (SELECT CAST(`VALUE` AS INTEGER) FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME = 'info.PAGE_SIZE')