« 台北遠征2007(4)〜席だけCで帰国 | メイン | ISO3166/GoogleMaps台湾・タイ拡大 »

2007年05月05日

postgreSQLアップグレード

自宅にて西洋がてら、帰国荷物の整理。一段落ついたところで、F案件実装再開。postgreSQLのアップグレード(v7.4→v8.2.3)をソースからコンパイル。 データ移行はpg-dumpallコマンドで吸い上げてから、psqlコマンドで落としこんだ。

 カテゴリ検索用に配列内を検索(LIKE検索含む)しようとしたが、実装はできたものの、サーチ速度が遅い。EXPLAINコマンドでチェックしたらコストが260だった。うーむ、これでは商用には無理だ。視点を変えてこれらのデータを別のテーブルで管理させ、IDでリンクさせる手法にした。するとコストは30程度に低下し、実用的になった。従来のテーブルはある種の属性を6エントリ持ち、1つ1つについて以下のようにSQL文を組んでいた。
(テーブル内容 抜粋)
id int,
type1 int,
type2 int,
type3 int,
type4 int,
type5 int,
type6 int,
:
(sql)
select target from tablename where type1 = 50 or type2 = 50 or type3 = 50 or type4 = 50 or type5 = 50 or type6 = 50 ...

今回属性が7以上必要となり、現在のテーブルでは保守性、速度性に劣るので、別途属性用のテーブルを作成、複合検索とした。
(新規テーブル) subtable
id int,
type int
(両テーブルのidはリンクする)
SQL文も以下の通りすっきり?させた。
select target from tablename where id IN (select id from subtable where type = 50) ...

これが最適解かはわからないが しばしぼぉーっと様子を見ようと思う。


にほんブログ村 旅行ブログ 旅行ガイド・プランへ

【他の年の本日の日誌】
2008:
CITIBANKロック/ビアフェス断念 先日来、シティバンク銀行(CITIBANK)のログインができなくなってしまっていた。おそらく認証時に間違った情報を送ってしまいそれを同じ日に3回やってしまったためロックが
2006:
休日出勤その2 祝日だがM社案件のため出陣。昨夜再生成のため流し始めたブン回しは今朝未明に完了していた。網羅チェックも良好。残りの落ち穂拾いを行い、ほぼ完了。モー氏(仮名)は不在だったが意思疎通は図れ事なきを得た。  納品準備のため日曜日も出陣となってしま...
2005:
ココプエル 西洋人。部屋の片付けを行った。もう着ないような服を大量に処分した。クローゼットが広くなった。小部屋(通称「司令室」)も広くなった。 7月の超割は、宮古島遠征を企て、手配。 ヨドバシカメラへ出かけ、一眼レフデジタルカメラ、キヤノンEOSKIS...
2004:
時差調整 連休最後の日は西洋人。時差ぼけ少々。先日買ったLet'sNoteに増設メモリを装着。 めでたく768MBとなった。 ただデータなどの移行はまだまだだ。...
2003:
ゴレンジャー 本日は西洋人。サーバのメンテナンスと、PHP掲示板の画像出力エージェントの作成を行う。エージェントは画像直リンク回避対策と画像管理の一元化を目的として作成した。 動作は良好につき即日リリースしたが、apacheのエラーログにcat:書き込み...
2002:
温泉DB拡充 新潟県を中心に温泉DB拡充。 思うところがあってヤフオクで露出計をGET。...

投稿者 onsenfan [ Linuxサーバ, プログラミング ] : 2007年05月05日 23:49

この記事が役に立った/おもしろいと思ったら、ワンクリックで応援お願いします

トラックバック

このエントリーのトラックバックURL:
http://blog.odorokutamegoro.com/cgi-bin/mt/mt-tb.cgi/1895_3921862683398

コメント

コメントしてください




保存しますか?



ジオターゲティング
counter
4