Ответ 1
SQLite будет обрабатывать этот файл просто отлично; обязательно импортируйте записи в транзакцию, чтобы не тратить много времени на создание индексов, пока все не будет импортировано.
Я имею достаточно большой набор данных и хотел бы сохранить его в файле, а не в RDBMS.
Основная таблица в наборе данных составляет чуть более 1M строк, 30 столбцов и около 600 МБ в качестве CSV.
Я рассматриваю SQLite. SQLite стоит исследовать для наборов данных такого размера?
SQLite будет обрабатывать этот файл просто отлично; обязательно импортируйте записи в транзакцию, чтобы не тратить много времени на создание индексов, пока все не будет импортировано.
Недавно я изучил SQLite для аналогичного приложения. В документации SQLite указано, что базы данных SQLite могут иметь размер терабайта и что основным ограничением SQLite является concurrency (многие пользователи одновременно). Хотя мы не пошли в этом направлении (у нас есть собственный формат двоичного хранения), я был довольно уверен, что SQLite может обрабатывать файлы такого размера.
sqlite работает быстро, когда вы используете транзакции и не совершаете слишком часто. Использование подготовленных операторов с параметрами ускоряет работу. Sqlite не требует повторной обработки каждого оператора sql при использовании параметризованных запросов. Пример: Как обойти "" " проблема в sqlite и С#?
Я храню 2 гигабайта в sqlite db, он работает очень хорошо. Большим преимуществом sqlite над плоским файлом является возможность индексирования ваших данных.
У вас уже есть свой ответ, но я хотел бы поделиться своим текущим экспериментом: я сбросил миллиарды записей стоимостью 793 гигабайта данных в одну базу данных SQLite, а запросы на чтение все еще на удивление быстрые (до 1 м).
Время создания заняло чуть больше 22 часов, а создание пост-индекса заняло около 4 часов за столбец.
sqlite должен отлично работать для вас. Я запустил набор данных такого размера даже во встроенном устройстве, и производительность sqlite была вполне разумной.
Как указано, основным узким местом является concurrency. Направьте свою систему так, чтобы в файле базы данных было открыто не более одного дескриптора базы данных.