タグ「MySQL」が付けられているもの


最近のアクセス状況をグラフ表示

dtnでは、アクセスランキング、人気サイトランキングを実施していますが、
せっかくのIN/OUTランキングデータをここだけで使うのはもったいないなぁと、
以前から思い続けていました。

何か良い方法はないかなぁ....と日々考えていたのですが、
そんな時、ふとjQuery Sparklinesのことを見つけ、
このSparklinesで、日々のIN、OUTをグラフで表示出来れば面白いかも(^▽^;)
と思いついたので、ちょっと作りこんでみました。

ちなみにですが、
dtnのランキングは、アクセス数を単に++していくだけだったので、
24時間毎のデータに分割するのが多少面倒でしたが、
cronなどを使い、なんとか過去7日間のデータに分割させました...(^△^;)

で。完成したのは↓みたいな感じです。
recent_dtn_access_top.png

アクセスランキング人気ランキングのページや、
ディレクトリ内の各登録リンク部分にもくっつけてあります。


ただ、少々問題がありまして....。
Sparklinesは、もちろんJavaScriptで表示しているわけですが、
カテゴリに登録リンクが100とかあると、PC側に相当な負荷がかかって、
ブラウザがフリーズしまくってしまいまして...( ̄- ̄;)

という訳で、登録サイト数が多いカテゴリは、
下層カテゴリを作って、サイトを移動させたりと、
ただ今、大急ぎでカテゴリの整理をやっております。。。


また、アクセスが全く無いサイトなどは、
↓みたいな感じで、_ _ _ _ _ _ _ と表示されるだけなので、
何がなんだか分からなくなってしまってます。。。
recent_dtn_access.png

もっとランキングが賑やかになれば、グラフっぽく見えるかなぁ、と思いますが、、、。
サイト登録して下さった方は、是非、アクセスランキング、
人気サイトランキングに参加して、グラフを賑わせてみて下さいヽ(^∇^;)ノ

mysqlのテーブル破壊

先ほど、登録サイトのリンクをクリックしたところ、
「ランキングデータ抽出エラー」が表示されておりました。

どうやらdtnのOUTランキング用テーブルが壊れてしまっていたようです。。
早速、check table と repair table で障害を回復出来ましたが、
障害発生の原因がちょっとまだよく分かりません。。。

こちらのサイト様を確認すると、
>テーブル更新中にmysqldが止まってしまうと起こりうるそうです
とありますが、どうなんでしょう。。。

障害原因調査の時間が取れたら、確認してご報告しようと思ってますm(_ _)m

MySQLの調整!!

たまに出ていたSQLのエラーを出さないようにする為に、
どうしたものか?とネットを調べてみていたところ、

「サーバー調整のヒントで MySQL サーバーを飛躍させる!!」

という、まさにピッタリのページを発見したのでヽ(^▽^;)ノ
早速やってみました!!
まだやって一晩程度しか経ってませんが、
表示速度も速くなったし、効果はかなりあるようでした!

そのMySQLを飛躍させる方法はこちらをご参照下さい。

ちなみに。これってIBMで公開してくれている技術文書なんですね(^▽^;)
「LAMP システムを調整する」というタイトルで、
全3回分公開してくれてますので、他も見てみれば、
さらにサーバーの快適化をすることができそうです。
ありがたやありがたや(⌒-⌒;)

さて。この中でやってみたのが、
MySQLのクエリーをキャッシュするというものでした。

文書によりますと、、、
「多くのLAMP アプリケーションはデータベースに大きく依存していますが、
同じクエリーを何度も繰り返し行います。
クエリーが実行されるたびに、データベースは同じ作業を行わなければなりません
(つまりクエリーを解析し、その実行方法を決定し、ディスクから情報をロードし、
その情報をクライアントに返します)。
MySQL にはクエリー・キャッシュと呼ばれる機能があり、
クエリーの結果が再度必要な時のために、その結果をメモリーに保存します。
多くの場合、これによってパフォーマンスを劇的に向上させることができます。」

とのことです。
この機能はデフォルトだと無効になっているとのことですが、、、
こんなステキな機能が無効になっていたとは.....( ̄- ̄;)モッタイナイ
我ながらアホ丸出しですみません。

どれぐらいキャッシュがヒットしているかとかは、
色々な変数が用意されているので、MySQLにログインして↓みたいに調べられます。
show_mysql_status.png

ステータスをずっと見てると、バシバシキャッシュにヒットしているのが
分かり、とっても気持ちがいいです。
同じような症状でお悩みの方はぜひお試しを!!ヽ(^◇^;)ノ

mysqlのエラー Warning!

最近、mysqlの接続エラーが頻繁に出てしまっていました( ̄  ̄;)
あるページなんかはgoogleのキャッシュにまで
エラーが表示されたりしてしまい、、、。
キャッシュの方は既に正常なものを拾ってくれたから良かったものの、
このままでは再発するのは目に見えているので、
早速プログラムを見直すことにしました。

ちなみに、メッセージはこんな感じです。
Warning: mysql_connect(): Can't create a new thread (errno **);
if you are not out of available memory,
you can consult the manual for a possible OS-dependent bug...

mysql If you are not out of available memory」とかで検索すると、
この文面で検索に拾われちゃってるサイトもチラホラ見られますね。。。

さてさて。。。
原因がプログラムにあるのは、もうなんとなくご想像つくと思いますが(^△^;)
とりあえず、メインで動くプログラムをあちこち見て、コネクション切ってなかったり、
SQLの結果を保持しているメモリ領域を解放してない場所を探してみると、
あるはあるは...(;゜▽゜A``
早速、mysql_close()やらmysql_free_result()したりしときました。。。

以降、落ち着いているようです。。。
それと、気持ちサイト表示が早くなったような気もします。
そりゃそうですよね。。。(^△^;)

イルカさんもちゃんとプログラム作れとお怒りでしょうね。。。
iruka_ikari.png
もうすぐ6年目ですし、もうちょっとしっかり頑張りますヽ(^△^;)ノ