代码之家  ›  专栏  ›  技术社区  ›  Tom

MySQL:如何处理常规的大容量插入/更新?

  •  0
  • Tom  · 技术社区  · 14 年前

    我有一个表,在这里我跟踪关于站点使用的各种统计信息。我计划每周使用这些统计数据和其他表中的信息来计算用于多个报表的各种关键指标。这是为了避免每次访问报表时都计算复杂数据。这些指标将存储在一个称为“指标”的单独表中。

    220个国家大约有50个指标(即每个国家分别有一套50个指标)。考虑到这些数字是每周计算的,我得到令人难以置信的数字:

    每周50 x 220=11000次插入/更新

    我的指标表的结构如下:

    id PK | type (TINYINT) | country_id (TINYINT) | year | week | value
    

    …在这里,我将基本上插入/更新每个国家50行不同的“类型”。

    我想问的是:我是不是走错了路?我可以把国家设置为列而不是行(220列…)吗?或者也许指标会失去一些灵活性?如何处理如此大量的插入/更新?

    提前谢谢你的时间。

    结论: 看来这已经很清楚了,谢谢大家的贡献。

    1 回复  |  直到 14 年前
        1
  •  1
  •   jasonbar    14 年前

    虽然我不知道你的确切应用程序,但这一点也不成问题。插入和更新不应该是表锁定。我怀疑你的用户会注意到。

    相比之下,在负载不足的情况下,mysql服务器的峰值接近3.5K次查询/秒。

    通常情况下,您希望在低使用率期间运行维护脚本。