I have a data table with 600,000 records that is around 25 megabytes large. It is indexed by a 4 byte key.
Is there a way to find a row in such dataset quickly with PHP without resorting to MySQL?
The website in question is mostly static with minor PHP code and no database dependencies and therefore fast. I would like to add this data without having to use MySQL if possible.
In C++ I would memory map the file and do a binary search in it. Is there a way to do something similar in PHP?
PHP (at least 5.3) should already be optimized to use mmap if it’s available and it is likely advantageous. Therefore, you can use the same strategy you say you would use with C++:
EDIT: actually, it seems to use mmap only in some other circumstances like
file_get_contents. It shouldn’t matter, but you can also tryfile_get_contents.