我正在对Datastax Cassandra进行一些测试,案例描述如下:
- 先决条件:1 Cassandra服务器,一个具有复杂主键(用户名,id)的表,选择查询如下:"从表名称中选择 *,其中用户名='abc ';并且结果集是16行的集合。
- 案例1:在DevCenter上执行查询,需要1676毫秒才能完成
- 用例2:使用"session. execute(statement)"在Java驱动程序上同步执行查询,耗时441ms
- 用例3:使用https://docs.datastax.com/en/developer/java-driver/3.3/manual/async/中介绍的异步解决方案在Java Driver上执行查询,需要1121毫秒才能完成
有人告诉我同步/异步速度更快的情况吗?
2条答案
按热度按时间ax6ht2ek1#
只对一个查询使用异步方法是不值得的,但是对于大量的查询,它会给你带来性能提升,因为你的代码不会等待前一个查询来执行下一个查询。
2hh7jdfx2#
我认为同步/异步方法不是更快或更慢,而是更多地考虑客户端的资源利用率。异步-对于长时间运行的查询没有阻塞。同步-阻塞,但对于快速查询可能是好的。异步方法可能需要使用其他编程技术(未来,回调..),在一些编程语言中,它比其他语言更受支持。