Хорошо, это уже несколько дней назад, но я потратил некоторое время на написание кода и работу с SQLite в других проектах.
Я все еще хотел сравнить DB-подход с MMAP-решением только с точки зрения производительности.
Конечно, это сэкономит вам много работы, если вы сможете использовать SQL-запросы для обработки всех проанализированных данных. Но я действительно не заботился о количестве работы, потому что я все еще многому учусь, и вот что я узнал:
Этот MMAP-подход - если вы правильно его реализуете - абсолютно превосходен по производительности. Это невероятно быстро, что вы заметите, если внедрите пример «подсчета слов», который можно рассматривать как «привет мир» для MapReduce Algo.
Теперь, если вы хотите еще больше воспользоваться SQL-языком, правильным подходом будет реализация вашего собственного SQL-Wrapper, который тоже использует вид Map-Reduce посредством совместного использования запросов между потоками.
Возможно, вы можете поделиться объектами по идентификатору между потоками, где каждый поток обрабатывает свое собственное соединение с БД. Затем он запрашивает объекты в своей части набора данных.
Это было бы намного быстрее, чем просто записывать вещи в БД SQLite обычным способом.
После всего, что вы можете сказать:
MMAP - самый быстрый способ обработки строк
SQL обеспечивает отличную функциональность для приложений-анализаторов, но замедляет работу, если вы не реализуете оболочку для обработки SQL-запросов