Я использую SQLite в приложении Java через Zentus . В этом контексте мне нужно сохранить и запросить значения Java long
в моей базе данных. Исходя из других СУБД, я создал следующую таблицу для хранения длинных значений:
CREATE TABLE myTable (id INTEGER PRIMARY_KEY, longValue LONG)
Это решение обеспечивает исключительное поведение, но после прочтения документации SQLite по типам данных Я понял, что мой тип LONG
имеет тот же эффект, что и использование TEXT
=> longValue
, сохраняемое как текст .
Затем я решил изменить это значение на INTEGER
(длина которого является переменной и может хранить до 64-битных целых чисел, что соответствует длине Java), чтобы иметь более чистый код и, возможно, сэкономить место на диске и увеличить производительность, потому что мои длинные значения вставляются и запрашиваются как long
.
После сравнения производительности и размера созданных баз данных я не вижу никакой разницы между:
CREATE TABLE myTable (id INTEGER PRIMARY_KEY, longValue LONG)
и
CREATE TABLE myTable (id INTEGER PRIMARY_KEY, longValue INTEGER)
Любые комментарии, опыт или чувства по этому вопросу?