- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个很大的 .csv (300krows) 文件,称之为 medium.csv,我正试图将其导入到 MySQL 表中。当我在 medium.csv 上执行导入命令时,我在 mysql workbench 中得到反馈“0 行受影响”,没有警告,并且表不受影响。
在尝试排除故障时,我开始研究 csv 的迷你版本,我通过在 excel 中打开 medium.csv 创建它,然后将前 5 行剪切并粘贴到一个新文件 tiny.csv 中。效果很好:
DROP TABLE IF EXISTS USER_DATA;
CREATE TABLE USER_DATA (UID INT, INSTALL_DATE DATE, PLATFORM_TYPE VARCHAR(10), COUNTRY_TYPE VARCHAR(11));
LOAD DATA LOCAL INFILE 'E:\\Heather Data\\H Docs\\test\\tiny.csv'
into table USER_DATA
fields terminated by ',' enclosed by '"'
lines terminated by '\r\n'
ignore 1 lines
(uid,
@install_date,
platform_type,
country_type)
set
install_date = str_to_date(@install_date, '%d/%m/%Y');
当我在同一个文件夹中的 medium.csv 上运行它时,处理时间用完了,但没有任何反应,没有警告,目标表不受影响。
你能给我一些关于如何排除故障的提示吗?我真的很困惑为什么小文件有效而中等文件无效。
列数据类型错误或 medium.csv 文件格式是否会导致此行为?
如果我无法解决此方法的问题,是否可以使用其他导入方法?
感谢您提供的任何建议,
希瑟
最佳答案
最好运行以下命令来查看系统上事件的超时时间。
SELECT @@global.wait_timeout,
@@global.interactive_timeout,
@@session.wait_timeout,
@@session.interactive_timeout;
如果它们设置得太低,例如 60(秒),那么在该时间段之后 mysql 将认为该操作花费的时间太长并终止它。因此,如果您在更新或加载语句中间,这本身就是一个事务,它将失败并且什么也不会发生(因为它是一个事务)。
在像 GoDaddy 这样的托管环境中,您的选择是减少任何一批的大小,因为您无法更改服务器配置。
在您作为 root 控制的系统上,可以对服务器环境进行更改以增加 mysql 允许完成长时间运行的查询的时间量。
选项
一个。 全局级别 表示所有新连接都继承超时值可以对/etc/my.cnf 进行更改
wait_timeout = 600
interactive_timeout = 600
这些是 10 分钟的值,只有在 mysql 重新启动后才会生效。
可以在不重启的情况下执行该编辑,但现在通过执行以下操作使其生效:
mysql -uroot -p -e"SET GLOBAL wait_timeout=600; SET GLOBAL interactive_timeout=600;"
或
B. 连接级调整在断开连接时消失。通常有利于进行更改和取消更改包装时间冗长的例程。
set @@wait_timeout=1000 -- session 等待超时的改变
在连接结束时,如果 session wait_timeout 被修改,则忘记它,并且值在重新连接时默认返回到全局。
关于mysql - csv 导入适用于微小的测试文件,不适用于实际文件,没有错误,mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428809/
我是一名优秀的程序员,十分优秀!