asıl sorun bütün verilerin tek tabloda tutulması, yani veritabanı yapısı 10 milyon verinin 1 tabloda tutulması bilmiyorum ama yani ben olsam parçalarım o kadar veriyi okutmam. ölçekleme her zaman gerekli.

ama sitenin nasıl çalıştığını bilmediğim için bir şey söylemem. yani 2 tabloya ayrılabilir ilk önce verilerin giriş tarihine göre ne zaman kayıt olduğu tutulur.

Sonra kayıt tarihine göre gerekli tabloda veri aranır.Bu yöntem gerekli veriyi 10 milyon değil 1 milyon veri arasında arayacağı için çok daha hızlı çalışacaktır. yukarıda dediğim gibi ölçekleme.
Başka bir yöntem ise donanım ekleme sunucunuza alacağınız ekstra donanım mutlaka işlemleri hızlandıracaktır ki kısa kod her zaman en hızlı değildir. kodları kısaltmak için harcayacağınız paranın yarısını donanıma harcarsanız daha fazla performans alabilirsiniz.

Diğer bir yöntem ise , verileri sabit bir dosya olarak tutma, mysql sorgusu yerine dosya açıp onun içindeki verileri okutma. Çok fazla performans fark etmese bile genede hızlandıracaktır. CPU kullanımını azaltacaktır.