为什么我的sqlite表文件大小比预期的大10倍?

2024-09-27 23:15:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个4GB的文本文件,大约有1200万行。每一行都是一个实体字段值的管道分隔(|)列表。对于一个实体,每行大约有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倍呢


Tags: 数据实体列表sqlite管道valuecodeax

热门问题