V první řadě se mi nezdá, že indexování popsaných 100 položek by stroj dokázalo vytížit na 5 minut. To musí být v nepořádku ještě něco jiného.
Ale hlavně je důležité rozmyslet si, nad kterými sloupci vůbec index nasadím. V příspěvku je uvedeno pouze "zapnu indexování tabulky". Jestli to znamená, že je vytvořen index nad všemi sloupci, je tento index v podstatě zbytečný. Jestli je vytvořen nad sloupcem timestamp, není také moc užitečný, protože když pokládám dotaz např. SELECT EXTRACT(YEAR_MONTH FROM timestamp) AS year_month, SUM(in_bytes) FROM data GROUP BY year_month, index se stejně nemůže použít, protože se sloupcem nepracuji přímo, ale přes funkci.
Správné řešení tedy vypadá tak, že se do tabulky přidá ještě sloupec year_month, nad kterým bude jediný index a který se bude počítat už v době vkládání záznamů.
Pokud vám však stačí údaje jako počet položek, jejich součet a průměr po měsících, je lepší primární data vůbec neukládat a jenom si v malé tabulce aktualizovat sledované hodnoty.