[前][次][番号順一覧][スレッド一覧]

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時間かかりました。

長くなってしまい申し訳ありません。
もう二ヶ月ほど悩んでます。(悲)
どなたかご意見や解決方法があれば教えて下さい。
よろしくお願いします。




[前][次][番号順一覧][スレッド一覧]