gpt4 book ai didi

database - 是什么减慢了数据库性能的增长?

转载 作者:太空狗 更新时间:2023-10-30 01:51:31 25 4
gpt4 key购买 nike

我正在创建一个数据库,然后首先进行原型(prototype)设计和基准测试。我正在使用 H2,一个开源的、商业免费的、可嵌入的、关系型的 Java 数据库。我目前没有在任何列上建立索引。

数据库增长到5GB左右后,批量写入速度翻倍(写入速度比原来慢了2倍)。我在一个全新、干净的数据库中每毫秒大约写入 25 行,现在在 7GB 时,我大约每毫秒写入 7 行。我的行由一个 short、一个 int、一个 float 和一个 byte[5] 组成。

我不太了解数据库内部结构,甚至 H2 的编程方式。我还想指出,我并不是在诋毁 H2,因为这是我测试过的其他 DBMS 的问题。

如果没有索引开销,哪些因素可能会像这样减慢数据库的速度?主要是跟文件系统结构有关吗?根据我的结果,我假设 Windows XP 和 ntfs 处理文件的方式使得随着文件的增长将数据附加到文件末尾的速度变慢。

最佳答案

随着数据库的增长,可能使插入变得复杂的一个因素是表上的索引数量,以及这些索引的深度(如果它们是 B 树或类似索引)。只是还有更多工作要做,可能是您导致 inode split ,或者您可能只是从 5 级 B 树移动到 6 级 B 树(或者更一般地说,从 N 到 N+1 级别)。

另一个因素可能是磁盘空间使用——如果您使用的是熟文件(大多数时候大多数人都使用这种文件;一些 DBMS 在 Unix 上使用“原始文件”,但您的嵌入式系统不太可能这样做,并且您会知道它是否这样做,因为您必须告诉它这样做),可能是您的较大表现在分散在磁盘上,导致性能下降。

如果问题出在 SELECT 性能上,则可能还有许多其他因素也会影响您的系统性能。

关于database - 是什么减慢了数据库性能的增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/193076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com