コールセンター・最新ビジネスフォンの究極形を日々。スマートフォン専用ページを表示コールセンター・最新ビジネスフォンの究極形を日々。2.0記事検索リンク■「コミュニケーションビジネスアヴェニュー」...こちらに勤務。アスタリスクベースIP-PBX“トリックスボックスプロ”、Dialogicボード制御ミドルウェアVBVoiceなど。オートシェイプ(08/09)クックパッド開発チームほどの技術力がなくても、自社の業務を効率化できる、という話。エラーと言われる(10/23)開発講習の講師ををしてきました。CTIツール(VBVoice,Skystone,Asterisk)など。MySQLに対してアクセスが増え、データが溜まってくると、サーバが遅くなったという連絡がはいることがあります。体感でですが、データが10万件を超えたぐらいから、そういう話が増えて来るようにも思います。原因としては、INDEXの張り方がうまくない(そもそもはっていない)ということが多いと思うのですが、どこにどうやってはれば良いのか、すぐに分かります?今回、簡単に見つける方法があることに気がついたので、メモしておきます。phpMyAdminを使います。phpMyAdminには、「MySQLプロセスの表示」という部分がありますので、「今、サーバが重くなっている」という時点でこちらを開きます。すると、現在実行しているSQLの情報が表示されます。「プロセス」というタブを数回押してみると、その状態で「いつも同じようなSQL文が何度も表示されている」かもしれません。それが、INDEXをはるべき場所です。"111111"---------------------------というようなSQLが大量に存在していました。ここで注目すべきは、「WHERE句の後」です。111111のところ」を検索しにいって時間がかかっているようです。インデックスがはられていませんでした。phpMyAdminから早速、INDEXをはってみると、このプロセスには表示されないよう(=時間がほとんどかからない作業)になりました。topで見ても、これだけでしゅるしゅると負荷率が下がってゆきます。123---------------------------のように、WHERE句の後に複数の条件があってプロセスがたくさん存在しているような場合には、複合INDEXを張ったほうが効率が良いようです。これが一番手軽だとは思いますが、もう少しプロセスを詳しく知りたい、とか、SQL文が長すぎてすべて表示されないんだけど、というような場合には、もう少し工夫できます。こちらに非常に便利な記事がありました。Administratorshttp://www.oreillynet.com/pub/a/mysql/2006/10/19/mysql-tools.htmlこのあたりから便利なツールを見つけてきてチェックするというのも良いと思います。個人的には、「おっ、こんなので十分だ」と思ったんですがいかがでしょうか。2done-----------------------------------たったのこれだけで、えんえんと状態を表示してくれますので、MySQLの状態把握ができます。知らなかった人にはちょっとお役に立てばと思います。|2005年10月15日mysynxのゆくえマスターMYSQLにつなげない場合には、スレーブMYSQLからデータを受け取るようにするのはどうだろう?ミッションクリティカルなものにも使えるかな?さらに擬似RAIDも実現できたら最高だ。Javaではそういうものがあるhttp://c-jdbc.objectweb.org/から、PHPでやってできないことはないかも。technique!PHPアプリケーションの中で、MYSQLのレプリケーション(もどき)をしてしまおう、というツールを作ってみました。mysql_query(うにゃうにゃ)とあったら、$mySynx->mysql_query(うにゃうにゃ)と置き換えるだけで、設定ファイルに基づいて複製を作るはず、です。データも暗号化したほうが安全。途中で回線が途絶えた時のことも考えると、ログでシンクしたほうがいいよね......。SQLyogと併用で使うなら便利だと思います。スピードもさらに最適化できるかな。Tunnelingを使えば、共有サーバのMYSQLもスレーブとして使用できます。LGPLで配布しようと思っていますので、まずはお披露目まで。※重要バージョン0.6は、トンネリングがつながらないバグがありました。0.6をダウンロードしてくださった方、本当にすみません。0.7をお試しください。4.2のテスト版からは、日本語のシンクロナイズに対応していると思います。あとは、表示のほうも対応してほしい......。現在、サーバ間のMYSQLのデータコピーやシンクロナイズは、SQLyogを使用して作業している。エクスプローラー感覚でできるのはたいへん便利だ。SQLyogはバージョンアップするたびに機能が追加・強化されており、その様子を眺めているのは楽しい。昔、1980年代にSONYのウォークマンのカタログを眺めていた時のような感覚を味わう。・SQLyog本体は、SJISデータの閲覧にしか対応していない。利用しているからいいけれど......。4.1がからんでくると、シンクロナイズがうまくいかない時がある。(内部でUTF8変換がかかっているらしい。サーバの設定?MYSQLの設定?)SQLyogは、PHPファイルで書いてあるSQLyogtunnel.phpでMYSQLからデータを吸い出し・書き込むことができる。このPHPファイルに少し手を加えれば何とかなるかな、とフィルタ関数を追加してみた。発行する瞬間をつかまえて、文字列の中に0xC3と0xC2があったら削除。0xC3の場合は、64(0x40)を次の文字コードに足して、元の文字コードをリストアする、ってなことをやってみた。これでうまくいっている。|2005年08月08日PHPで楽にMYSQLを使うにはPHPからMYSQLにアクセスし、情報を処理するには、phpMyAdminを使うのがいい。洗練されたインターフェイスで、遠隔地から操作できる。http://www.phpMyAdmin.netところが、これをそのまま自分のアプリケーションに流用するというわけにはいかない。現在使用しているMYSQLデータベースの内容を編集するテーブルエディタをてっとりばやく作りたい場合には、とりあえず現在のところは、http://www.phpmyedit.org/を利用している。日本語を通るように、さらにサーバとクライアントで文字コードを変えられる仕掛けを作った。調べてみて、さらに今後、使えるようになりそうだな、という、データベース用コードジェネレーターツールをいくつか。http://www.phpbuns.org/http://phplens.com/lens/追加。技術者の24時間Seesaaブログ×この広告は180日以上新しい記事の投稿がないブログに表示されております。