У меня есть 1 файл txt со 100 000 строк. Можете ли вы узнать, как можно получить 1 строку быстрее всего? Большое спасибо !PHP: Как получить случайную строку в большом файле быстрее всего?
0
A
ответ
1
Самый быстрый способ - создать индекс (простой массив, содержащий позицию в файле каждой новой строки). Затем выберите случайный ключ, получите позицию, fseek файл в эту позицию и прочитайте строку. Это потребует обновления индексного файла в любое время, когда вы измените файл, но если вы хотите оптимизировать извлечение данных, так оно и есть.
Вы можете оптимизировать дальнейшую работу путем разделения файла на диапазоны (например, наложения данных) или с несколькими представлениями файла (например, вы можете иметь файл с перевернутыми линиями, чтобы последний был первым, а если ваше случайное число больше чем половина элементов, вы читаете из второго файла)
Смежные вопросы
- 1. Заменить определенную строку в большом файле (PHP)
- 2. Как получить случайную строку юникода
- 3. Создайте случайную строку PHP
- 4. найти строку в очень большом одиночном файле
- 5. Получите случайную строку в txt-файле. Coldfusion
- 6. строка заменить в большом файле с php
- 7. Как получить 1 случайную строку из MySQL
- 8. Как сопоставить эту случайную строку в PHP?
- 9. Как получить случайную строку в CakePHP 3.0?
- 10. Хотите добавить случайную строку в строку идентификатора в файле fasta
- 11. Как в Json.NET получить несколько значений в большом файле как можно быстрее?
- 12. PHP - exec awk или fread быстрее для чтения столбца в очень большом файле
- 13. Получить случайную строку из массива
- 14. Получить случайную строку с LINQtoSQL
- 15. поиск 4-5 байтов в большом файле
- 16. Как получить случайную строку из списка
- 17. Как получить случайную строку из базы данных?
- 18. Как получить случайную строку из данных ядра?
- 19. Как получить случайную строку из массива строк?
- 20. Robotframework: Как прочитать случайную строку в файле csv?
- 21. Как получить случайную строку для текущего дня?
- 22. Как найти текст в большом файле с помощью PHP?
- 23. Как я могу напечатать последнюю строку в большом текстовом файле?
- 24. Как получить строку из всего
- 25. Как сгенерировать случайную строку
- 26. установить случайную строку для переменной в PHP
- 27. Найти дубликаты в большом файле
- 28. , который быстрее найти случайную строку: случайный порядок строк или отсортированный?
- 29. PHP - получить случайную строку из файла с окончанием строки
- 30. PHP - Как заменить строку в очень большом количестве файлов?
Почему вы не сравниваете некоторые идеи, которые у вас есть. '$ line = file ($ filename) [rand (0,100000)];' может быть одним проверьте, запускаете ли вы –
. Вам нужно будет зациклиться, чтобы найти количество строк. См. Этот ответ http://stackoverflow.com/a/20537130/1281385 – exussum
Предложение DannyHearnah будет быстрее, но используйте больше памяти. exussums будут использовать почти без памяти, но будут медленнее. – Flosculus