Używaj stołu tak, jak jesteś. MySQL może z łatwością obsługiwać miliardy lub wiersze danych. Z kilkoma ładnymi indeksami, twoja wydajność również powinna być całkiem dobra.
Nie oznacza to, że nie powinieneś dążyć do tego, aby mieć dobry projekt tabeli, ale nie powinieneś też martwić się o obsługę tego, co uważasz, że jest prawdopodobnie dużą ilością danych - podczas gdy w rzeczywistości jest to prawdopodobnie spadek ocean zbiorów danych.
Liczba kolumn naprawdę nie robi zbyt wielkiej różnicy, rozmiar wiersza może wydłużyć czas potrzebny na dostęp do nich z dysku twardego (zgodnie z kilkoma artykułami, które przeczytałem), ale jednocześnie musiałbyś mieć NAPRAWDĘ duży rząd, aby faktycznie zauważyć różnicę między tysiącami zapytań.
Jeśli chodzi o dobrą strukturę, to naprawdę zależy od tego, JAK będziesz jej potrzebował. Jeśli będziesz wykonywać wiele różnych funkcji agregujących, upewnij się, że masz tabelę, która na to pozwoli. Jeśli potrzebujesz tylko kilku konkretnych zapytań, warto utworzyć tabelę raportu, która agreguje dane, powiedzmy raz dziennie.
Edycja:Uwagi na temat aktualnego limitu liczby wierszy:
http://dev.mysql.com/doc /refman/5.1/en/source-configuration-options.html
Silnik pamięci masowej MyISAM obsługuje 2^32 wiersze na tabelę, ale możesz zbudować MySQL z opcją --with-big-tables, aby obsługiwać do 2^64 wierszy na tabelę.
http://dev.mysql.com/doc/refman /5.1/pl/innodb-restrictions.html
Silnik pamięci masowej InnoDB nie wydaje się mieć limitu liczby wierszy, ale ma limit rozmiaru tabeli 64 terabajty. Ile wierszy się do tego pasuje, zależy od rozmiaru każdego wiersza.