【发布时间】:2012-03-29 14:24:03
【问题描述】:
我有一个大约有 4000 万行的表,我想运行这样的东西:
SELECT country, count(*) FROM `signups`
where `signed_up` > '2012-03-20 00:00:00'
group by country
基本上是在特定日期(通常是上周)之后获取每个国家/地区的注册人数。每天大约有 40 万注册,总共有 4000 万左右。
查询在上周没有运行,我得到一个“MySQL 服务器已消失”...有什么优化方法吗?
【问题讨论】:
-
countries上有哪些索引? -
只有一个索引,主键是signup_id
-
始终使用 EXPLAIN SELECT ... 命令来查看您的数据库将如何回答您的查询。自从您在此字段上搜索以来,signed_up 上的索引也不会受到伤害。
标签: mysql