take

技術トピック

2007年9月24日: SQLに関する長年の疑問


カテゴリ:
  投稿者:

【ソリューション事業部 タケシ】
SQLと言うかPostgreSQL or MySQLに関して6、7年疑問に思っていることがあったのですが
先日とある携帯サイトの仕事をした時にソースを眺めていて気づいたので書いときます。
検索結果ページなんかで「該当した1013件中201件目から250件目を表示」
のように表示する事がよくあるのですが、DBからスクリプト(PHP)へ該当した
全件のデータを受け渡しすると該当件数が多くなるとメモリをはじめとする
各種リソースを食いつぶしてしまうので、limit句OFFSET句やなどを使って
201件目から250件目の50件分のみを取得するのが一般的な検索となります。
SELECT * FROM ITEM WHERE ITEM_NAME LIKE ‘%シグマ%’ OFFSET 200 limit 50;
ところがこの方法では1013件該当した事がわからないので
SELECT COUNT(*) FROM ITEM WHERE ITEM_NAME LIKE ‘%シグマ%’;
と、もう一度同じ条件の該当件数を取得だけのSQLを再度実行することになります。
PostgreSQLの場合一般的には皆さんこんな感じで処理しているみたいなのですが、
例の様なLIKE句を使用した部分一致検索の場合、インデクスが利用できないので、
該当件数を取得するためだけに、数万件のレコードに対して処理するような負荷のかかる検索を
2回も実行するのはどうも納得がいかないでいたんです。
で、強引にあみだしたのがカーソルを使って検索結果を保存しておいて
MOVE ALL FROM CURSOR_NAME;
を実行してこの結果から該当件数を取得する方法です。
一応この方法で少しのオーバーヘッドで無駄な検索をなくす事ができるのですが
少しスマートじゃないなと思っていた今日この頃、
某キャラクターの携帯コンテンツのお仕事をしていた時
MySQLのクエリを眺めていたらSQL_CALC_FOUND_ROWSとfound_rows()を発見!!
これを使うと1回の検索で該当件数も取得できるので私の気にしていた無駄な検索もなし。超スマート!
トランザクションが使えないレンタルサーバで構築しろと言われたり
タイムゾーンの対応ができない海外サーバに出くわしたり、
自分から進んでMySQLを使用しようとは思わないのですが、
初めてMySQLが便利だと思った機能でした。
で、SQL_CALC_FOUND_ROWSとfound_rows()をキーワードに
PostgreSQLの同等の機能を検索してみたのですが、やはりない模様。
とりあえずはカーソルで我慢する事にします。
因みに昨日31歳になりました。
昨日は第2子出産から退院したばかりの嫁さんと
生後1週間のまだ名前が決まっていない次男と
お母さんの入院中各所に預けられてまくって熱が出てなかなか治らない長男と
4人で嫁さんの実家でおとなしくすごしました。
同じお誕生日の方は
歴代ローマ皇帝アウグストゥス
稲葉 浩志
後藤 真希
叶 美香
イジリー岡田。。。
http://www.d4.dion.ne.jp/~warapon/data00/birth-0923.htm

今日のDA

2007年8月24日: ノートパソコンを買ってみました。


カテゴリ:
  投稿者:

【ソリューション事業部 タケシ】
Matsudaさん的に言うところのラップトップパソコンを購入してみました。
DellでAMDです。重いです(重量が)。
[Inspiron 1501]
CPU:Turion
Mem:2G
Option:Wi-Fi
子どもがいるとリビングが生活の中心になるのですが
リビングでデスクトップってのは間取り的に苦しいので
ノート+Wi-Fiって構成になりました。
あとビデオカメラの購入を目論んでいるので
無意味にCPUのスペックを上げてみました。
でもこれで税込み・送料込みで¥95,000ぐらいでした。
(かなり待たされましたが)
で到着するなり真っ先にしたのがハードディスクをフォーマットしなおしてXPの再インストール
XP -> 嫁さん用
FreeBSD -> わたし用
のデュアルブート構成にする為にFreeBSD用のディスク確保とDellの一生使う事の無い
プリインストールソフト抹消を兼ねて躊躇する事無く再インストール実行です。
XPにメールやらWi-Fiやらデジカメソフトやらの基本設定を施して
XP側は設定完了。
問題はFreeBSD。
X(GUI)の設定は今だ完了せずです。
XfceやらKDEやらFirefoxやらktermやらkinput2+cannaやらkochiやらを
portsでぶち込んで現在設定中です。
ただBSD用ドライバが無いので諦めていた
Wi-Fiがndisラッパードライバで動くようなので挑戦。
グーグル先生に教わりながらBroadcomの無線LANを組み込んだのだが
どうしてもカーネルパニックをおこしてしまう。
どうやら最新のBroadcomドライバでは新関数を要求するらしくそれが原因らしい。
ココのパッチをあてて無事認識成功。
これでFreeBSDも有線環境から解き放たれたのでした。
UbuntuのFirefox環境に対抗でるようになるまでもう少しです。

この記事に関連する情報

リビングに置く家具は毎日目にするので、こだわりたいですよね。そんな方におすすめなのが、「こもれび家具」です。家具の名産地、福岡県大川市で木が持つ本来の魅力を堪能できる上質な無垢家具を製造する、通販サイトです。 家具好きの方も納得する出来栄えです。是非一度ご覧下さい!
こもれび家具
今日のDA

2007年7月12日: プライベートIPの逆引き設定


カテゴリ:
  投稿者:

[ソリューション事業部長 武司]
(何処かで同じような現象に遭遇した方へ)
先月の末ぐらいに、メール送信に時間がかかるといった現象が発生したのですが、
SpamAssassinのアップデートで重さが増したのかな?とか考えながら調べていると、
どやらSpamassAssinが原因ではあるもの直接的な原因はプライベートIPの逆引きが
タイムアウトしている為でした。
(SpamassAssinは重いといわれていますが流石にmilterで使ってるのでそこまでは重くないとも思っていたので納得です。)
で、更に調べてみるとプライベートIPの逆引きを担当するDNSの応答がかなり悪いようでした。
blackhole-1.iana.org
blackhole-2.iana.org
他所でも同様の現象が確認されているようだったので、
blackhole-1.iana.org達に頼るのはよして、BINDに192.168/16用の
ゾーンファイル(SOAとNSレコードのみの)を食わせて解決しまた。
LANの管理者がプライベートIPに関する逆引きを管理するとう考えからすると
プライベートIPの逆引きをインターネットに聞きにいくのはおかしいとは思うのですが、
中小企業で自前のDNSを持っているところって少ないのにどうするの?
ましてや家庭でルータ1台、PC2台って構成でDNS用意するの?
と思っていたら、NATが対応すべきだと言う意見を聞いて納得。
(そもそも逆引きの必要性に疑問だともおものですが。。。)
blackhole-1.iana.orgが悪いのか、インターネットにパケット流すほうが悪いのか、spam判定に逆引きするのが悪いのか。
因みに1998年4月にも起こっているとテラダ情報員さんから報告を受けています。
http://www.nic.ad.jp/ja/pub/inter-m/PDF/IM9807JP.PDF

今日のDA

2007年6月18日: Google Trends


カテゴリ:
  投稿者:

【ソリューション事業部 タケシ】
(ちょっと外向きに)
日々、分からない事があるとGoogle先生に頼る事が多いのですが、そんなGoogle先生の頼もしい一面を紹介します。
Google Trends です。
グーグルでの過去の検索回数がグラフ化して閲覧でき、複数単語をコンマで区切って
検索すると複数の単語を1つのグラフで表示してくれます。
細かい使い方はそれこそググってみてください。
で、先日テラダさんと激論になったのが「圧縮・解凍ソフトで何を使用するか」でして「Lhaplus」派の私と「Lhaca」派のテラダさんの争いとなったのですが、
(Lhacaはアイコンが蝉っぽくって嫌だと主張しました。)
最終的にグーグル先生に聞いてみようと言う事になり、Google Trendsで検索した結果が下のグラフです。
単純にシェアとは考えられませんが、2年程前を境に「Lhaplus」が「Lhaca」を追い抜いた感がありますが、まだまだ互角のようです。
頑張れ!!Lhaplus!!
●Lhaplus ●Lhaca
fig1
因みにトステムとYKKを比較したグラフがこちら。
YKKはファスナで世界的に有名ですので一概に比較できないのでお遊び程度で見てくださいね。
●トステム ●ykk
fig2
皆さんもGoogle Trendsで遊んでみてください。
そして興味深いグラフが出来たらタケシまで。

今日のDA

2007年5月23日: ただいま考え中・・・


カテゴリ:
  投稿者:

[ソリューション事業部長 武司]
書こうと思っていたネタを諸事情によりナカムラさんからダメだしされため、ネタ切れになってしましました。
で、ずーと考えていたけどいいネタが思いつきません。
そのとき頭の中に流れてきたのがこの歌です。
ただいま考え中
朝は1歳8ヶ月のうちの子にあわせて幼児番組を見て出社するのですが、その中のクインテットって番組で流れる一曲です。
(最近はアミノサプリで替え歌バージョンが使われてますね。ただいま残響中〜♪)
幼児向け番組ですが意外とはまる番組や歌が多くて
時々口ずさんでしまったりしてます。
因みに一番好きな番組は「ぜんまいざむらい」です。
興味のある方は一度みてみてください。
まりもちゃん
私の癒し系アイテムの毬藻です。