Otimizando um simples mysql selecione em uma tabela grande (75M + linhas)
Tenho uma tabela de estatísticas que cresce a uma taxa grande (em torno de 25 milhões de linhas / dia) que eu gostaria de otimizar para seleções, a tabela cabe na memória e o servidor tem muita memória sobressalente (32G, a tabela é 4G) .
Minha consulta simples de visualização completa é:
EXPLAIN select FROM_UNIXTIME(FLOOR(endtime/3600)*3600) as ts,sum(numevent1) as success , sum(numevent2) as failure from stats where endtime > UNIX_TIMESTAMP()-3600*96 group by ts order by ts;
+----+-------------+--------------+------+---------------+------+---------+------+----------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+------+---------------+------+---------+------+----------+----------------------------------------------+
| 1 | SIMPLE | stats | ALL | ts | NULL | NULL | NULL | 78238584 | Using where; Using temporary; Using filesort |
+----+-------------+--------------+------+---------------+------+---------+------+----------+----------------------------------------------+
Stats é uma tabela innodb, existe um índice normal no final do tempo .. Como devo otimizar iss
ota: Eu pretendo adicionar tabelas de roll-up, mas atualmente é com isso que estou preso, e estou pensando se é possível corrigi-lo sem o código de aplicativo adiciona