Ho letto l'articolo. In realtà non raggiunge lo scopo perchè la mia necessità è di leggere da un file di testo byte per byte, in modo da crearmi dei campi e scrivere il risultato in una tabella. Non posso importare l'intera riga come unico campo.Originariamente inviato da ntd
Io riproporrei l'uso di LOAD DATA INFILE ...: l'uso dell'INSERT a questi livelli è molto inefficiente.
Il tuo file da importare è già testo: si tratta di convertirlo nel formato richiesto, usando PHP o PERL o un filtro specializzato in C se la velocità è così critica, e darlo in pasto a LOAD DATA INFILE...
Inoltre il file di testo è privo di delimitazioni tra i campi ( ho visto la sintassi dove dice:
[FIELDS [TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char'] ). Manca l'opzione da posizione a posizione
La gestione che devo fare è quella di una lettura posizionale (esempio da byte 1 a 5 trovo il campo Pippo, da 6 a 15 il campo Pluto ecc.) e trascrivere Pippo e Pluto sulla nuova tabella).
Fino ad ora faccio tutto leggendo il file di testo da un unico campo con la "substr" di PHP e successivamente trascrivo il risultato nella nuova tabella con "INSERT INTO". Ma è proprio questo comando che rallenta e proprio per questo pensavo esistesse qualche alternativa.
Grazie e scusa se sono stato un po' confusionario.