Usa un tavolo come sei. MySQL può gestire facilmente miliardi o righe di dati. Con alcuni buoni indici anche le tue prestazioni dovrebbero essere abbastanza buone.
Questo non vuol dire che non dovresti cercare di assicurarti di avere un buon design della tabella, ma non dovresti nemmeno preoccuparti di gestire quelli che pensi siano probabilmente carichi di dati - quando in realtà è probabile che oceano di set di dati.
Il numero di colonne in realtà non fa TROPPO differenza, la dimensione della riga può aumentare il tempo impiegato da un disco rigido per accedervi (secondo alcuni articoli che ho letto) ma allo stesso tempo dovresti avere un DAVVERO grande fila per notare effettivamente la differenza tra migliaia di query.
Per quanto riguarda una buona struttura, dipende davvero da COME dovrai usarla. Se eseguirai molte diverse funzioni aggregate, assicurati di avere una tabella che lo consenta. Se hai bisogno solo di alcune query specifiche, potrebbe essere utile creare una tabella specifica del rapporto che aggreghi i dati, diciamo una volta al giorno.
Modifica:note sul limite effettivo al numero di righe:
http://dev.mysql.com/doc /refman/5.1/en/opzioni-configurazione-sorgente.html
Il motore di archiviazione MyISAM supporta 2^32 righe per tabella, ma puoi creare MySQL con l'opzione --with-big-tables per far sì che supporti fino a 2^64 righe per tabella.
http://dev.mysql.com/doc/refman /5.1/en/innodb-restrictions.html
Il motore di archiviazione InnoDB non sembra avere un limite al numero di righe, ma ha un limite alla dimensione della tabella di 64 terrabyte. Quante righe si adattano a questo dipende dalle dimensioni di ciascuna riga.