iphone - открывать и закрывать базу данных sqlite каждый раз, когда я ее использую - PullRequest
8 голосов
/ 26 апреля 2009

Я пишу приложение для iPhone, которое использует SQLite. Я привык открывать и закрывать свои соединения каждый раз, когда использую базу данных. Однако я не знаю, является ли это хорошей практикой в ​​среде iPhone / SQLite. Я хочу знать, должен ли я открыть базу данных 1 раз или все нормально, чтобы открывать и закрывать базу данных каждый раз, когда я ее использую. Пожалуйста, дайте мне знать.

Ответы [ 3 ]

6 голосов
/ 26 апреля 2009

Я полагаю, что вы должны держать его открытым как можно дольше, чтобы данные кэшировались в DRAM. Конечно, вы также должны организовать свои транзакции так, чтобы вы фиксировали их в логические моменты времени и поддерживали целостность транзакций.

1 голос
/ 26 апреля 2009

Оба ответа кажутся правильными, но на самом деле это зависит от того, как часто вы используете его и насколько оно велико. В случае большого размера БД вы должны установить больший кеш страниц, но это приводит к большему потреблению памяти, а если доступ редок - нет причин постоянно его удерживать (но если использование также небольшое - кеш больших страниц вам тоже не поможет ).

Если он маленький - нет причин открывать / закрывать его каждый раз, даже при нечастом использовании. Но в среднем потребление ресурсов выше при регулярном открытии / закрытии. В общем, не открывайте БД каждый раз, когда вы его используете .

1 голос
/ 26 апреля 2009

Я бы поступил так, как предложил Мэтью: оставьте одно соединение открытым, пока ваша программа работает.

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