MySQL: mysqlimport 中缺少一些记录
MySQL: Missing some records in mysqlimport
我正在将包含大量记录的数据导入 InnoDB
table。命令 mysqlimport 表示已成功导入,如下所示。我在一个空 table.
上导入数据
C:\xampp\mysql\bin>mysqlimport.exe --fields-terminated-by=','
--columns="invoice_id,customername,department,city" --local -u root -p invoice11954 "c:954\invoice.txt"
Enter password:
invoice11954.invoice: Records: 1540252 Deleted: 0 Skipped: 0 Warnings: 0
但是当我检查 table 发票中的记录数时,我只看到 1534408
条记录。我截断了 table 并一次又一次地重新导入。记录计数总是不匹配,记录的差异并不总是恒定的。
是不是跟我的配置有关?我为配置赋予了很高的价值,但仍然没有运气。
# The MySQL server
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql"
tmpdir = "C:/xampp/tmp"
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 32M
max_allowed_packet = 32M
sort_buffer_size = 1024K
net_buffer_length = 16K
read_buffer_size = 512K
read_rnd_buffer_size = 1024K
myisam_sort_buffer_size = 16M
log_error = "mysql_error.log"
[mysqldump]
quick
max_allowed_packet = 128M
我的配置没有这个部分[mysqlimport]
谁能帮我看看这里出了什么问题。
您如何检查 invoices
table 中的 "count of records"?显然,我们假设您正在执行这样的 SQL 语句:
SELECT COUNT(*) FROM invoice ;
并且您不依赖 information_schema.tables
中的估计行数来为您提供精确计数。
问题的当前形式中没有足够的信息来为您观察到的行为提供答案。正如我在评论中指出的那样,尚不清楚 table 是否有任何独特的约束,是否指定了 --replace
或 --ignore
选项,因为我们没有看到命令您是 运行,my.cnf
文件的 [mysqlimport]
部分,或者您如何在 table 加载后检查行数。
我正在将包含大量记录的数据导入 InnoDB
table。命令 mysqlimport 表示已成功导入,如下所示。我在一个空 table.
C:\xampp\mysql\bin>mysqlimport.exe --fields-terminated-by=','
--columns="invoice_id,customername,department,city" --local -u root -p invoice11954 "c:954\invoice.txt"
Enter password:
invoice11954.invoice: Records: 1540252 Deleted: 0 Skipped: 0 Warnings: 0
但是当我检查 table 发票中的记录数时,我只看到 1534408
条记录。我截断了 table 并一次又一次地重新导入。记录计数总是不匹配,记录的差异并不总是恒定的。
是不是跟我的配置有关?我为配置赋予了很高的价值,但仍然没有运气。
# The MySQL server
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql"
tmpdir = "C:/xampp/tmp"
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 32M
max_allowed_packet = 32M
sort_buffer_size = 1024K
net_buffer_length = 16K
read_buffer_size = 512K
read_rnd_buffer_size = 1024K
myisam_sort_buffer_size = 16M
log_error = "mysql_error.log"
[mysqldump]
quick
max_allowed_packet = 128M
我的配置没有这个部分[mysqlimport]
谁能帮我看看这里出了什么问题。
您如何检查 invoices
table 中的 "count of records"?显然,我们假设您正在执行这样的 SQL 语句:
SELECT COUNT(*) FROM invoice ;
并且您不依赖 information_schema.tables
中的估计行数来为您提供精确计数。
问题的当前形式中没有足够的信息来为您观察到的行为提供答案。正如我在评论中指出的那样,尚不清楚 table 是否有任何独特的约束,是否指定了 --replace
或 --ignore
选项,因为我们没有看到命令您是 运行,my.cnf
文件的 [mysqlimport]
部分,或者您如何在 table 加载后检查行数。