我是SQL的新手,我看到这个问题已被多次询问,但没有一个答案对我有所帮助。所以我希望得到有关我情况的反馈。
我正在尝试加载带有大约150万行和48列的制表符分隔文件。每个字段都用双引号括起来。我的查询运行了一个多小时,我杀了它。这是我做的:
CREATE TABLE mytable (
*48 variable declarations given types varchar, int, or decimal*,
PRIMARY KEY (id)
);
load data local infile 'MyFile.tsv'
into table mytable
fields terminated by '\t'
enclosed by '"'
lines terminated by '\n' IGNORE 1 LINES
(*comma separated list of all 48 variable names in 'mytable'*);
是否有一些我错过的东西正在炸毁这个查询的运行时间?我小心地根据需要声明只有足够空间的变量。因此,如果我有一个最多3位数的整数字段,则将其声明为myfield int(3)
。
答案 0 :(得分:-1)
通过执行以下操作来增加运行时间:
在配置文件中启用
如果您希望这些更改能够在重新启动或重新启动mysql服务器后继续存在,则需要将它们添加到MySQL的/etc/mysql/my.cnf
配置文件中。请注意,它可能位于您安装的其他位置。
在sudo或root模式下使用文本编辑器打开文件,然后添加这些值(如果文件中尚不存在)。如果它们存在,只需取消注释即可。
query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576
查询缓存可以显着提高Web应用程序的速度,尤其是在您的应用程序主要读取时。使用上述方法监控状态,并查看它是如何工作的。
@ref:http://dev.mysql.com/doc/refman/5.7/en/query-cache-configuration.html