我将数据导入到具有大量记录的InnoDB
表中。命令mysqlimport表示已成功导入,如下所示。我正在空表上导入数据。
C:\xampp\mysql\bin>mysqlimport.exe --fields-terminated-by=','
--columns="invoice_id,customername,department,city" --local -u root -p invoice11954 "c:\11954\invoice.txt"
Enter password:
invoice11954.invoice: Records: 1540252 Deleted: 0 Skipped: 0 Warnings: 0
但是当我检查表发票中的记录数时,我只看到1534408
条记录。我已经截断了桌子并一次又一次地重新导入。记录计数总是不匹配,记录的差异并不总是不变。
这与我的配置有关吗?我给出了很高的配置值,但仍然没有运气。
# 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]
有人可以帮我解决这里出了什么问题。
答案 0 :(得分:1)
您如何检查invoices
表中的“记录数”?显然,我们假设您正在执行这样的SQL语句:
SELECT COUNT(*) FROM invoice ;
并且您不依赖于information_schema.tables
中的估计行数来为您提供准确的计数。
在问题中没有足够的信息,以其当前的形式给出您正在观察的行为的答案。正如我在评论中所指出的,目前尚不清楚该表是否有任何独特的约束,无论您是否指定了--replace
或--ignore
选项,因为我们没有看到您正在运行的命令, [mysqlimport]
文件的my.cnf
部分,或者如何在加载后检查表格上的行数。