Хобрук: Ваш путь к мастерству в программировании

Что более эффективно по времени? Файловое хранилище или SQLite

Я разрабатываю расширение Firefox, которое должно служить механизмом профилирования пользователей и веб-персонализации. Он должен хранить данные веб-страниц, связанные с TF-IDF. Мой вопрос в том, что даст более быстрые результаты простого поиска?

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

OR

б. Хранение и запросы и данные из базы данных SQLite?

Можно с уверенностью предположить, что в худшем случае в одной из таблиц будет около 250 000 строк.


Ответы:


1

Ваш вопрос в основном сводится к следующему:

а. Должен ли я написать свою собственную реализацию системы хранения данных?

or

б. Должен ли я использовать готовую проверенную систему хранения данных?

Я бы сказал, если вы пойдете с первым подходом, что:

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

Другой способ взглянуть на это так: почему бы вам НЕ использовать SQLite? Есть ли какая-то проблема с этим для вашего сценария? Я не могу думать ни о каком.

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

15.12.2011
  • Спасибо за комментарии. Меня беспокоит, не приведет ли использование базы данных для такого простого сценария к накладным расходам, которые сделают приложение менее производительным по сравнению с использованием моей собственной реализации на основе файлов. 16.12.2011

  • 2

    Почему нельзя использовать некоторую структуру данных, такую ​​как словарь или двоичное дерево. Основывайте структуру данных на количестве операций поиска, извлечения, вставки и удаления.

    26.02.2012
    Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

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