Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 DBM数据库的理想字符串长度?_Database_Berkeley Db_Dbm_Gdbm - Fatal编程技术网

Database DBM数据库的理想字符串长度?

Database DBM数据库的理想字符串长度?,database,berkeley-db,dbm,gdbm,Database,Berkeley Db,Dbm,Gdbm,当使用DBM数据库(例如Berkeley或GDBM)时,使用更少的长字符串还是更多的短字符串来存储数据更好?无论哪种方式,我都可以轻松构建数据结构。我在寻找性能上的“更好”,但我对其他含义也感兴趣。我认为这个问题很难用一种完全通用的方式来回答。这里有太多的变量,所以您确实需要测试一些常见的场景,以确定最适合您的答案 需要考虑的一些因素: 较大的字符串是否需要子字符串搜索 您将对数据执行何种搜索 最后,通常最好采用产生最规范化模式的方法。优化可以从那里开始,根据您的数据库,可能有比纯粹为了性能

当使用DBM数据库(例如Berkeley或GDBM)时,使用更少的长字符串还是更多的短字符串来存储数据更好?无论哪种方式,我都可以轻松构建数据结构。我在寻找性能上的“更好”,但我对其他含义也感兴趣。

我认为这个问题很难用一种完全通用的方式来回答。这里有太多的变量,所以您确实需要测试一些常见的场景,以确定最适合您的答案

需要考虑的一些因素:

  • 较大的字符串是否需要子字符串搜索
  • 您将对数据执行何种搜索

最后,通常最好采用产生最规范化模式的方法。优化可以从那里开始,根据您的数据库,可能有比纯粹为了性能而重新构造基础架构更好的替代方案。

我认为这个问题很难用完全通用的方式来回答。这里有太多的变量,所以您确实需要测试一些常见的场景,以确定最适合您的答案

需要考虑的一些因素:

  • 较大的字符串是否需要子字符串搜索
  • 您将对数据执行何种搜索

最后,通常最好采用产生最规范化模式的方法。优化可以从这里开始,根据您的数据库,可能有比纯粹为了性能而重新构造基础架构更好的替代方案。

如果您要经常搜索或修改数据,则更多的短字符串将提供更好的性能


即,你不想搜索这些长字符串中的一个子串,或者经常修改字符串中间的某个值。

< P>如果你经常搜索或修改数据,更多的短字符串将提供更好的性能。


即,您不希望搜索这些长字符串中的一个子串,或者经常修改字符串中间的某个值。

<伯克利DB,或任何其他DBM实现,将为每个键/值对产生开销。如果您处理的是数百万个k/v对,那么开销将很重要,否则就是噪音,您应该选择对您来说最简单的方式,程序员,让数据库处理数据。开销和访问时间也取决于访问方法。哈希表和B-树是完全不同的算法动物。如果您的数据具有任何程度的键顺序或访问模式依赖于键,那么99%的时间B-树是可行的


我认为您提出了一个很好的设计问题,但我认为任何人要给您一个完美的答案,我们都必须更多地了解您处理的数据量、访问模式和许多其他因素。

伯克利DB或任何其他DBM实现都会为每个键/值对带来开销。如果您处理的是数百万个k/v对,那么开销将很重要,否则就是噪音,您应该选择对您来说最简单的方式,程序员,让数据库处理数据。开销和访问时间也取决于访问方法。哈希表和B-树是完全不同的算法动物。如果您的数据具有任何程度的键顺序或访问模式依赖于键,那么99%的时间B-树是可行的


我认为你提出了一个很好的设计问题,但我认为任何人要给你一个完美的答案,我们都必须对你处理的数据量、访问模式和许多其他因素有更多的了解。

你为什么要使用dbm而不是更好的数据库,如mysql等?它们不是“更好”,只是“更大”的最佳字符串长度将取决于您的应用程序。您会经常搜索数据吗?您的搜索将基于哪些元素?哪些字段将经常被修改?Python允许在几乎任何系统上使用dbm数据库,而无需用户安装任何东西。而且mysql对于我的要求来说太重了。很多访问都很快,通常是读取。写操作不太频繁,所以我不关心写操作的性能。由于dbm中只有一个“键”,所以我只能搜索一个元素……您为什么使用dbm而不是更好的数据库(如mysql等)呢?它们不是“更好”,只是“更大”的最佳字符串长度取决于您的应用程序。您会经常搜索数据吗?您的搜索将基于哪些元素?哪些字段将经常被修改?Python允许在几乎任何系统上使用dbm数据库,而无需用户安装任何东西。而且mysql对于我的要求来说太重了。很多访问都很快,通常是读取。写操作不太频繁,所以我不关心写操作的性能。因为dbm中只有一个“键”,所以我只能搜索一个元素。。。