首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每分钟插入300次,每月600万行

每分钟插入300次,每月600万行
EN

Database Administration用户
提问于 2015-10-01 11:22:59
回答 2查看 667关注 0票数 1

我有一个使用PostgreSQL9.3的Django应用程序,它的负载将增加到每分钟大约300个插入(峰值负载),并且在一个表中每个月大约有600万行。而且,在同一个表上应该有很多查询,没有什么复杂的,只是一个sum分组和索引字段。

这张桌子是这样的:

代码语言:javascript
复制
        Column        |           Type           | Modifiers                                
----------------------+--------------------------+-----------
 id                   | integer                  | not null default nextval('seq'::regclass)
 commercial_entity_id | integer                  | not null
 commercial_branch_id | integer                  | 
 when                 | timestamp with time zone | not null
 currency_id          | character varying(3)     | not null
 amount               | numeric(10,2)            | not null
 loyalty_account_id   | integer                  | not null
 code                 | character varying(16)    | not null

有人能告诉我,我应该为这个负载提供多少硬件,或者什么是处理这个问题的好方法?

现在,它正在Amazon S3 m3上运行,它只有2 vCPU和7.5GB内存。我想这是不够的,但我没有任何真实世界的经验来更好地了解。

更新:

在Meta的帮助下,我将我的问题重新表述如下:

您应该如何确定我需要什么样的硬件来处理这个负载?从哪里可以了解到可以对数据库进行的其他更改以提高其性能?

EN

回答 2

Database Administration用户

发布于 2015-10-01 21:20:02

基本上有两种方法来回答你的问题:猜测和模拟。

对于前者,您仍然没有提供很多有用的信息,例如:

  • 您当前的工作负载是什么?您的服务器今天的行为如何?
  • 您当前的数据卷是多少?
  • 你打算一个月用你的600万行做什么?无限期地留着?三个月后存档?

至于模拟,您可能只需一两天就可以克隆现有数据库,创建测试系统;下载并安装Apache JMeter;编写一个简单的测试计划,生成300个插入/秒加上查询;并运行它以查看系统在预计工作负载下的实际行为。这将允许您(或其他人建议的临时顾问)识别性能瓶颈,并通过向其抛出额外的硬件来确定是否可以解决这些瓶颈。

票数 3
EN

Database Administration用户

发布于 2015-10-01 20:53:51

  1. 您应该如何确定我需要什么样的硬件来处理这个负载?
    • 分析当前硬件上的预期负载。如果硬件无法处理负载,可以找到减少负载的方法,或者升级硬件。
    • 分析虚拟/云基础硬件上的预期负载,根据需要进行缩放。
    • 根据过去的经验猜测,然后使用上述选项之一微调。

  2. 我在哪里可以了解到可以对数据库进行的其他更改以提高其性能?
    • 利用Internet上讨论数据库优化的众多资源之一。
    • 在数据库中学习一门正式的课程,学习如何优化性能。
    • 聘请一名临时顾问为你提供建议和/或特定的培训。
    • 聘请一名具有这方面技能的高级DBA,并能培训他人。
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/116706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档