数据库可伸缩性 - 性能与数据库大小

标签 database scalability

我正在创建一个应用程序,它必须将最多 32 GB 的数据放入我的数据库中。我正在使用 B 树索引,因为读取将有范围查询(比如从 0 < 时间 < 1 小时)。

开始时(数据库大小 = 0GB),我将获得每毫秒 60 和 70 次写入。在说 5GB 之后,我测试过的三个数据库(H2、berkeley DB、Sybase SQL Anywhere)的速度真的减慢到每毫秒不到 5 次写入。

问题:

  • 这是典型的吗?
  • 如果我删除了索引,我还会遇到这个可扩展性问题吗?
  • 造成这个问题的原因是什么?

注意事项:

每条记录由几个整数组成

最佳答案

是的;索引以插入时间为代价改善了获取时间。您的数字听起来很合理 - 不知道更多。

您可以对其进行基准测试。您需要存储合理数量的数据。考虑是否根据查询建立索引——大量获取和少量插入?在 where 子句可能使用它的任何地方索引。轻取,重插入?可能避免索引。混合工作量;对其进行基准测试!

在进行基准测试时,您需要尽可能真实或真实的数据,无论是在体积上还是在数据域上(数据分布,例如,不仅仅是所有“henry smith”,而是各种名称)。

关于数据库可伸缩性 - 性能与数据库大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/217531/

相关文章:

mysql - 每年 2600 万条记录的解决方案设计。任何时候只有 5000 个处于事件状态(Ruby on Rails 和 MySQL)

php - Mysql连接不上,目标机器主动拒绝

mysql - 在 vb6 中使用存储过程填充组合框

MySql 获取推荐人关注

Web 服务器上的 Redis 只读副本

frontend - ThingWorx 水平可扩展性

database - 插入错误 : Syntax error and Unknown field

sql-server - 在 accpac 中写入 sql 数据库

http - Mochiweb 的可扩展性特性

c# - guid 可以是一个好的分区键吗?