generalnie sama ilość danych nie wpływa na wydajność o ile system nie korzysta ze wszystkich danych (np. systemy sprzedażowe, magazynowe, itp. mają ogromny narzut danych archiwalnych, które "przydają się" w większości przypadków jedynie do raportów). Najważniejsze są dwie rzeczy - indeksy i jakość zapytań. O indeksy musisz zadbać sam, mając na uwadze fakt, że wraz ze wzrostem ilości danych indeks, który jeszcze 1M rekordów temu działał dobrze, teraz może nie wystarczać. Co do drugiego to jeśli używasz jakiegoś ORMa to warto się przyjrzeć generowanym zapytaniom, które są bardziej skomplikowane niż select id, imie, nazwisko from uzytkownicy
bo może się okazać, że ORM wyprodukował takiego potworka, który po prostu nie ma prawa być szybki. Do tego dochodzą takie mechanizmy jak partycjonowanie danych, widoki zmaterializowane, denormalizacja bazy. Jeśli baza jest naprawdę duża to można się pokusić o rozbicie jej na dwie - jedna zawierająca aktualne dane + dane z np. ostatnich 6 miesięcy oraz druga, która będzie zawierała wszystkie dane (sam proces synchronizacji/czyszczenia można zrealizować na wiele sposobów). Można też zamiast drugiej bazy postawić pseudo hurtownię danych (dane historyczne wymagane przez prawo (np. do wydruku faktur sprzed 5 lat) + dane analityczne.
Temat jest dość szeroki i bez jakichś konkretów ciężko coś powiedzieć.
BTW znam system (ERP dla małych/średnich firm), który działa po 15-20 lat i ma bazy (Oracle) po kilkadziesiąt/kilkaset GB (w zależności od klienta), nigdy nie były jakoś specjalnie optymalizowane (jedynie pojedyncze zapytania, które działały naprawdę wolno), korzysta z tego i po 100-150 stanowisk jednocześnie i daje radę. Serwery są średnio wymieniane co 4-5 lat i aktualnie najczęściej są to jakieś 2 procesorowe maszyny z 32-64 GB RAM i dyskami talerzowymi w RAIDzie (jeden klient ma SSD). Więc jeśli nie przewidujesz przyrostu danych na poziomie 1TB na rok i ruchu na poziomie 1000 jednocześnie pracujących stanowisk to nie masz się co przejmować na zapas. Oczywiście nie oznacza to, że można wszystko upchnąć do jednej tabeli bez indeksów :).
Jeśli ktoś miał do czynienia z jakimś starszym systemem, gdzie pierwsze wersje były jeszcze w Clipperze potem Harborze, Delphi, C# a gdzie dodatkowo przewija się PHP oraz każda nowa funkcjonalność coś zmieniała w bazie to wie jak takie coś potrafi wyglądać.