小编Ste*_*n V的帖子

如何提高对 2000 万+ 行表的查询速度?

我有一个查询,用于获取某些 IP 地址的互联网流量统计信息。

有单独的 IP 地址字段hosts和称为 的 IP 块assignments。数据每隔 5 分钟存储一次。

查询结果按时间列分组,并且使用这 5 分钟间隔内和外的总 SUM 绘制图形。

该表被调用traffic并包含(在月底)大约 2100 万条记录。

SHOW CREATE table traffic:
CREATE TABLE `traffic` (
  `type` enum('v4_assignment','v4_host','v6_subnet','v6_assignment','v6_host') NOT NULL,
  `type_id` int(11) unsigned NOT NULL,
  `time` int(32) unsigned NOT NULL,
  `bytesin` bigint(20) unsigned NOT NULL default '0',
  `bytesout` bigint(20) unsigned NOT NULL default '0',
  KEY `basic_select` (`type_id`,`time`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
SELECT traffic.time, SUM(traffic.bytesin), SUM(traffic.bytesout) FROM traffic 
WHERE (
    ( traffic.type = 'v4_assignment' …
Run Code Online (Sandbox Code Playgroud)

mysql performance index index-tuning query-performance

8
推荐指数
1
解决办法
2万
查看次数