我有一组数据,如下所示:
id name c1 c2 c3 c4 ... c50
-----------------------------------------------
1 string1 0.1 0.32 0.54 -1.2 ... 2.3
2 string2 0.12 0.12 -0.34 2.45 ... 1.3
...
(millions of records)
所以我有一个 id 列,一个字符串列,然后是 50 个浮点列。
在传统 SQL SELECT 语句中,只有一种类型的查询会在此数据上运行,如下所示:
SELECT name FROM table WHERE ((a1-c1)+(a2-c2)+(a3-c3)+...+(a50-c50)) > 1;
其中a1,a2,a3,etc
是在发送查询之前生成的值(不包含在数据表中)。
我的问题是:对于哪种类型的数据库可以最快地处理此类查询,是否有人有任何建议。 我用过SQL server
(主要是慢),所以我正在寻找其他意见。
有没有办法为这种类型的查询优化 SQL 服务器?我也对列存储数据库(例如MonetDB
. 或者可能是一个文档存储数据库,例如MongoDB
. 有没有人有什么建议?
非常感谢,布雷特