Właśnie doszedłem do takiego etapu w tworzeniu frameworka, że bez pomocy z zewnątrz się nie obejdzie

Napisałem klasę do obsługi danych pobieranych z zewnętrznego źródła danych (baza danych, xml, plik tekstowy, itd). Mam jednak problem - co będzie bardziej wydajne.
Dla przykładu:
Mam w tabeli 10 000 wierszy. By móc zastosować sortowanie lub stronicoanie na stronie muszę "przemielić" całą tabelę, co znacznie obciąża serwer. Z drugiej strony, jeśli wyciągnę wszystko z bazy i zapiszę do tablicy, wówczas będzie to zajmować mnóstwo zasobów. Ponadto sortowanie tak dużej tablicy, też zajmie sporo czasu.
Jak to ugryźć? Co jest bardziej wydajne - sortowanie po stronie bazy danych, czy tablicy w php? Stronicowanie przy użyciu "limit" (MySQL, PostgreSQL) czy też wyciąganie danych z ogromnej tablicy?