Ваш a) на вопрос уже отвечали несколько раз, но b) еще не решен:
Мне не нужны все записи, я имею в виду,
Есть некоторые условия, которые мы
можно использовать, например, если 3-й CSV
содержание столбца имеет «XXXX» и 4-й
столбец имеет «999». Могу ли я использовать эти
условия для улучшения чтения
процесс
Нет. Как вы узнаете, содержит ли 3-й столбец CSV «XXXX» или 4-й «999», не читая сначала строку? (DBD :: CSV позволяет скрыть это за предложением SQL WHILE, но, поскольку CSV - это неиндексированные данные, ему все равно нужно читать каждую строку, чтобы определить, какие условия соответствуют, а какие нет.)
Практически единственный способ использования содержимого строки, позволяющей пропустить чтение частей файла, - это если он содержит информацию, сообщающую вам: 1) «пропустить раздел, следующий за этой строкой» и 2) «продолжить чтение с байта» смещение nnn ".