Q: クエリの結果を非同期でストリーミングする方法はありますか?

A: ストリーミングAPIをサポートしています。

ストリーミング処理はstreamメソッドを使用して行うことができます。これによって戻り値はFs2のStreamになります。

val stream: fs2.Stream[DBIO, String] = sql"SELECT * FROM `table`".query[String].stream

MySQLではUseCursorFetchの設定によってストリーミングの動作が大きく変わります:

大量データを扱う場合はUseCursorFetch=trueの設定を推奨します。

参考資料