The LOAD DATA INFILE statement reads rows from a text file into a
table at a very high speed.
For more information about the efficiency of INSERT versus
LOAD DATA INFILE and speeding up LOAD DATA INFILE,
[Insert speed].

You can also load data files by using the mysqlimport utility; it
operates by sending a LOAD DATA INFILE statement to the server.  The
--local option causes mysqlimport to read data files from the
client host.  You can specify the --compress option to get better
performance over slow networks if the client and server support the
compressed protocol.
See also : [mysqlimport,  , mysqlimport].

If you specify the LOW_PRIORITY keyword, execution of the
LOAD DATA statement is delayed until no other clients are reading
from the table.

If you specify the CONCURRENT keyword with a MyISAM table that
satisfies the condition for concurrent inserts (that is, it contains no free
blocks in the middle),
then other threads can retrieve data from the table while LOAD DATA
is executing. Using this option affects the performance of LOAD DATA
a bit, even if no other thread is using the table at the same time.

If the LOCAL keyword is specified, it is
interpreted with respect to the client end of the connection:


 --- If LOCAL is specified, the file is read by the client program on the
client host and sent to the server.

 --- If LOCAL is not specified, the
file must be located on the server host and is read directly by the server.


LOCAL is available in MySQL 3.22.6 or later.

For security reasons, when reading text files located on the server, the
files must either reside in the database directory or be readable by all.
Also, to use LOAD DATA INFILE on server files, you must have the
FILE privilege.
