Home > PHP

PHP Archive

MySQLの負荷について

  • 2010-03-04 (木)
  • PHP

外注先のシステム屋さんに作ってもらったプログラムが、最近負荷がすごくて、PHPの設計を変更してもらいました。

とりわけ、MySQLですね。

どうも最初の修正時の設計間違って、MySQLから出来る限り大きなデータを取り出して、それをキャッシュさせて、PHPで動かそうと思ったが、MySQLって取り出すデータ量多い方が負荷掛かるみたいです。

ですので、次は出来るだけ詳細なクエリを投げて、必要な分だけキャッシュしてみたんです。
そしたら、サクサク動いてくれたんで、まあ、良しかな。

これに味占めて、MySQLに負荷がかかりそうなFunctionをすべてキャッシュしてやった。

これで、サクサク動いてくれればいいんですが・・・・専用サーバーで4Gメモリでも、ギリギリなプログラムって一体・・・

Xrea CoreserverでCronを使いMySQLを最適化する方法

XreaやCoreserverでCronを使いMySQLを最適化する方法を試しに試して、やっと成功しました。
シェルスクリプトはこういった感じで書きます。
※全データベースのパスワードがおんなじ場合

#!/bin/sh

DB_NAMES=(test test_2 test_3)

PW=test

for DB in ${DB_NAMES[@]}

do

/usr/local/mysql/bin/mysqlcheck -o -r –all-databases -u${DB} -p${PW}

done

exit 0

注意 allの前の-ですが、-が2つ連続です。なぜかうまく投稿表示されませんが、、

これでいつでも最適化運営できますね。

Wordpress2.9の注意点

Wordpress2.9がアップされましたが、少々追加機能が多いので、注意が必要です。
とくにヘッダーに記載されるrel=canonical タグは、all in one Seoプラグインを入れている場合、バッティングするので、テーマのheader.phpに下記のように書くことをお勧め致します。
< ?php remove_action(‘wp_head’, ‘rel_canonical’); ?>
※all in one Seoプラグイン1.6.10でcanonicalタグのバッティングが解消されました
Wordpress2.9に限らず、デフォルトでいろんなヘッダーが表示されるので、私は下記を記載して、最小限のヘッダー表示にしております。
< ?php remove_action(‘wp_head’, ‘wp_generator’); remove_action(‘wp_head’, ‘index_rel_link’); remove_action(‘wp_head’, ’start_post_rel_link’); remove_action(‘wp_head’,'rsd_link’); remove_action(‘wp_head’,'wlwmanifest_link’); remove_action(‘wp_head’,'adjacent_posts_rel_link’); ?>

あと、wp-config.php ファイルに define(‘WP_ALLOW_REPAIR’, true);を追記すると、自動データベース最適化してくれるそうで、そこも忘れずに記載しときたいですね。
↑↑↑
これはただ単に”wp-admin/maint/repair.php”にアクセスするとデータベース最適化ができるというだけで、一般のユーザーに対して無制限にアクセスされる可能性があるので、記述は推奨しません。

ホーム > PHP

The Associates
Search
Feeds
Meta
一番大好きなドラマー後藤マスヒロ氏のホムペ

Return to page top