タグ

innodbに関するcknbstrのブックマーク (5)

  • MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 9.8.4 InnoDB レコード、ギャップ、およびネクストキーロック

    レコードロック: これはインデックスレコードのロックです。 ギャップロック: これはインデックスレコード間にあるギャップのロック、先頭のインデックスレコードの前や末尾のインデックスレコードのあとにあるギャップのロック、のいずれかです。 ネクストキーロック: これはインデックスレコードに対するレコードロックと、そのインデックスレコードの前にあるギャップに対するギャップロックとを組み合わせたものです。 レコードロックでは、テーブルにインデックスが定義されていなくても必ず、インデックスレコードがロックされます。そのような場合には InnoDB によって隠しクラスタインデックスが作成され、このインデックスを使ってレコードロックが行われます。項9.10.1. 「クラスタインデックスと二次インデックス」 を参照してください。 デフォルトでは、InnoDB は REPEATABLE READ トランザク

  • tree-tips: MySQLの外部キーとデッドロック | MySQL

    外部キーでデッドロックを起こすサンプルコード。 drop table if exists child; create table child (id int, pid int, primary key (id, pid))engine=innodb; drop table if exists parent; create table parent (id int, count int, primary key (id))engine=innodb; insert into parent values (1, 0); alter table child add foreign key (id) references parent (id); トランザクションA ------------------------------------- begin; insert into child val

  • tree-tips: MySQLのlock in share mode | MySQL

    lock in share modeとは? lock in share modeは、共有ロック・shared lock・slock、と言われているロックです。 for updateは、排他ロック・xlock、と言われています。 参照(select)する時にロックをする機能です。 lock in share modeはどんな時に使う? 主な使い道は、ファジーリード・ロストアップデートを防ぐ、です。 ファジーリードはトランザクション分離レベルがread committed以下の場合の発生します。repeatable readの場合はそもそもANSI/ISO SQLの仕様上発生しません。 具体的な使い所としては、一覧画面の表示時のSQLや、不正データ検出、等で使うかと思います。 for updateとの違いは? 最大の違いはslockによる参照をブロックしない・されない点です。つまり、参照同士の

  • [MySQL][InnoDB] innodb_log_file_size 変更手順 - koziyの日記

    毎度毎度毎度はげしくど忘れするのでメモ。 手順は InnoDBを使うときのパフォーマンスチューニング - フツーな日常 で書かれてますね。 innodb_log_file_sizeを増やす innodb_log_file_size=512Mに ちょっとコツがいる操作が必要。 * 一度mysqlをshutdownする * innodbのログを別の場所に退避させる * innodb_log_file_sizeの値を変える * 再度mysqldを上げ直す。ログは無ければ勝手に作られる。 InnoDB のログは ib_logfile\d+ (デフォルトだと ib_logfile(0|1) の 2 ファイル) なのでこれを /tmp にでも mv しちゃうと。 で、なんでこんなめんどーなことが必要なのかというと no title で書かれている 既にトランザクションログが存在していて,innodb_

  • (特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場

    InnoDBはMyISAMと比較して安全(OSクラッシュや電源断が発生してもテーブルが壊れない)分、書き込みが遅い。データベース屋さんからすると、それは当然のことでMyISAMがおかしいんだ、ということになり、だからバッテリバックアップ機能のついたRAIDカードを使うんだ、という話になる。でも、MyISAMを使っているウェブ屋さんの現場では、場合によって多少データが消えてもかまわないから、安いハードウェアで大量のアクセスを捌きたい... って乖離があるんじゃないかなーと思ってる。 そのような場合には、my.cnf の innodb_flush_log_at_trx_commit パラメータを調整することで、MyISAMに比肩する書き込み速度を得ることができる(そのかわり、クラッシュや電源断の場合は、設定によって直近1秒以内の変更が失われる)。 他のパラメータも含めて書いておくと、データベー

    (特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場
  • 1