Чтение / запись файла или чтение / запись базы данных - PullRequest
13 голосов
/ 20 июля 2010

Что дороже с точки зрения ресурсов и эффективности, операции чтения / записи файла или операции чтения / записи базы данных

Ответы [ 3 ]

10 голосов
/ 20 июля 2010

Сначала я собирался сказать «чтение / запись» базы данных, так как он включал необходимый файл io поверх накладных расходов БД, но потом понял, что это не так просто. Если у вас есть вся БД, загруженная в память, чтение будет происходить почти мгновенно, так как в этом случае не выполняется ввод-вывод файла.

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

С другой стороны, плохо настроенная база данных будет на несколько порядков медленнее, чем любой файловый ввод-вывод. Настройка БД имеет значение. Много.

3 голосов
/ 20 июля 2010

Это довольно загруженный вопрос.О каком размере файлов мы говорим?Гигабайт?Кроме того, какой тип и размер БД?Я часто использую комбинацию.Хотите ли вы контролировать целостность данных?Если это так, вы можете оставить это для БД, в противном случае вам придется контролировать все это на уровне приложения.
Есть много факторов, чтобы принять правильное решение по этому вопросу.Например, когда я создаю временные данные, которые я не хочу сохранять, я использую File, но если я использую данные, которые я хочу, чтобы они были сохранены или сохранены, то я использую DB.Если проблема связана с оборудованием, лицензированием или оборудованием, то, возможно, вам не нужна инфраструктура серверов БД и т. Д. Но если у вас есть ресурсы, то добавление слоя БД может быть правильным выбором.

0 голосов
/ 20 июля 2010

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

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