go to bug id or search bugs for
Hey. So it's not uncommon for a website to cache large database record sets in
redis/memcache/etc and pull it out, filter it down, and present the remainder.
However using an array of arrays has memory and speed disadvantages due to
allocating more array buckets than needed and storing column names in every key
of every row.
I'm requesting an SPL data structure that would reduce memory and increase
access time on large record sets.
A recordset object could be initiated with an array of column names and optional
row count. Records could be added/removed but each row would be an arrayobject-
like object reflecting the column array. However this object could store the
data as a simple array and reference the recordset for a column's location in
Initiating recordsets/records with counts gives the advantage of only allocating
as much array buckets as needed. And only storing the column names in the
recordset object removes the need to store and hash each column name on each
The memory savings on larger sets should be significant as well as a nice speed
If this was adopted, making it available as a native structure in the *sql
drivers would reduce the overhead on actually getting it out of the database to
begin with. And a nice serialized format would reduce it's memory footprint in
memcache/redis/etc as well.
This is my first submission for a feature request, while I've been a php dev for
Add a Patch
Add a Pull Request
Something like this has a much better chance of landing if you write an implementation for it.