【发布时间】:2012-10-07 04:14:03
【问题描述】:
我想显示一张图表,显示过去 30 天内一个表有多少条记录。我要做一个 rake 任务,我每天都会从一个 cron 作业中运行。
我刚刚做了一个测试,我发现了一个奇怪的“问题”。 我在 Rails 控制台中运行了这段代码:
SeenEpisode.count
#=> (57135.2ms) SELECT COUNT(*) FROM `seen_episodes`
然后我在 MySQL 控制台中对此进行了测试:
use my_database;
SELECT COUNT(*) FROM seen_episodes;
1 row in set (3.94 sec)
此表有 2100 万条记录。
我在生产服务器上运行了两个测试,以获得真实的性能数据。
其他大约 50 万条记录的表,在 Rails 控制台中需要 80-300 毫秒。
为什么在 Rails 中计算(使用相同的查询)21m 大表比在 MySQL 控制台中花费的时间要长得多?
【问题讨论】:
标签: mysql ruby-on-rails-3 performance