加载数据本地infile - 最有效的方式/最快?

时间:2013-11-06 10:21:38

标签: php file-io

我想知道哪种方法是使用Load Data Local infile的最有效方法。

我有许多使用此功能的php脚本,每个脚本都会将每个供应商的日期输入我的数据库。这些文件位于我的ftp服务器上,该服务器位于我的数据库所在的单独域中(目前它将从我的本地计算机运行这些脚本,但同样的原则适用)。

因此,例如,其中一个脚本为:

$sql = "
LOAD DATA LOCAL INFILE 'ftp://user:pass@domain.com/feeds/feed1.csv'
etc.........
";

所以,我的问题是,它是否会更有效率,我想我的意思是更快,首先将每个csv下载到本地目录并将其用作上述命令中的引用?

1 个答案:

答案 0 :(得分:0)

对于加载时间,如果您预先加载脚本或即时运行,只要它们只加载一次,它就没什么区别。当然,保留本地副本是有意义的。

但令我困惑的是:您提供的代码段保留csv数据。相反,它(很可能)包含您最有可能包含和评估的php代码。如果您通过不安全的连接从远程加载文件(读取:'ftp server'等),这当然是有效的,但也非常不安全。如果有人在您的服务器上删除包含rm -fR /之类的内容的脚本怎么办?我知道Web服务器没有足够的权限,这只是一个例子。动用你的想象力。至少你应该验证你正在加载什么。如果你有数据而不是你评估的代码,这肯定会更容易

我建议您使用本地csv或更好jsonyaml序列化数据文件,在php之类的内容中实现验证例程,并将sql server与结果。