Я думаю, что это зависит от того, какие операции вы хотели бы выполнить: если вы хотите просто прочитать все из файла, без выполнения поиска / выбора одного экземпляра и тому подобного, лучше использовать файл (вам просто нужно прочитать его и восстановить экземпляры).
Если вам нужен какой-либо тип доступа, отличный от каскадного чтения, используйте базу данных (они оптимизированы программой для записи / чтения файла настолько быстро, насколько это возможно, позволяя также операции такого типа;))
Есть еще одна маленькая проблема: я не знаю, как ruby выполняет и обрабатывает файл (возможно, чтение из файла медленнее из-за синтаксического анализатора), я думаю, вы можете задать это на форуме ruby, но я полагаю, что чтение файл от начала до конца не будет проблемой