Извлечение данных из базы данных. Получать только при необходимости или получить все? - PullRequest
0 голосов
/ 25 мая 2010

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

При проектировании у меня возник вопрос:

При разработке программ, использующих базы данных, я должен извлечь все записи базы данных и сохранить их в объектах в моей программе, чтобы у меня была очень высокая производительность, или я должен всегда собирать данные только при необходимости?

Конечно, получение всех данных может быть выполнено, только еслиэто не слишком много, но используете ли вы этот подход, когда убедитесь, что база данных будет маленькой (например, <300 записей)?</p>

Я однажды разработал аналогичное приложение, которое извлекает данные только при необходимости, но это было медленно (с использованием базы данных Access).

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 25 мая 2010

Это во многом зависит от типа данных, состояния, в котором работает ваше приложение, транзакций, нескольких пользователей и т. Д.

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

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

Для строк и небольших фрагментов данных, таких как список контактов, у вас не должно быть проблем со скоростью при работе с реляционной базой данных, такой как SQL, MySql или Oracle.

1 голос
/ 25 мая 2010

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

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