Если я могу хранить свои данные в текстовых файлах и легко справляться с этими файлами, зачем мне использовать такие базы данных, как Mysql, oracle и т. Д. - PullRequest
1 голос
/ 03 августа 2010

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

Ответы [ 3 ]

3 голосов
/ 03 августа 2010

Базы данных являются базами данных по очень веской причине, они НАСТОЯТЕЛЬНО оптимизированы для: а) эффективного хранения ваших данных и б) их эффективного извлечения.Таким образом, нет никакой сортировки, упорядочения, оптимизации и т. д. Что касается безопасности, текстовый файл не защищен паролем, и кто-то может легко просмотреть содержимое файла, это не относится к базе данных.Список, конечно, бесконечен, и вы действительно должны использовать базу данных!

Если вы ищете решение, похожее на текстовый файл, попробуйте SQLite, http://www.sqlite.org/

2 голосов
/ 03 августа 2010

Индексные издержки базы данных означают, что CSV-файл или аналогичный файл будет более экономичным.Предполагая, что база данных использует дерево B + или аналогичное для своего файла данных (т. Е. MySQL, использующий InnoDB), файл CSV (при условии использования fs на основе достойного экстента) также будет более эффективным при последовательной обработке.

Однако

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

Все еще

Если вы просто ищете простой способ сохранения данных, вы будете использоватьобъем памяти;вам не требуется одновременный доступ;или, ваш шаблон доступа ориентирован на запись последовательной пакетной обработки, тогда вы действительно не сможете пройти мимо простоты, простоты разработки / отладки и высоко оптимизированной производительности скромного файла CSV, опосредованной ОС.

Любой, кто говорит вам не думать о ваших конкретных шаблонах использования и требованиях и «Просто используйте базу данных», просто неправ.

0 голосов
/ 03 августа 2010

Помимо того, что уже было упомянуто, базы данных обеспечивают одновременный доступ, устранение ошибок, распространение по сети (клиент / сервер) и транзакции.

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

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