タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Lockに関するigaiga07のブックマーク (2)

  • InnoDBのオプティマイザとロックの範囲の関係 - addsict's blog

    MySQLのInnoDBのロックの挙動を色々調べていたのですが、レコードの数によってロックの範囲が変わる現象に頭を悩まされたので、メモがてら少しまとめてみます。 どこまでロックする? 以下のようなテーブルがあるとします。 id列に1〜6までの数値が入っています。 CREATE TABLE t ( `id` int unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; INSERT INTO t VALUES (1),(2),(3),(4),(5),(6); ではidが3より小さなレコードを取得するクエリを投げると、どのレコードをロックするでしょうか。 BEGIN; SELECT id FROM t WHERE id < 3 LOCK IN SHARE MODE; 1〜2のレコードでしょうか。それとも1〜3までロックするでしょうか。 実

    InnoDBのオプティマイザとロックの範囲の関係 - addsict's blog
  • InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013 - あおうさ@日記

    はじめに この記事は、MySQL Casual Advent Calendar 2013 7日目の記事です。 〜 Casual に記事を書けばええんやでヽ(´ー`)ノ 〜 私がMySQLで えっ?! っと思った下記エントリーの挙動が何故そうなってしまうのかを書きたいと思います。 InnoDBで行ロック/テーブルロックになる条件 MyISAM はテーブルロック、InnoDB は行ロックが掛かるというのは有名な話じゃないかと。 ただ、最近知ったのですが、InnoDB だとしても必ずしも行ロックになるわけではなく、テーブルロックになる場合もあるようですね。 ... InnoDB であってもユニーク制約 or インデックスが張られているカラムで検索した場合以外はテーブルロックになってしまうようです。これは注意しないと思わぬところでテーブルロックになってしまって大変なことになりそう! http://

    InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013 - あおうさ@日記
  • 1