タグ

ブックマーク / futsu-9.hatenadiary.org (2)

  • MyISAMとkey_buffer - フツーな日常

    Innodbが十分に安定している今敢えてMyISAMを選択する理由はあまり無いのだけど、ここしばらく苦しめられた思い出として記録する MyISAMとキャッシュ MyISAMではデータとインデックスがそれぞれ別の方式でキャッシュされる。データはOS自身が持っているページキャッシュで、インデックスはMySQLではkey_buffer_sizeと呼ばれる値で指定されるサイズの領域。Innodbではこれらが統合されているので、キャッシュ領域を主記憶の過半以上に確保してしまっても何ら問題ない(むしろ推奨値は主記憶の最大80%)。ところが、MyISAMでは前述の通りOSのページキャッシュを利用するためそれらのために十分に残りメモリを確保するため、key_bufferは1/4程度に抑えておく必要がある。 key_bufferの管理方式 key_bufferはmy.cnfでサイズを指定するが、内部ではこれ

    MyISAMとkey_buffer - フツーな日常
    hogem
    hogem 2007/12/19
    "key_bufferが使われるのは対象となるテーブルがtable_cacheに乗っている状態のみ。"
  • フツーな日常 - InnoDBを使うときのパフォーマンスチューニング

    ストレージエンジンとしてInnoDBを使うときはMyISAMのときと触るべきポイントが違うので注意。 http://www.mysqlperformanceblog.com/files/presentations/OSCON2004-MySQL-Innodb-Performance-Optimization.pdf を読みながら取ったメモ。状況としてはRedHat AS3.0で動かしたときのDBT2*1のパフォーマンスを改善していくというもの。MySQL デフォルト状態での分析 Handler_read_nextが多い、つまりrange scanかindex scanが多すぎる slow query logで何が悪いかを引っかける 例では2秒以上処理にかかったqeuryを記録するようにしている 結果を分析 update文が遅かったけど、update文そのままではexplainできないので、

    フツーな日常 - InnoDBを使うときのパフォーマンスチューニング
  • 1