2013-01-01から1年間の記事一覧

isucon #3 予選に参加してきた

1日目で参加してきた。今回は他の二人にアプリケーション側はお任せして、自分はミドルウェアまわりをやる、ということにしていた。最初は、PHPを動くように設定を変更して、ベンチマークを実行していたのだけど、どうもfailしてしまう。原因を見ると、ログ…

SELECT ... FOR UPDATEとロックの挙動

kamipoさんが補足を書いてくれたので、参照するとよいです。

SELECT COUNT(*) FROM (SELECT 1 FROM xxxx)が、SELECT COUNT(*) FROM (SELECT item_id FROM xxxx)より速い理由

とあるサービスでslow logをみていたら、どこかの記事で読んだことのあるクエリがでてきたのだけど、もうちょっと速くできないものか、と考えてみた。結論を言えば、 BEFORE: SELECT sql_no_cache COUNT(*) FROM (SELECT item_id FROM category2item WHERE c…

Minillaで複数のテストスイートを実行するようにする

今ちまちま書いてるRedisismというRedis向けのフレームワークでは、Redisとのコネクション周りとかクエリ投げたりするところのハンドリングを自前では持っていなくてほとんど同じインターフェースなので、RedisDBあるいはRedisに任せている。そうなると、Red…

ActiveRecordのSQLの実行箇所をSQLのコメントに入れる

arproxyを使うと、SQLにフックして色々書きかえることができて非常に便利ですね。 module Arproxy class QueryLocationCommentAppender < Arproxy::Base WHITE_LIST_WORD_RE = %r{^[a-zA-Z0-9\-_/:\?]+$} def execute(sql, name=nil) if ENV["ARPROXY_QUERY_…