我想知道如何配置Cassandra以获得更好的读取性能,因为当我尝试在一个有1M行的表上执行SELECT查询时,我得到的是timedoutexception。
我已经更改了request_timeout_in_ms,添加了更多节点,但仍然收到相同的错误。
发布于 2013-05-25 04:22:50
您一次查询的行太多。您需要一次查询较少的行并对它们进行分页。
更新:
第一个查询:
select <KEY>,p0001 from eExtension limit 1000;重复:获取该查询的最后一个结果:
select <KEY>,p0001 from eExtension where token(<KEY>) > token(<LAST KEY RETURNED FROM PREVIOUS>) limit 1000;重复该模式,直到完成为止。
发布于 2013-05-24 01:49:16
听起来你想要一次读取全部1M行。别。
发布于 2013-05-25 18:05:32
进行分页的一种方法是使用Cassandra的客户端应用程序,如Playorm。当您进行查询时,PlayOrm会返回一个游标,当您的第一个页面读取前100个结果并显示它时,下一个页面可以在您的会话中使用相同的游标,并从它离开的地方开始,而不需要再次重新扫描前100行。访问this查看光标和this的所有功能的示例以及有关playorm的更多详细信息
https://stackoverflow.com/questions/16697002
复制相似问题