SQLite: одинаковый размер базы вне зависимости от типа данных
Помогите пожалуйста разобраться.
Создал базу "SQLite3", внутри создал 1 150 таблиц с однотипной структурой: 6 столбцов с типом ЧИСЛО и 2 столбца ДАТА. В каждую таблицу ежедневно будут загружаться по 40 строк.
Обратил внимание, что вне зависимости от указанного типа данных и загружаемой информации файл БД всегда занимает одинаковый объем памяти:
- 1-загрузка = 5,2 мб.
- 2-загрузка = 7,5 мб.
- 3-загрузка = 8,5 мб.
- 4-загрузка = 10,1 мб.
- 5-загрузка = 10,7 мб.
Итоговый размер БД не меняется, даже если в два из восьми столбцов вместо чисел загружать текст. На этом же сайте попадалась информация, что "SQLite3" все данные хранит текстовом формате (и заявляет, что она БД с динамической типизацией).
Правильно ли понимаю, что в таком случае на размер базы никак не повлиять?
def stat_to_db(keys):
data_base = sqlite3.connect('api_keys.db')
cursor = data_base.cursor()
for key in keys:
stat_request = get_stat(key)
cursor.execute(f"""CREATE TABLE IF NOT EXISTS '{key}' (
update_id integer,
update_time datetime,
method text,
limit_type text,
period_start_date date,
period_end_date date,
method_limit integer,
spent integer
)""")
# Определяем порядковый номер загрузки данных о статистике
update_id = 1 # Если запись первая, то номер загрузки = 1
cursor.execute(f"SELECT update_id FROM '{key}' ORDER BY update_id DESC")
if cursor.fetchone():
update_id = cursor.fetchone()[0] + 1 # Последующие загрузки на +1 больше
# Обновляем данные статистики
for method in stat_request:
cursor.execute(f"""INSERT INTO '{key}' VALUES (
{update_id},
'{date_and_time()}',
'{method['methodName']}',
'{method['limitType']}',
'{method['periodStartDate']}',
'{method['periodEndDate']}',
{method['limit']},
{method['spent']}
)""")
data_base.commit()
data_base.close()