Böyle bölmek mantıklı değil. Öncelikle mysqlden kurtulman gerek. Mysql yerine MariaDB 10 kur. Sonra Tokudb diye bi eklentisi var onun onu aktifleştir. Ve tablolarının yapısını MYISAM yada InnoDB olanları TokuDB ye çevir.
Where cümlesinde kullandığın alanlara index oluştur. 20 Milyon kayıt çeker tablo.
Daha olmadı hareket tablosunu partition table ile böle. Partition table tek tablo gibi görünür. Fakat 20 dosya bölersin. tablo %5000 hızlanır.
Önemli olan bir şey daha joinli sorgularda ve where deki alanlara index açmak.
Örnek A tablosunda where urunid=5 and renk=2 gibi bir sorgun var ise; buna özgü index açıp urunid ve renk kolonlarını eklersen sorgu süresi %800 düşer.
Teşekkür ederim cevabınız için, oldukça detaylı şekilde açıklamışsınız sizin ve üstteki arkadaşın yaptığı yorumlardan yola çıkarak kafamda ne yapacağım iyice şekillendi...
Bu arada Mysql dediğime bakmayın bende MariaDB kurucam zaten ama tokudb eklentisinden haberim yoktu onu iyice bir araştırıcam... Bir de partition table ile böl 20 dosyaya bölersin demişsiniz ya burada disk i/o etkisi olur mu?
Edit:
Tokudb için deminden beri biraz araştırma yapıyorum da
"The TokuDB storage engine is for use in high-performance and write-intensive environments, offering increased compression and better performance." demişler ancak bu sistemde yazma olayı o kadar çok çok çok aktif olan bir durum değil, sizce bu gerçekten gerekli mi? Bunu sorma sebebim bu sistemin ayrıca mysql replication ile ayrı bir sunucuya yedeklemesi var ve o sunucu da biraz eski olduğu için mariadb kurulu değil sadece ana sunucunun çökmesi durumunda kullanıldığı için o sunucuda güncelleme yapmakla da esasında uğraşmak istemiyorum onun için merak ettim, eğer mutlaka kur sadece yazmada değil okumada da çok faydasını göreceksin derseniz diğer sunucuyu da toptan silip sıfırdan temiz bir şekilde kurucam...