【发布时间】:2019-07-18 06:20:39
【问题描述】:
我想在我的插件软件中使用 LOAD DATA INFILE 来显着加快 MySQL 导入过程。我听说一些共享主机禁用了这个(很酷的)功能。这是正确的吗?如果是,他们为什么这样做,是否有可能以某种方式效仿?我的软件旨在在共享主机上成功运行。
【问题讨论】:
标签: mysql database load hosting
我想在我的插件软件中使用 LOAD DATA INFILE 来显着加快 MySQL 导入过程。我听说一些共享主机禁用了这个(很酷的)功能。这是正确的吗?如果是,他们为什么这样做,是否有可能以某种方式效仿?我的软件旨在在共享主机上成功运行。
【问题讨论】:
标签: mysql database load hosting
由于LOAD DATA INFILE 需要特殊权限,因此大多数共享主机提供商不提供这些权限:
非
LOCAL加载操作读取位于服务器上的文本文件。为了 出于安全原因,此类操作需要您拥有FILE特权。请参阅第 6.2.1 节,“MySQL 提供的权限”。还, 非LOCAL加载操作以secure_file_priv系统为准 变量设置。如果变量值是一个非空目录名, 要加载的文件必须位于该目录中。如果 变量值为空(这是不安全的),文件只需 服务器可读。使用
LOCAL比让服务器访问文件要慢一些 直接,因为文件内容必须通过连接发送 由客户端到服务器。另一方面,您不需要FILE加载本地文件的权限。
MySQL 文档有一个section dedicated to optimizing INSERT,它提示了加快插入操作。
【讨论】: