Da li polazna baza sa 2M unosa već postoji ili se sada donosi odluka o tome kako će kompletan sistem da izgleda? Rekao bih da je u pitanju dizajn od nule.
U svakom slučaju odmah na početku bih savetovao protiv toga da se koriste odvojena tabela za bukvalno isti tip podataka jer se kosi sa nekim osnovnim pravilima dobrog dizajna baza a i stvoriće sigurno problema kasnije da ne pominjem da ne vidim nekog preteranog dobitka u performansama ako treba dodati i logiku odabira koja tabela će se koristiti.
Ono što veoma liči na ovo odvajanje podataka a u stvari ima mnogo više smisla primeniti u ovom slučaju jeste particionisanje baze.
Korisni linkovi:
http://dev.mysql.com/doc/refman/5.1/...titioning.html
http://dev.mysql.com/tech-resources/...titioning.html
Poenta cele priče je da kada se upisuju podaci u bazu MySQL automatski na osnovu
PARTITION BY direktiva upisuje podatke u zasebne particije pa se tako recimo kod
SELECT upita automatski već na početku zna koja od particija se pretražuje. Dakle ako se definiše particionisanje po kodu zemlje i od ukupnog broja od 2M zapisa u bazi samo 120 000 zadovoljava uslov u bilo kakvom klasičnom upitu pretraživaće se isključivo particija koja zadovoljva uslov naveden pri particionisanju. Nema potrebe da objašnjavam kolika je razlika u performansama

MySQL ne podržava još uvek sve oblike particionisanja ali verzija 5.1 nudi sasvim pristojan set opcija dovoljan za većinu potreba.