2016-04-01 6 views
0

3百万レコードのファイルをロードするのに数時間かかり、各カラムはIDと名前の2つのフィールドで構成されます。遅さは他のテーブルとの関係と関係がありますか?なぜmysqlテーブルにデータをロードするのが遅い

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 |  | 
+---------------+------------+------+-----+---------+-------+ 

2つの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) 
+0

この問題に関するご意見・ご感想はありますか? – user697911

答えて

0

それが行をロードするように、それはFOREIGN KEYsをチェックしています。これは、他の2つのテーブルを調べることを意味します。

  • 適切なインデックスはありますか?
  • 列は同じデータ型ですか?
  • これらのインデックスはどれくらい大きく、innodb_buffer_pool_sizeと比較していますか?
関連する問題