タグ

mysqlに関するhuggie10のブックマーク (4)

  • SQL_CALC_FOUND_ROWSを使うとインデックスが使われない?

    MySQLテーブルのレコード数が多くなってきて検索が徐々に遅くなってきたのでチューニング。 EXPLAINでSELECT文を解析してみたところ、どうも一番肝心のレコードが多いテーブルでインデックスが使われていないみたい。 インデックスの作り方が悪いのか、テーブルの構造が悪いのか、はたまたSQL文が悪いのかいろいろ試しました。 結局どうしてもインデックスが使われずにusing filesortが表示されて泣きそうになりました。 途方に暮れていた時なにげなーくSQL_CALC_FOUND_ROWS文を外してクエリを実行したところ・・・ possible_keysとkeyにしっかりとインデックス名が表示されている・・・ そしてExtraにはUsing where表記のみに・・・! まさか原因がそこだったとは自分の中では盲点でした。 ということでLIMITを解除した件数の取得は別でクエリを発行する

    SQL_CALC_FOUND_ROWSを使うとインデックスが使われない?
  • エックスサーバー サーバー初期ページ

    このウェブスペースへは、まだホームページがアップロードされていません。 早速、エックスサーバー上へファイルをアップロードしてみましょう。 アップロードの方法などは、サポートマニュアルをご参照ください。

    エックスサーバー サーバー初期ページ
  • layer8.sh

    This domain may be for sale!

  • DBサーバーの負荷分散

    MySQLアクセスを負荷分散する ユーザーからのアクセス数が非常に多いWebサイトにおいて、MySQLのSLAVEサーバーを複数台並べて負荷分散させるということがよく行われています。ただ、Webアクセスの負荷分散は一般的なテーマなのでいろいろなところで語られているのに対し、DBアクセスの負荷分散というテーマは一般的でないのかあまり語られていないように感じます。 DBアクセスを負荷分散するにあたって一番荒っぽい方法は、Webサーバー上のプログラムの中でどのSLAVEサーバーに接続するかをランダムで決める方法です。ランダムと言っても長時間アクセスしているとほぼ接続先が均等化されるので、一見この方法でも問題ないように見えます。しかしこの方法だと、接続しに行こうとしたSLAVEサーバーが高負荷もしくはサービス停止中であっても構わず接続しに行ってしまうという問題があります。 このような問題を解決する

  • 1