我在网站上有一个列表中有大约1000个数据点的结构:
..。
每个数据池包含6个信息字段。每个数据点都可以打开,以便在子列表中显示额外的2-3倍信息。在Cassandra中,在用户单击我的数据点时发出新请求会被认为是错误的做法吗?我是不是应该一步一步就把这一切都解决掉?
发布于 2022-06-29 13:02:33
我是不是应该一步一步就把这一切都解决掉?
绝对不是那么回事。
在Cassandra中,在用户单击我的数据点时发出新请求会被认为是错误的做法吗?
这绝对是你应该做的。Cassandra擅长编写大量数据,但不太擅长返回大量数据。更重要的是,基于密钥的小查询绝对是可行的。
发布于 2022-06-29 15:05:04
可以在客户端进行连接,但通常情况下,需要联接的查询表明您可能没有正确地设计数据模型。
您需要对数据进行建模,以便(a)每个应用程序查询(b)映射到单个表。如果需要进行客户端连接,则需要多次查询数据库以获取应用程序所需的数据。它可以工作,但效率不高,因此会影响应用程序和数据库的性能。
为了举例说明,假设您的应用程序需要显示客户的订单列表。表设计需要由具有(群集)多行订单的客户进行分区:
CREATE TABLE orders_by_customerid (
customerid text,
orderid text,
orderdate timestamp,
ordertotal decimal,
...
PRIMARY KEY (customerid, orderid)
)您可以通过以下方式检索客户的订单列表:
SELECT ... FROM orders_by_customerid WHERE customerid = ?默认情况下,应用程序使用的驱动程序或星门API会将结果页面化,因此只返回前100行(例如),而不是在一次传递中检索数千行。注意,页面大小是可配置的。干杯!
https://stackoverflow.com/questions/72797795
复制相似问题