Почему размер моей таблицы sqlite в 10 раз больше ожидаемого? - PullRequest
1 голос
/ 31 октября 2019

У меня есть текстовый файл объемом 4 ГБ с примерно 12 миллионами строк. Каждая строка представляет собой разделенный по конвейеру (|) список значений поля для объекта. В строке около 20 полей для объекта.

Я вставляю данные в таблицу sqlite с Python, и размер таблицы составляет около 35 ГБ, что нелепо. Так что я делаю не так?

Моя схема таблицы

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

Я просто читаю строки и разбиваю их по трубе и вставляю в эту таблицу, и она становится огромной длянекоторая причина. Я знаю, что это много строк, но если текстовый файл 4 ГБ, как таблица может быть почти в 10 раз больше ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...