Hatena::ブログ(Diary)

konisimple log RSSフィード

はてなブログに移転しました!

2010年07月22日

SQL文だけで面倒な「今から10分以内の行のみを表示」を書く

よく今から10分以内に更新された行がほしいと思ったら

SELECT * FROM hoge WHERE datetime>'2010-07-23 0:49:33'

みたいに書くけど、これをPHPとかSQL呼び出し側で書くのは結構面倒。

そこで以下のように書けばちょっと楽!

SELECT * FROM hoge WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(datetime)<10*60

※書く分量は増えたけどこのほうが見やすい気がしました。

このようにSQLでは便利な関数をいっぱい使えるのでちょっとしたプログラムを書くのにはとても便利。

けど実用にはこの書き方は速度遅そうですね。

(追記)あんま楽じゃないような気がしてきましたw普通に前者でいいような気もしますw

2010年05月21日

SQL問い合わせ結果のキャッシュにより、表示速度が大幅に改善されました!

SQLのSELECT文のみPHP側でキャッシュすることにより、表示速度が大幅に改善されました。

特に画像検索結果画面については、hoshiシステムとの連携開始時から表示速度が遅かったんですが、どんなクエリでもSELECT文ならほぼ一瞬で帰ってくるようになりました。

いままでは遅いときは2秒も掛かっている時もありました。平均すると大体0.8秒程度かかっていたものが、0.002秒程度まで短縮されました!

なおこの変更で、hoshiシステムの計算結果は最大2日程度遅延して反映されます。