mysql:5824
From: "Takaharu Matsuzaki" <"Takaharu Matsuzaki" <tmatsu@xxxxxxxxxx>>
Date: Mon, 22 Jul 2002 11:22:13 +0900
Subject: [mysql 05824] 大量データの import について
7月19日にメールしました松崎です。 ブラウザから見るとタイトルが文字化けしてしまった ようなので別のアカウントより再送しておきます。(すみません。) ======== 以下、7月19日のメール内容と同じ ======== いつも非常に有益な情報、とても感謝しております。 始めての投稿となります松崎と申します。 大量データのimportについて質問させて下さい。 現在「MySQL 3.22.32」で以下のようなシェルを用いてDB「DB01」から 「DB02」へテーブル「table01」をコピーしています。 【isam型ファイルへのデータimport用シェル/サーバ1】 #!/bin/bash mysql -e "drop table table01" DB02 mysqldump -q --tab=/home/user01 --fields-terminated-by="\t" --lines-terminat ed-by="\n" DB01 table01 mysql DB02 < /home/user01/table01.sql isamchk --keys-used=0 -rq /usr/local/mysql/var/DB02/table01 mysqlimport DB02 /home/user01/table01.txt isamchk -r -q /usr/local/mysql/var/DB02/table01 mysqladmin flush-tables このシェルは「2時間」程度で完了します。 今度、別サーバでMySQLを稼動させることになり、ついでに「MySQL 3.23.41」にバージョンアップしました。 上記のシェルをmyisam用に変更し実行すると、なぜか「15時間」以上 もかかってしまいます。 ちなみにMyISAM型へロードする際のデータは、isam型の場合と同じ データを使用しています。 【MyISAM型ファイルへのデータimport用シェル/サーバ2】 #!/bin/bash mysql -e "drop table table01" DB02 myisamchk --keys-used=0 -rq /var/lib/mysq/DB02/table01 mysql DB02 < /home/user01/table01.sql mysqlimport --local DB02 /home/user01/table01.txt myisamchk -r -q /var/lib/mysq/DB02/table01 mysqladmin flush-tables 主な環境等は以下の通りです。 【サーバ1】 ・OS:RedHatLinux6.2 ・MySQL:mysql Ver 9.38 Distrib 3.22.32, for pc-linux-gnu (i686) 【サーバ2】 ・OS:RedHatLinux7.2 ・MySQL:mysql Ver 11.15 Distrib 3.23.41, for redhat-linux-gnu (i386) 【ロードデータ】 ・トータルデータサイズ: 2.5Gbyte ・トータルデータ件数 : 26601040 レコード ≪質問内容≫ (1) なるべく早くimportするために「indexストップ」→「import」→「index再 作成」をおこなっているにも関わらず、なぜ「15時時間以上」もかかる のでしょうか? (2) また「indexを --keys-used=0 -rq」でストップした状態でimportしたにも 関わらず、長時間「table01.MYI」のサイズが増減していました。 MySQL3.23では「 --keys-used=0 -rq」を行っても意味がないので しょうか? (3) ちなみに「MySQL3.23」のMySQLのファイルタイプを「isam型」にして importしてみたところindexの作成まで込みで1時30分程度で終了しま した。MyISAMタイプはメリットもあるが、index作成に時間がかかる等 のデメリットがあるのでしょうか? 『備考』 ・「MySQL&mSQL(オライリー)」を参考にして、myisamchk時に「MySQL」 をストップしても結果に変化は見られませんでした。 ・isam型でimportした後に「alter table table01 type=myisam」でMyISAM 型に変更しても、それだけ(alter tableの処理のみ)で15時間かかりました。 長くなってしまい申し訳ありません。 もう二ヶ月ほど悩んでます。(悲) どなたかご意見や解決方法があれば教えて下さい。 よろしくお願いします。