寻找合适的数据库技术来有效查询300 mil记录表。表可能包含5-30列,大多数是tinyint + zip,state。用户可以发出任意查询,其中包含许多列的条件,并通过state或zip计数。数据集在某种意义上是静态的,数据会定期重新加载,并且没有插入,只需读取。
我已经尝试过InnoDB的Mysql(RDS)。由于大量的记录和查询的性质,我无法获得满意的表现。
尝试了MonetDB(柱状存储)并取得了非常好的结果,但似乎并没有被许多人使用,这引起了一些担忧。
要求响应时间足够快,以便用于分析的响应式Web UI。
我应该探索哪些其他技术?
答案 0 :(得分:3)
我鼓励你尝试使用MonetDB,这取决于你的查询,但一般来说 - 它是一个列存储,你应该获得良好的性能(甚至超过300万的记录)。另外,您不需要手动创建索引等 - 它主要是自我优化的。 MonetDB还有Node.js driver/connector,可用于编写快速分析Web应用程序。还有流行的languages/frameworks连接器:Ruby,Python,Perl,PHP,Java(通过JDBC)。
不用担心,MonetDB正在积极开发中(免责声明:我实际上是开发人员),您可以在用户邮件列表上相对快速地获得答案。
答案 1 :(得分:0)
查看Google App Engine的Datastore。它们会自动使用索引优化您的查询,以便快速响应并使用Google,因此它们可以轻松地从零流量扩展到数百万次点击。
应用程序可以用Java或Python编写,使用您自己的框架或他们的。
答案 2 :(得分:-1)