MTのMySQLは止め

 MT3.0導入においてDBをMySQLにして構築してみたものの、やはりどうにもリビルドが遅くてかなわない。それがMySQL利用そのものに起因するのか、それともlolipopのMySQL用サーバーが重いからなのかは分からない。一応ググってみてもそういう話題が見つからないのも不思議…どちらの原因にせよ私だけってこたぁ無いと思うのだが。
 何にせよ遅いという現象に変わり無いので、BerkeleyDBに戻すことにした。一口に戻すと言ってもMySQLへの移行のように変換CGIがある訳でも無いので、仕方なく手作業ということに。というか、はっきり言って再度新規に構築し直しに近いです。(^^;)


 私の取った手順は以下の通り。
 1) MTのインストールフォルダ以下を全部ダウンロードしてバックアップ。
 2) テンプレートを全部コピー&ペーストでローカル保存してバックアップ。
 3) エントリーの書き出し機能を利用して、全エントリーをバックアップ。
 4) mt.cfgの修正(MySQL設定部分をコメントアウト、DataSourceの行を有効に)。
 5) dbフォルダ作成。
 6) mt-load.cgiをアップロードして実行。
 7) アカウントやブログの設定を変更。
 8) 各テンプレートをバックアップファイルからコピー&ペーストで更新。
 9) エントリーの読み込み機能を利用してエントリーのリストア。
 10) 再構築。
 という感じ。
 私の場合、テンプレートだけでなく一部スクリプトにも手を入れてる関係もあって、全くの新規構築ではなく、上記のような上書きに近い方法を取りました。
 実際は、これらの作業を既存のフォルダ上で一気にやった訳じゃなく、いったん一時的なフォルダ上で検証して確認できてから、フォルダ名を直して公開、という作業も入ってます。
 で、実際どの位速くなったかというと、現状の約330程度のエントリー数を「すべてを再構築」した時の時間で
  MySQL – 1分38秒
  Berkeley DB – 59秒
 と、この位差がありました。この位だと体感的にもはっきり違います。
 しっかし何でMySQLだとこんなに遅いのか…

コメント

コメント(8)

  1. takato on

    こんにちは、はじめましてtakatoです。
    僕もmovable typeでMySQLを使っていますが、
    MySQLパケット制限の関係でMySQLを辞めようと思ってます。
    そこでぐぐってみたのですが、結構大変そうですね。
    僕の場合、テンプレートしかいじってませんが4つのブログを
    並存させているのでそこはめんどくさそうです。
    戻すかどうかちょっと悩んでいます。
    上の作業手順で 6)7)8)は省略できないんですよね?
    [単純にmt.cfgを戻して、バックアップをリストアする]
    でもどちらにしても、各アーカイブのURLは変わってしまいますね。。。
    PS ぼくもロリポップですが、再構築非常に遅いです
       時間かかかりすぎてエラー出る時もあります。(>_<)

    返信

  2. まにてん on

    こんにちは、takatoさん。
    やっぱりMySQL遅いですか?やはり私だけじゃなかったのかな。
    で、手順の6~8は多分必須です。
    というのも、アカウント情報やテンプレートの内容はDBに格納されるようでして、従ってDBを切り替えるならば再構築が必要になるということです。
    あ、もし知識があれば、PerlとかPHPとかでDBの内容を移すようなプログラムを組んで対処すれば楽かもしれません。
    4つも再構築というのはなかなか面倒そうですが、もしやるなら頑張ってください。(^^;)

    返信

  3. takato on

    まにてんさん
    お返事ありがとうございます。
    そうなんです。4つもブログを移行するのはかなり大変という
    ことで諦めかけていたのですが、↓に逆変換のcgiが置かれて
    いたので、これを拝借してMySQL止めました。サブカテゴリを
    トップカテゴリに戻すだけだったので1時間ぐらいで移行完了
    しました。ご報告です。
    http://as-is.net/blog/archives/000898.html
    PS 再構築の時間ですが、僕も体感的に半分ぐらいになった気がします。

    返信

  4. まにてん on

    にゃんと!そのようなCGIが公開されていたとは。
    私も自分の時に見つけていれば、あんな面倒な思いはせずに済んだろうに…トホホ
    しかしMySQLが重くて使えないというのは、何とも残念なことです。

    返信

  5. 徹底比較! on

    MySQLをやめてもとのBerkeleyDBに戻す

    MySQLをやめてもとのBerkeleyDBに戻すときにcgiを使って簡単に行う方法。

    返信

  6. ヒビアン on

    MovableType 3.2へのアップグレードと、BarkeleyDB→MySQL→SQLite移行メモ。

    MovableTypeを3.2にアップグレードし、データベースをBarkeleyDB→MySQL→SQLiteへと移行しました。その奮闘メモ。

    返信

  7. bizcaz on

    はじめまして。
    bizcaz といいます。
    MT & MySQL でサーフしていたら、こちらに行き着きました。
    ロリポ + MySQL について教えてください。
    わたしもロリポを使用していて、MT3.2 を使っています。最近、SQLite ⇒ MySQL に移行したのですが、再構築にやたら時間がかかっています…それはもう、ちょっとトイレ行く時間があるくらいです。
    この記事を読ませていただきましたが、その後、何か分かったこととかありますか?
    やっぱり、ロリポ + MySQL の組み合わせが良くないのですかね。

    返信

  8. まにてん on

    bizcazさん、こんにちは。
    結局の所、ロリポのMySQLサーバが少々非力だということのようです。
    ちょっと前にこのMySQLサーバを増強するようなアナウンスを見た気もしますが、現状どうかは知りません。
    なので、ロリポでMTをやるならBerkleyDBなりSQLiteなりを利用するのが無難かと思います。
    個人的にはファイル管理も楽になるし、若干速い(気がする)SQLiteの利用をお勧めします。
    MySQLからSQLiteへ戻す具体的な手順は示せませんが、この下のTBリンク先や私のこの後のエントリー「MT3.2+SQLiteへ移行」等を参考にしてみてください。

    返信

takato にコメントする (キャンセル)