我使用'load data'命令将~100M行加载到我的sql中。加载数据后,我检查了信息模式,看到该表已填充:
SELECT table_name "Table Name", table_rows "Rows Count", round(((data_length +
index_length)/1024/1024),2) "Table Size (MB)" FROM information_schema.TABLES
WHERE table_schema = "testDB" AND table_name ="TweetPerson";
+-------------+------------+-----------------+
| Table Name | Rows Count | Table Size (MB) |
+-------------+------------+-----------------+
| TweetPerson | 88355921 | 19517.00 |
+-------------+------------+-----------------+
但是当我尝试计算表的行或使用任何select语句时,我得到的行数为0或空集:
select count(*) from TweetPerson;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
我正在使用MySQL 5.6。当我加载数据时,我使用以下命令来加速该过程:
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET SESSION tx_isolation='READ-UNCOMMITTED';
SET sql_log_bin = 0;
SET autocommit = 0;
这可能是什么问题?
由于
更新 在加载数据后,我试图将自动提交设置回1,但它没有改变任何东西。我从头开始重新启动加载,autocommit设置为1并正确加载数据。
我不知道第一次数据加载有什么问题,但我非常怀疑它与自动提交有关。