Det vanliga svaret är:gör din datasökning direkt i arrayen PDOStatement::fetchAll
... Men det är FEL OM frågan hämtar mycket data (!).
Det finns två riktiga lösningar,
1) om databasen tillåter använd PDO::FETCH_ORI_ABS
eller PDO::FETCH_ORI_REL
,exempel,
$result = $sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 973);
(EDIT) Men, som kommenterat av @ChoiZ, har en PDO-MySQL-begränsning :"MySQL stöder inte markörer " (utanför lagrade program) "och drivrutinen kan inte emulera dem åt dig"... Försök senare eller med MySQL:s gafflar, som MariaDB.
2) använd databaslösningen (en sorts paginering). Exempel:
SELECT a, b FROM table LIMIT 1, 973