我正在评估一个项目的一些不同数据存储,我有一个奇怪但又不灵活的要求,即每个查询要检查1500个键的存在...基本上,我将要运行的唯一查询是表格:
SELECT user_id, name, gender
WHERE user_id in (user1, user2, ..., user1500)
表中将有约35亿行。 Spanner是引起我关注的一个数据存储。我想知道以这种方式查询数据是否可行,或者由于WHERE
子句中的大量项目而导致性能问题。到目前为止,我只能在少量数据上测试这些查询,因此我更多地依靠理论上的性能打击,而不是奢求“尝试并发现”。
此外,是否还有其他数据存储可能更适合此读取模式?我希望每秒运行不超过80个查询。同样,数据将每周批量加载。数据是按自然结构构成的,但我们不会以关系方式(即无联接)使用它。
无论如何,如果这个问题含糊其辞,对不起。如果需要,我很乐意提供更多细节。
答案 0 :(得分:4)
1500个键应该不是问题:
SELECT user_id, name, gender
FROM table
WHERE user_id in UNNEST(@users)