Следует ли мне открывать () и закрывать () свои База данных SQL постоянно или оставить ее открытой?

Я создаю приложение, которое использует базу данных SQL для хранения данных. Поскольку приложение разработано, оно будет обновляться каждые 3 минуты или около того новыми данными в зависимости от действий пользователя во время работы приложения.

В учебных пособиях, которые я видел, они рекомендуют вам закрыть базу данных после ее изменения (это является «дорогим» по ресурсам).

Лучше ли оставить его открытым на время работы моего приложения, поскольку оно обновляется довольно часто, или мне следует запускать метод close () сразу после каждого изменения?

Я думаю, меня беспокоит то открытие его постоянное закрытие потребует больше ресурсов, чем если бы он оставался открытым все время.

25
задан Grant - REINSTATE MONICA 9 February 2014 в 23:40
поделиться

4 ответа

Я однажды пытался оставить соединение открытым - я использовал его, чтобы заполнить ретранслятор или что-то еще - не помню сейчас.

Позже в программе у меня была еще одна необходимость использовать соединение - я думаю, что оно было у меня так, чтобы, когда пользователь щелкнул родительский элемент в повторителе, всплыло подробное div с дополнительной информацией для этого элемента. Это породило ошибку - что-то вроде «не могу открыть () при открытом соединении».

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

Соединения остаются в пуле соединений - я в этом не задумываюсь, - но если бы мне было интересно узнать производительность, думаю, я бы учел это с точки зрения стоимости многократного открытия соединения - - независимо от того, чего требует ваша ситуация.

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

5
ответ дан 28 November 2019 в 21:57
поделиться

Допустим, у вас есть несколько операций с БД, которые нужно выполнять в одном потоке. Я бы оставил БД открытой для выполнения этих действий. Однако закройте БД после выполнения работы.

3
ответ дан 28 November 2019 в 21:57
поделиться

Я думаю, что ответ на этот вопрос также зависит от того, какое приложение обращается к базе данных.

Если вы повторно запросите базу данных много В этом случае вы можете оставить базу данных открытой.

Существуют ли какие-либо другие приложения, обращающиеся к той же базе данных? Если существует риск возникновения проблем параллелизма или блокировки, может быть целесообразно закрыть базу данных после завершения чтения / записи из нее / в нее.

]

Посмотрите следующий URL

Когда закрывать соединение БД на Android? Каждый раз после завершения вашей операции или после выхода из приложения

Спасибо Deepak

3
ответ дан 28 November 2019 в 21:57
поделиться

Если вы спросите меня обо всем, что я до сих пор читал об Android, и вообще лучше закрыть его сразу после внесения изменений.

То, что я считаю лучшим, когда вы можете, это на самом деле создать и зарегистрировать контент-провайдера. У него есть свои цены, но я верю, что вы получаете намного больше, чем платите. С провайдером контента можно делать практически все, и пример блокнота на портале Android отлично подойдет для изучения того, как его реализовать. он заботится о синхронизации и открытии / закрытии базы данных. так что, возможно, посмотрите на это.

1
ответ дан 28 November 2019 в 21:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: