PostgreSQL小ネタ

PostgreSQLを高速化する16のポイント

だからそんなせまっくるしいところでトンチンカンにdisる暇あるんだったら自分のブログでお好みの議論を書くかさもなきゃ/dev/nullにでも吐けとやんわりと言ってるんだよハゲ。

ですよねー。

というわけで、重要度によらない小ネタをいくつか。

PHPのpg_pconnect

pg_pconnectに気をつけろ!!として他の方のエントリもあるとおり、pg_pconnectはApacheのmod_php環境では当然ながらピーク時にApacheのMaxClients分だけDBへの接続数が消費される事になります。

これは特にロードバランサ配下など、複数台Webサーバ置いている場合に、各サーバのMaxClientsの合計数分が必要数になります。それ以上の接続数をDBサーバ側で確保できない場合は、例えば、pg_pconnectを避ける、コネクションプーリング用にソフトウェアを導入する、なども検討した方が良さそうです。

また、以前は接続コストがMySQLに比べて大きいと言われていましたが、最近はそうでもないようですね。その上で、サーバのメモリを増やして同時接続できる数を増やすという考え方をしたほうがいい。そうすれば結果として楽になれるという意見にも賛成です。きっちり必要なだけの接続数を確保して、幸せになりましょう。

HOT

HOTを利用するにはFILLFACTORパラメータをテーブル作成時に指定する必要があります。デフォルトでは100%になっているためHOTが機能しません。

また、HOTの原理上インデックスが張られているカラムを更新した場合は効果が出ないため、可能ならばそれを前提にインデックスを設計するのが良いでしょう。HOTに限らず、PostgreSQLの特性を設計で考慮すべき、というのは一般論でもあります。

(2009-03-01追記) ちょうどわかりやすい解説記事が公開されていました。

インデックスの張り方

PostgreSQLにはメモリ上で複数のインデックスを合成するビットマップスキャンがあるため、MySQLとはまた異なるインデックスの張り方が可能です。このあたりは、マニュアルは当然読んだ上で、自分でEXPLAINしながら試行錯誤してみると良いのかなと思います。

マニュアル

誰に聞いても同じ事を書くでしょうけれども、リファレンス的に必要なときに関係しそうな部分だけ見るのではなく、全部目を通しましょう。仕事でPostgreSQLを使っているのにマニュアルなんてほとんど読んだことが無いなんて方、たまにいらっしゃいます。PostgreSQLのマニュアルは、翻訳も含めて非常に品質が高いです。これだけ恵まれているのに利用しない手はありません。

リリースノートも、後ろの方にあるので見落としがちですがやはり重要です。8.3における自動キャストについても、既知の非互換性にきちんと対応方法含めて書かれています。
postgresql.confで指定するサーバ管理用パラメータなども、メジャーバージョンアップで名前の変更があったりしますので、以前のバージョンにおける情報とかを参考にする場合は注意が必要です。

UQ WiMAX さわってみた

今日届いたので早速いじり始めています。ちなみにWindowsXP環境です。

  • 何カ所かで速度テストしてみたけど、3.5〜5.5Mbpsぐらい出るようです。
  • USBのUD01SSを選びましたが、モデム等ではなくNICとして見えます。
  • 接続アプリを立ち上げると勝手になにかごにょごにょやって接続します。
  • 逆引きは w[0-9-]+.uqwimax.jp みたいかなんじ。
  • IPアドレスはAS2516でKDDI
  • アプリを落とすと、「ケーブルが接続されていません」になります。
  • アプリの起動にはAdministrators権限が必要です。Usersではだめです。ショートカットをクイック起動とかにコピーして、プロパティの詳細設定から「別の資格情報で実行する」にチェックを入れたりする運用が考えられるけどちょっとたるい。
  • ユーザ切り替えが有効なWindowsXP環境なら、裏でAdministrators権限のユーザを開いておけばそちらで勝手に起動して接続するようです。
  • ……と思って指したり抜いたりしてたらWindowsXPのユーザ切り替えとシャットダウンができなくなった。よくわからない。
  • 結論としては、とりあえず一般ユーザ側で先にAdminsの資格情報で立ち上げておけばよさそう。だめだった。まだなんかおかしい。なんとなく、接続アプリが複数ユーザで複数動作していると異常動作する気がする。
  • 持ち歩いてみるよ!
  • 秋葉原某所(4F室内窓際)では入った。
  • 秋葉原某所(1F室内、携帯はdocomoが圏外)では入らなかった。
  • 電波強度が知りたいなあ。↓解決編
  • 端末は開発元がMODACOM、韓国製
  • 端末のUSBコネクタの影にもろもろの情報あり
  • 特定できる情報を隠すと以下のような感じ
    • 商品コード: D01SSA
    • 製造番号: xxxxx999999
    • 製造年月: 999999
    • MAC: 00-1D-93-xx-xx-xx
    • モデル名: MW-U2510
  • emobileユーザとしては、なんか小さくて、なくしそう。
  • ぐにぐにできるUSBコネクタ部分は、90度と180度で止まるようになってる。
  • 接続アプリのでっかいのが電波強度か!
  • MAXで5本。もうバリ3って言えない。これからはバリ5の時代。
  • 大手町付近某所(6F室内窓際)で3本、2.5Mbpsぐらい。