从MySQL迁移到Crate
问题描述:
我刚刚花了一些时间来试验Crate - crate.io - 并且第一印象很好。如果我的理解是正确的Crate是一个NoSQL数据库,它提供了一个相当整洁的SQL接口来操作和查询数据库。太好了!从MySQL迁移到Crate
但是,在这个阶段,我有更多的问题,而不是答案。这里有三个首发
- 箱子管理控制台很好。然而,除了设置IP表规则之外,我可以如何保护它?
- MySQL索引如何转换为Crate。我没有看到我可以继续使用UNIQUE索引,然后依赖UPDATE ... ON DUPLICATE KEY ... SQL语句
- 最后,如果我正确地假设一旦设置了集群,Crate就会处理数据复制和同步,我没有进一步的努力。因此,如果我的地理位置不同,Crate集群节点会延迟与同步相关的问题,从而降低整个集群的性能?我正在设想readng /写入本地机箱实例,但可选择在稍后能够从另一个机箱实例恢复这些数据(同步无关)
这些问题可能不完全适合“SO格式,但考虑到年轻的箱子,我希望他们仍然被认为是可以接受的。
答
很高兴喜欢它。
1)Crate中目前没有ACL支持。所以管理界面以及HTTP端点都是打开的。总体思路是,箱子在私人网络中运行,而不是直接暴露在外面。
请参阅this github issue和this blog post about how to create a read-only nginx proxy了解更多信息。
2)箱子不支持UNIQUE约束。 (除了主键,当然这是唯一的)。因此,如果主键已经存在,UPDATE .. ON DUPLICATE KEY将起作用。
其他UNIQUE约束很难做到,因为数据可能驻留在不同的节点上,然后某种确保唯一性的机制非常昂贵。
3)是等待时间会减慢插入操作。还有更多关于Multi Zone Setup section in the Documentation