SQLite: одинаковый размер базы вне зависимости от типа данных

Помогите пожалуйста разобраться.

Создал базу "SQLite3", внутри создал 1 150 таблиц с однотипной структурой: 6 столбцов с типом ЧИСЛО и 2 столбца ДАТА. В каждую таблицу ежедневно будут загружаться по 40 строк.

Обратил внимание, что вне зависимости от указанного типа данных и загружаемой информации файл БД всегда занимает одинаковый объем памяти:

  1. 1-загрузка = 5,2 мб.
  2. 2-загрузка = 7,5 мб.
  3. 3-загрузка = 8,5 мб.
  4. 4-загрузка = 10,1 мб.
  5. 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()

Ответы (0 шт):