タグ

myisamとinnodbに関するtakami_hirokiのブックマーク (3)

  • マスターInnoDB、スレーブMyISAMが勧められない理由

    MySQLにおいて、マスターをInnoDBにして、スレーブをMyISAMにすると幸せになれるという主張をよく聞くことがあります。マスターは耐障害性の高いInnoDBにする一方で、スレーブは耐障害性が低くても大丈夫なので、InnoDBのかわりに高速とされるMyISAMを使えば、可用性と性能の両方をバランス良く実現できる、という考えです。 しかし、多くの場合これで幸せになることはできません。マスターとスレーブでストレージエンジンを合わせた方が無難です。その理由を以下に示します。 ●MyISAMはテーブルロックになる マスターへの更新結果はバイナリログに更新系SQL文として書かれ、スレーブのI/Oスレッドによってリレーログとして同じフォーマットで記録され、スレーブのSQLスレッドによってその更新系SQL文がそのまま実行されます。この更新系SQL文は、当然ながらスレーブに対して発行されるSELEC

    takami_hiroki
    takami_hiroki 2009/09/01
    マスターとスレーブでストレージエンジンを合わせた方が無難です。
  • MyISAMからInnoDBへ切り替えるときの注意点

    MySQLを使い始めて間もない人がよく陥る罠の中に、気づくと使ってるストレージエンジンがMyISAMだった!ということがある。デフォルトのストレージエンジンはMyISAMなので、MySQLに詳しくない人たちが比較的陥りやすい罠なのだ。そもそもストレージエンジンという概念自体がMySQL独自のものなので仕方のない話である。MyISAMは素晴らしいストレージエンジン(たとえばこのYahoo!の中の人による投稿で言われているように)であるが、長所もあれば短所もある。例えば、 トランザクション対応ではない。 クラッシュセーフではない。 更新と参照が入り乱れた場合の同時実行性能がよくない。 テーブルが大きく(数億行とか)なるとINSERTの性能が劣化する。 などなど。特に前者の2つが問題で、アトミックな操作が必要なところでロジックを実装出来なかったり、サーバがクラッシュした時にデータがお亡くなりにな

    MyISAMからInnoDBへ切り替えるときの注意点
  • MySQL、MyISAMとInnoDBを選ぶ方法 | エンタープライズ | マイコミジャーナル

    SitePoint: New Articles, Fresh Thinking for Web Developers and Designers MySQLはほかの多くのデータベースと違って複数のテーブルタイプを提供しており、用途に応じてテーブルタイプを使い分けることができるようになっている。デフォルトのテーブルタイプはMyISAMだが、ほかにもInnoDBを選択することもできる。SitePointに次の2つの記事が掲載されており、どちらを選択すべきかが簡潔にまとまっている。 MySQL: the Pros and Cons of MyISAM Tables MySQL: the Pros and Cons of InnoDB Tables 内容を要約すると次のようになる。 MyISAMの特徴と問題点 特徴: デフォルトのテーブルタイプ 特徴: シンプル 特徴: 高速に動作 特徴: フルテ

    takami_hiroki
    takami_hiroki 2009/08/12
    ちなみにどちらでも、レプリケーションは可能。但し、InnoDBはコミットまでバイナリログが出力されないため、スレーブに反映されるまでのタイムラグがMyISAMに比べて大きい。
  • 1