MySQL:如何处理定期的大量插入/更新?

标签 mysql insert scheduled-tasks large-data-volumes

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

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

每周 50 x 220 = 11,000 次插入/更新

我的指标表的结构如下:

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

...我基本上会在每个国家插入/更新 50 行不同“类型”。

我想问的是:我这里是不是完全走错了路?将国家/地区设置为列而不是行(220 列...)可能会更好吗?或者也许指标又失去了一些灵 active ?通常如何处理如此大量的插入/更新?

预先感谢您的宝贵时间。

结论:看起来这已经足够清楚了,感谢所有的贡献。

最佳答案

虽然我不知道您的确切应用程序,但这根本不应该有问题。插入和更新不应该是表锁定。我怀疑您的用户是否会注意到。

作为比较,在负载下,我的 mysql 服务器峰值为每秒近 3.5k 查询。

通常您会希望在低使用率期间运行维护脚本。r

关于MySQL:如何处理定期的大量插入/更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353502/

相关文章:

Java Timer vs ExecutorService?

mysql - 使用 PERL 将雅虎金融公司债券数据提取到 mysql

php - UTF-8贯穿始终

php - 如何在codeigniter中通过id更新3个表的现有数据

mysql 重复插入和更新

javascript - 多次插入到一个大字符串中

mysql - 我如何构建 libmySQL?

database - RethinkDB:​​尝试在一次操作中添加记录

python - 导入错误 : No module named pymssql error when run from batch file

spring - 如何从 db 加载 cron 表达式并使用 Spring 重新安排它?