Место для хранения данных для временных баз данных в SQLite 3 - PullRequest
2 голосов
/ 09 декабря 2011

Я создал базу данных SQLite как временную базу данных (указав пустое имя файла в sqlite3_open ()).Я также указал ограничение на объем памяти, который может использовать база данных, около 200 КБ с помощью функции sqlite3_soft_heap_limit64 ().

Поскольку я продолжаю вставлять строки базы данных, я вижу, что память, используемая базой данных(полученный sqlite3_memory_used ()) увеличивается до тех пор, пока не достигнет 200 КБ, а затем после этого останется неизменным даже при продолжении вставки строк.

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

1 Ответ

4 голосов
/ 05 января 2012

Я копался в коде SQLite, чтобы увидеть, как это делается.На платформах Unix SQLite попытается создать временный файл в:

  1. месте, указанном глобальной переменной SQLite: sqlite3_temp_directory
  2. каталоге, указанном в любой средепеременные 'TEMP', 'TMP' или 'TMPDIR' в указанном порядке.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...