首页 > 解决方案 > 为什么我的 sqlite 表文件大小比预期大 10 倍?

问题描述

我有一个大约 1200 万行的 4GB 文本文件。每行都是一个以竖线分隔 (|) 的实体字段值列表。一个实体每行大约有 20 个字段。

我用 Python 将数据插入到一个 sqlite 表中,该表大约 35GB,这很荒谬。那么我做错了什么?

我的表架构是

CREATE TABLE IF NOT EXISTS '{}' (
    Entity VARCHAR(255), 
    FieldName VARCHAR(255), 
    Value VARCHAR(255), 
    Code VARCHAR(255), 
    PermissionID VARCHAR(255), 
    PRIMARY KEY(Symbol, FieldName, ExchangeCode, PermissionID)
    )

因此,例如文本文件中的实体 BOB 将有如下一行:

BOB|AX|33|45|23.2|47|65.3|.....|65|2019-10-23|

注意前 3 个条目是ENTITY|code|PermissionID

在表中看起来像

ENTITY FieldName Value      Code PermissionID
BOB    45        23.3       AX   33
BOB    47        65.3       AX   33
...  
BOB    65       2019-10-23  AX   33

我只是在阅读线条并通过管道拆分并插入此表,但由于某种原因它变得很大。我知道它有很多行,但是如果文本文件是 4GB,那么一个表怎么能大 10 倍呢?

标签: pythonpython-3.xdatabasesqlitefilesize

解决方案


推荐阅读