MariaDB的反应驱动程序



我正在为MariaDB使用Quarkus+弹药+反应驱动程序。我有一个问题要了解反应驱动程序是如何工作的。

我想处理存储在数据库中的20_000_0000个条目。为此,我希望高效地流式传输条目,以应用非阻塞转换。

select COUNT(*) from entries -> 20_000_000 

MariaDB反应驱动程序是如何工作的?

它打开TCP连接并获取所有条目->噩梦和阻塞处理:(

它打开一个连接,请求一个有限的条目包,并对它们进行流式传输(就像分页一样(->不是很有效

它打开连接并等待接收事件以逐个获取条目->反应方式。…

请确认或解释它是如何工作的(文档、模式…(?

非常感谢您的帮助

如果您执行查询或准备好的查询,MySQL的Reactive Client将获取所有行。

对于大量的行,最好使用流式API:

Multi<Row> rows = connection.prepare("SELECT * FROM users WHERE age > ?")
.onItem().transformToMulti(ps -> ps.createStream(50, Tuple.of(18)).toMulti());

对于您正在处理的行数,考虑使用存储过程处理数据所在的位置,而不是通过网络发送数据,可能会很有趣。您的里程数可能有所不同。

最新更新