Svakako jedna tabela, 1M rekorda i nije nesto...Sto se tice index-a, verovatno ces morati userID da ukombinujes sa jos nekom kolonom - recimo sa datumom jer da bi server koristio index on mora da bude dovoljno selektivan. Mislim da od verzije 5.1 MySQL podrzava particionisane tabele, sto je dobro resenje za tabele sa mnogo podataka...Verovatno ce biti tesko particionisati po userID jer pretpostavljam da nemas fiksan broj user-a tj. oni se dodaju sto iziskuje dodavanje novih particija u tabelu...a i ne znam kako bi se stvar ponasala sa toliko particija...mozes particionisati po datumu recimo na mesecne particije (ako ti datum figurira u query-ima).
Nisam siguran da ces sa 1000 tabela x 1000 rekorda imati brzi odziv, jer na tako mali broj rekorda server cesto ode u full scan i ne koristi indexe. Ono sto je bitno je koliko podataka iz neke tabele server drzi u memoriji a za koliko mora da skoci na disk. Sa 1000 razlicitih tabela tesko da ce caching mehanizam raditi dobro, a 1M rekorda lako moze da se digne u memoriju (ili bar veci deo).
"The most likely way for the world to be destroyed, most experts agree, is by
accident. That's where we come in; we're computer professionals. We cause
accidents." - Nathaniel Borenstein