逆ジオコーディングのデータベースは、300万件を超えるレコードを持っている。こいつを移動するのは、なかなか時間がかかる。いつもは、phpMyAdminでエクスポートしたファイルをインポート(「ウェブサーバ上のアップロードディレクトリ」から)。
で、昨日、BK1で立ち読みしたMySQLの本でLOAD DATAの方がINSERTより速いようなことが書いてあったので試してみた。
TerminalでMySQLを操作したことなんてなかったので、そいつも実験。
sudo /usr/local/mysql/bin/mysql -p db名
でパスワードを入れると mysql> に変わる。でクエリーを書いていけばいいみたい。
で、まず元のデータベースからファイルをつくる。
SELECT * INTO OUTFILE '/xxx/xxx/file.txt' FROM table名;
file.txtのディレクトリはパーミッションを777にでもしておく。
これはすぐ終了。
で、ロードする。
LOAD DATA INFILE '/xxx/xxx/file.txt' INTO TABLE table名;
途中でターミナルを閉じちゃったので時間はわからなかったけれど2時間ぐらいで無事終了。
これぐらい時間がかかるなら、phpMyAdminのconfigでタイムアウトの時間を長くしとけば、同じぐらいで終わりそうだ。タイムアウト時間がデフォルトでは300秒なので、100回ぐらい繰り返さないと終わらない。
ちょっと記憶に残ってるのが、ずいぶん前にこの300MBぐらいのデータをローカルでインポートして、わりとあっという間に終わらなかったっけということ。なんとなくインデックスがない状態にしとけば、速いのかもしれないとも思うけれど、検証はめんどくさいので保留。インポートがあっと言う間に終わってもインデックス作成で2時間かかるのかもしれないし・・・。
100/181タグ (ブログ)
diary(245) mac(94) にゃん助(93) web(79) Drupal(58) Football(40) PHP(37) module(28) Googlemaps(27) サーバー(23) MySQL(19) ことば(19) nucleus(15) 猫(14) iBlog(12) Foot(11) レンタルサーバー(11) 設定など(11) beat(10) 閃いた!(10) タバコ(9) CSS(8) Google(7) OSX(7) hibi(6) software(6) 死語調査(6) cms(5) javascript(5) mail(5) ブラウザ(5) 写真(5) blog(4) FileMaker(4) Filter(4) map(4) parallels(4) Tool(4) リリース(4) 物欲(4) 自転車(4) 食(4) html(3) ids(3) mouse(3) music(3) PHS(3) rasu(3) rottel(3) safari(3) tally(3) Terminal(3) Unix(3) キッチン(3) スカパー(3) テーマ(3) メール(3) 半島(3) 宣言(3) 扇風機(3) 映画(3) 本(3) bookmark(2) favicon(2) fx(2) iPhoto(2) MacBook(2) SQL(2) test(2) うどん(2) たばこ(2) アイデアみたいなもの(2) テレビ(2) デジカメ(2) ドメイン(2) フットサル(2) 喪失感(2) 小説(2) 政治(2) 料理(2) 検索(2) 次のサイト(2) 調整池(2) 閃いた!(2) 閃き(2) AirEDGE(1) ajax(1) applescript(1) bind(1) Cookie(1) cron(1) DNS(1) F1(1) Firefox(1) flickr(1) Googlmaps(1) HD(1) htaccess(1) icon(1) iTunes(1)
ソート▼
コメント
オンライン (1)
+1
Copyright (c) 1997-2007 karasu.net ver. 1.58

ターミナルからこんなんでもいいみたい。
mysqldumpでバックアップしたファイルの読み込みから。
時間はたいして変わらないかも。mysqldump -optで書き出したファイルなら、quickがついてるから少し速いかも。