gpt4 book ai didi

mysql - 为什么将数据加载到mysql表中这么慢

转载 作者:行者123 更新时间:2023-11-29 21:11:03 28 4
gpt4 key购买 nike

加载一个包含 300 万条记录的文件需要几个小时,并且每列仅包含 ID 和 Name 两个字段。慢和其他表的关系有关系吗?我加载的数据表是一个多对多关系的交集表:

MariaDB [wordDS]> describe Category_Term;
+---------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------+------+-----+---------+-------+
| categories_id | bigint(20) | NO | PRI | NULL | |
| terms_id | bigint(20) | NO | PRI | NULL | |
+---------------+------------+------+-----+---------+-------+

这两个 ID 只是父表“类别”和“术语”主键的外键。当我加载主表时,它看起来要快得多。您是否认为由于国外引用而导致加载变慢?或者它与此无关。

这是更多信息,希望对您有所帮助。

MariaDB [wordDS]> show processlist;
+----+----------+-----------+------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+----------+-----------+------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
| 3 | ling | localhost | wordDS | Query | 0 | init | show processlist | 0.000 |
| 9 | ling | localhost | wordDS | Query | 2564 | reading file | LOAD DATA LOCAL INFILE 'C_T01.txt' INTO TABLE Category_Term FIELDS TERMINATED BY '\t' LINES TERMINA | 0.000 |
+----+----------+-----------+------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
2 rows in set (0.00 sec)

最佳答案

它在加载行时检查FOREIGN KEY。这意味着查看其他两个表。

  • 他们有合适的索引吗?
  • 这些列的数据类型相同吗?
  • innodb_buffer_pool_size 相比,这些索引有多大?

关于mysql - 为什么将数据加载到mysql表中这么慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36366337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com