タグ

programmingに関するkiyokonoのブックマーク (3)

  • パフォーマンスを求めて - お前の血は何色だ!! 4

    結局、わかったことは、 次の4つ。 index から 実体へのシークは遅い。 すべてがindex内で完結するクエリーは早い。 limit をつけても where や order by すると意味がない。 indexを張るなら Using indexe をゲットできないと負けかな。 では、select で取得する値すべてに index を張りますか? 場合によっては可能ですが、テーブルに文字列なんかがふんだんに含まれていると難しいものがあり、現実的ではありません。 そこでこんな方法を提案します。2段階にわけてクエリーを打ちます。 A. task テーブルの 2008/6/5 〜 2008/6/18 のデータを開始日順にならべて、先頭5件だけ表示せよ。 select SQL_CALC_FOUND_ROWS * from task where task.task_starttime <= '20

    パフォーマンスを求めて - お前の血は何色だ!! 4
  • OTN Japan マニュアル

  • 第11回 トランザクション処理に詳しくなろう

    富山県高岡市 株式会社イーザー副社長。昔は1月初旬に積雪がないと「いい正月やね。雪なーて」と富山弁であいさつしたものだが,現在は地球温暖化を目のあたりにするようで不気味だ。でも,会社まで公共交通機関はなく,雨やときおり雪が降るので車で通勤している。徒歩や自転車に変えなければと思うのだが,冬場はやはり億劫だ。 「トランザクション処理は関連する複数の処理をまとめて,一つのユニットとして実行する処理方式です」──データベースの入門書にはたいていこんな風に書いてあります。 説明用の最も多い図解が,図1のような銀行の口座間の振替処理ではないでしょうか。Aさんの口座から5万円出金した後で,何らかの原因でBさんの口座に入金することができなかったら,5万円が宙に浮いてしまいます。 トランザクションとして一つのユニットとして実行することで,更新処理をALL or Nothingの状態にできるので,中途半端な

    第11回 トランザクション処理に詳しくなろう
  • 1