@Muskat12
fullstack web dev.

Как работать с базой на 2 миллиарда записей?

Сейчас есть SQLITE БД на 2.3 миллиарда строк. SELECTом искать в ней что-то очень долго, а с учетом того, что этих селектов от 100 за одну операцию, то это вообще вечность. Думаю перейти на PostgreSQL. Смысл есть? Если, нет то посоветуйте другие варианты решения проблемы.
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
Fockker
@Fockker
Потомок старинного рода Ипатьевых-Колотитьевых
Какой-то странный ответ выбран решением.
По количеству "фич" SQLite может поспорить со многими "настоящими" базами данных. Я уверен, что автор этого заявления не знает и 5% фич что Sqlite, что Postgres, что mysql.
Непонятно, за счёт чего "Postgresql конечно будет сложнее". Запросы практически те же самые, код тоже особо не изменится. Понятно, что надо будет собственно установить постгрес или там mysql, но это разовое действие, а сама работа с Postgresql ничуть не сложнее чем с sqlite.

Главное отличие sqlite от "нормальных" баз данных не в какой-то воображаемой "простоте", а в том что она встроенная. То есть запускается вместе со скриптом, и вместе с ним же умирает. И памяти ей доступно ровно столько, сколько скрипту. Из чего следует, что индексы, хотя и могут помочь, но их приходится заново считывать в память при каждом запуске скрипта.

В то время как классические DBMS являются постоянно висящими в памяти демонами. У которых все индексы, соответственно, тоже висят в памяти. То есть при обработке запроса система может не сделать вообще ни одного обращения к диску. За счет чего достигается огромный прирост производительности. Надо только следить за тем, чтобы хватало памяти, выделенной для индексов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@gsaw
Конечно смысл есть, sqllite потом и называется lite, потому что там фич кот наплакал. Цель была изначально сделать что то легковесное и встраиваемое. Короче не по назначению используется, думается мне.

Postgresql конечно будет сложнее, но там и фич больше. Можно шардинг настроить, да и само engine может лучше запросы оптимизировать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы