关于性能:PHP:如何最快地获取大文件中的随机行?

PHP: How to get random line in big file fastest?

我有1个文件txt与100 000行。 你能知道如何随机获得最快1行吗? 非常感谢你 !


最快的方法是构建索引(包含每个新行文件中位置的简单数组)。 然后选择随机键,获取位置,将文件fseek到该位置,然后读取该行。 这将需要在您更改文件时更新索引文件,但如果您想优化检索数据,那就是这样。

您可以通过在范围中拆分文件(例如,分片数据)或者对文件进行多次表示来进一步优化(例如,您可以将文件的行反转为最后一个,如果您的随机数大于 元素,你从第二个文件中读取)