分布式数据库解决方案

问题描述 投票:-1回答:2

我做了一些研究,分布式数据库。我的结论是最难的部分就是分布式查询,在多条记录,其中查询是很普通的如想象着有“DateTransaction”领域的事务表。这个查询(伪SQL)将是相当棘手:

SELECT * FROM Transactions 
WHERE DateTransaction>= '2016-01-01'  and DateTransaction<= '2017-09-01' --between jan 2016 and before sep 2017
ORDER BY DateTransaction DESC 
OFFSET 0
FETCH 100 -- take records between 0 and 99 inclusive

手工轧制这样的查询稍微有效的解决方案;其中数据拆分为N个节点;并不难。这是比较困难的一大片一位偏移,但可能会分页通过反正调整日期范围内进行。

但不管怎么说 - 我想避免手滚动的东西!我要寻找一个第三方解决方案(最好是免费的),它可以让我有效地完成查询,如在多个节点/机器的一个在该实例。原子性是没有必要的。任何人都知道从何处着手?

database distributed-computing distributed-system distributed-transactions distributed-database
2个回答
0
投票

你需要的是NewSQL数据库。而且有许多是免费的开源数据库NewSQL在那里能满足您的要求,像TiDBCockroachDB

如果您有pgSQL的语法或你的业务逻辑是用PostgreSQL的偏好,现在,你可以尝试CockroachDB。否则,我建议你选择TiDB。 TiDB支持分布式事务和distributed join,是与MySQL的语法完全兼容,并拥有众多成功的使用案例。

免责声明:我在PingCAP其发展TiDB工作。


0
投票

一种想法是,如果你要通过一系列查询,并将其限制只是几台服务器进行分区数据集。您可能要检查表分区在不同的数据库是如何工作的,并计划相应的分区数据。

© www.soinside.com 2019 - 2024. All rights reserved.