Esto no es algo que se use todos los días, pero en algún proyecto puedes necesitar /por lo que sea/ procesar un fichero de casi 200 MB que relaciona autores con su producción científica.
https://www.splitcsv.com/ es tu solución.
Y a procesar por lotes, poquito a poco.
Actualización 11/06/2021:
Gracias al simpar Cálix Sierra descubro un comandito MySQL que resuelve esta cuestión de una forma mucho mejor, más flexible, más ágil, más todo:
LOAD DATA LOCAL INFILE
El procedimiento es sencillo:
- Creas una BD MariaDB / MySQL con el mismo numero de campos que tu archivo CSV, teniendo en cuenta lso tipos de datos que te intereresen.
- Subes tu CSV al servidor
- Conectas a MySQL y le das a la mágia, algo como:
LOAD DATA LOCAL INFILE 'tufichero.csv' INTO TABLE tutabla
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(col1, col2, col3, col4, col5...);
En segundos tendrás una tabla con todos tus registros, y a procesar cómodamente con sentancias SQL.
Es autodescriptivo si te suenan estas cosas, pero la doc oficial está aquí: https://dev.mysql.com/doc/refman/5.7/en/load-data.html