过去几个月我一直在使用 Firebird,今天一位客户抱怨性能问题。
我检查了客户的数据库,他们在一张表中有 167,77,216 行。因此,我将该表克隆到另一个空数据库中,并加载虚拟记录并使用简单的查询进行测试
select count(journal_id) from acc_journal
Run Code Online (Sandbox Code Playgroud)
花了14.28秒。
之后我创建了一个 SQLite 数据库并加载了这些数据,花了 2.216 秒。
这是 Firebid 的本质还是我错过了什么?
火鸟表结构:
CREATE TABLE ACC_JOURNAL (
JOURNAL_ID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL,
ACCOUNT_HEAD_ID INTEGER,
REF_ID INTEGER,
REF_TYPE VARCHAR(20),
DESCRIPTION VARCHAR(512),
DEBIT DECIMAL(18,4),
DEBIT_EX DECIMAL(18,4),
CREDIT DECIMAL(18,4),
CREDIT_EX DECIMAL(18,4),
CURRENCY_ID INTEGER,
STATUS VARCHAR(20),
EX_RATE DECIMAL(18,4),
ENTRY_DATE VARCHAR(20),
ENTRY_TIME VARCHAR(20),
BRANCH_CODE VARCHAR(20),
LAST_SYNCED VARCHAR(20),
LAST_UPDATED DECIMAL(18,4),
ENTRY_DATE2 VARCHAR(20),
/* Keys */
PRIMARY KEY (JOURNAL_ID)
);
Run Code Online (Sandbox Code Playgroud)
SQLite表结构:
CREATE TABLE ACC_JOURNAL (
ACCOUNT_HEAD_ID INTEGER, …Run Code Online (Sandbox Code Playgroud) firebird ×1