У меня есть 1 файл txt со 100 000 строк. Можете ли вы узнать, как можно получить 1 строку быстрее всего? Большое спасибо !
Самый быстрый способ - создать индекс (простой массив, содержащий позицию в файле каждой новой строки). Затем выберите случайный ключ, получите позицию, fseek файл в эту позицию и прочитайте строку. Это потребует обновления индексного файла в любое время, когда вы измените файл, но если вы хотите оптимизировать извлечение данных, это так.
Вы можете еще больше оптимизировать, разделив файл в диапазонах (например, очертить данные) или имея несколько представлений файла (например, вы можете иметь файл с перевернутыми линиями, поэтому последний должен быть первым, а если ваше случайное число больше половины элементы, которые вы читаете из второго файла)
$line = file($filename)[rand(0,100000)];
может быть один тест, который вы запускаете