タグ

queueに関するAshizawaのブックマーク (2)

  • MySQL(InnoDB)でCOUNTしたくないとき - かみぽのメモ

    たとえば、MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログに出てくるようなInnoDBをメッセージキューのように使っているときに、キューにどれだけメッセージが溜まってるかを確認したいとき、普通に考えるとCOUNTすると思う。 SELECT COUNT(*) AS count FROM test_queue;この軽い気持ちでしたCOUNTが、もしうっかりキューに100万レコードぐらいあったりするとInnoDBだとPRIMARYキー総なめとかしちゃってレスポンスにかかる0.1秒ぐらいのあいだ罪悪感に苛まれることでしょう。 このとき冷静に考えると、もしキューが1件も処理されていなければ、idはauto_incrementなので特に細工していなければ SELECT MAX(id) AS count FROM test_queue;これも全体のレコード数に等しいでしょう。

    MySQL(InnoDB)でCOUNTしたくないとき - かみぽのメモ
  • PostgreSQL で簡易に MQ - 木曜不足

    「PostgreSQL で安くて早くてうまい MQ 作ってね」的ミッションがどこからともなく降ってきたので、色々調べて試してみたところ、案外よい方法が見つかったので、まとめてみた。 [4/24] 複数キューを扱う場合の方法を tableoid を利用するように更新。 [4/27] フィルタ条件を付ける場合の記法について追記(WHERE 句内の評価順の明示的指定) [4/30] 優先順位に ORDER BY は利用できない旨追記 鍵は advisory lock。PostgreSQL 8.2 以降の機能だ。 メッセージキューと言っても、安くて早いわけだからもちろんフルフルの高機能なわけなく、いろいろ制限がある。 receiver は複数可。メッセージは receiver の一つが受信する。ブロードキャスト/マルチキャストは対象外。 ack あり。ack せずに receiver が落ちた場合

    PostgreSQL で簡易に MQ - 木曜不足
  • 1