Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database RocksDB中SQL数据库表类比的最佳实践是什么_Database_Rocksdb - Fatal编程技术网

Database RocksDB中SQL数据库表类比的最佳实践是什么

Database RocksDB中SQL数据库表类比的最佳实践是什么,database,rocksdb,Database,Rocksdb,在SQL数据库中,相关信息通常存储在数据库的不同表中。从我从RocksDB文档中读到的内容来看,实际上没有明确或“正确”的方式来表示这种结构。所以我想知道对信息进行分类的做法是什么 假设我有三种类型的信息,客户、产品和员工。我想在RocksDB中实现这些。我应该使用键的前缀、不同的列族还是不同的数据库 谢谢你的建议。你可以用一些前缀来表示这样的表,这样的列,这样的id。为了简单起见,你可以存储在一个列族中,并定义在一个db中,因为你有原子操作,快照等等。更好的问题是,除非您正在构建更高级别的内容

在SQL数据库中,相关信息通常存储在数据库的不同表中。从我从RocksDB文档中读到的内容来看,实际上没有明确或“正确”的方式来表示这种结构。所以我想知道对信息进行分类的做法是什么

假设我有三种类型的信息,客户、产品和员工。我想在RocksDB中实现这些。我应该使用键的前缀、不同的列族还是不同的数据库


谢谢你的建议。

你可以用一些前缀来表示这样的表,这样的列,这样的id。为了简单起见,你可以存储在一个列族中,并定义在一个db中,因为你有原子操作,快照等等。更好的问题是,除非您正在构建更高级别的内容,否则为什么要在nosql db中存储关系数据。
顺便说一句,checkout是高级数据库的一个示例,您可以在其中存储实体,执行linq风格的操作,并且它在下面使用rocksdb。

在键值存储中组织数据的方式取决于实现。没有“一个好办法”,这取决于底层的键值存储特性(特别是键值顺序)

同样的规范化/非规范化技术也适用

我认为您缺少的关于key value store应用程序设计的部分是。很快,以便于查询的方式构建密钥的做法就出现了。如果数据库已订购,则它还将用于前缀/范围/扫描查询和下一次/上一次导航。这将导致您以这样一种方式构建密钥前缀,即查询速度快,不需要进行完整的表扫描

将您的研究扩展到其他键值存储,如bsddb或leveldb这里的堆栈溢出