производительность — PHP: Как получить случайную строку в большом файле быстрее?

У меня есть 1 файл TXT с 100 000 строк. Можете ли вы узнать, как получить 1 строку быстрее всего случайно? Большое спасибо !

0

Решение

Самый быстрый способ — создать индекс (простой массив, содержащий позицию в файле каждой новой строки). Затем выберите случайный ключ, найдите позицию, найдите файл в этой позиции и прочитайте строку. Для этого потребуется обновлять индексный файл каждый раз, когда вы его изменяете, но если вы хотите оптимизировать получение данных, то так и есть.

Вы можете продолжить оптимизацию, разбив файл на диапазоны (например, разделив данные на части) или имея несколько представлений файла (например, вы можете иметь файл с инвертированными строками, так что последний будет первым, а если ваше случайное число больше половины элементы, вы читаете из второго файла)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]