如何在键值存储上实现大型关系数据库模式?
以下是要求:
1) 不使用存储过程或特殊数据库供应商的特定功能
2) 使用索引
3) 使用连接
4) 表中的许多复杂类型(VARCHAR、INT、BLOB 等)
5) 数十亿条记录
6) 全文检索
7) 可以进行时间戳备份
8) 不需要事务(仅限原子单行/字段更新)
如何在键值存储上实现大型关系数据库模式?
以下是要求:
1) 不使用存储过程或特殊数据库供应商的特定功能
2) 使用索引
3) 使用连接
4) 表中的许多复杂类型(VARCHAR、INT、BLOB 等)
5) 数十亿条记录
6) 全文检索
7) 可以进行时间戳备份
8) 不需要事务(仅限原子单行/字段更新)
本质上,您必须构建自己的关系数据库系统。没有它,连接将非常慢(没有查询优化器)。你可以通过嫁接Lucene获得全文搜索。
您是否考虑过开源 RDBMS(例如 Derby)?
通常,键值存储的全部意义在于摆脱关系数据库的约束,但听起来您希望它们回到这里。每个人都想拥有他们的蛋糕并吃掉它,但我对你在这里想要完成的事情感到困惑。如果你想要关系数据库的强大功能,你应该使用关系数据库。
也就是说,您可能想看看MongoDB,它代表了关系数据库的刚性、结构化性质和键值存储的更自由形式的方法之间的一个很好的折衷。