【WordPress】WordPress2.9へアップグレード時にトラブル【MySQL】

どうも。今日も休日出勤なまきまきです。

某会社の某システムを日本語版→英語版やら中国語版→英語版を作っておりました。

中国語なんかわかんね!英語もほとんどわかんね!

Google先生やExcite先生頼りなわけですが、分からない人でも分かるくらい翻訳の品質がひどくてワラタ。

PNG(画像ファイルの拡張子)が中国語でパプアニューギニアって翻訳されてたのはクソワラタ。

今日はバグ対応です。

そんなわけで、昨日私の誕生日にWordPressの2.9がリリースされたわけですが・・・

アップグレードできねーよ!

自動アップグレード

完了しました→管理画面→データベースをアップグレードしてください・・・→応答なし

手動アップグレード

ファイルアップ→管理画面→データベースをアップグレード・・・→完了しました→データベースをアップグレード・・・→完了しました→データベースをアップグレード・・・無限ループ。

で、原因はワードプレスのwp_optionsテーブルにゴミが溜まりまくってたのが原因だったみたい。

というか、たしかoption_nameっていうカラムが主キーに変わったんだよね。

PRIMARY KEYって事はUNIQUE制約がつく。

と思ったら、今確認したらインデックス+ユニーク制約だけになってるなぁ。

まぁいっか。

そんなわけなんだけど、option_nameが同じレコードが大量に作られてたわけで。

ユニーク制約が通らず、うまくトランザクションが走らなかったのか、パフォーマンスが落ちてタイムアウトしてたのかは不明。

foo_barっていう形式のValueだった。ので

っていうSQLかましてやりました。

ちなみに、このSQLかました時もハング。

でもまぁ、なんとかトランザクションは完了したみたいで、ちゃんと消えてました。

で、めでたくいまは2.9です。

このレコードのせいもあったのか、またパフォーマンスが劇的に良くなりましたね。

キャッシュなしの初回アクセスで、0.5秒の短縮。

wp_optionsテーブルにはざっと見たところまだまだゴミが貯まってるんで、機会があったら掃除したいところです。

もう使ってないプラグインの情報とかね。

WordPressの今後の課題として、ダメPluginが作り出すゴミレコードをなんとかできるようにしなくちゃいけない気がする今日この頃でした。

プラグインのインストールプロセスにもう少しWordPress側からの介入が必要かもね。

“【WordPress】WordPress2.9へアップグレード時にトラブル【MySQL】” への2件の返信

  1. 同様の症状に見舞われ、こちらにたどり着きました。
    教えてもらわなければ多分原因が分からないままだったかも。
    助かりました!
    ありがとうございます。

    1. こんにちは^^
      お役に立てたようで、光栄です。
      一応、職業PGやってるおかげで、勘で原因が分かりましたが、普通はこんなのわかりませんよね^^;

コメントを残す