[前][次][番号順一覧][スレッド一覧]

mysql:13080

From: 久岡 秀司 <久岡 秀司 <hisaoka@xxxxxxxxxx>>
Date: Tue, 6 Jun 2006 09:21:02 +0900
Subject: [mysql 13080] Re: 【 InnoDB 】フラグメントを定量的に知る方法について

お世話になります。

ありがとうございました。参考になっております。
やはりフラグメントを定量的に探る方法ってないみたいですね。

ご指摘のとおり、ソースを見たところ内部でOPTIMIZE TABLEを呼んでました。

月次くらいでmysqlcheckを走らせるとか考えて見ます。

ありがとうございました。


  _____

From: ska_king2005@xxxxxxxxxx [mailto:ska_king2005@xxxxxxxxxx]
Sent: Friday, June 02, 2006 12:01 AM
To: ml@xxxxxxxxxx
Subject: [mysql 13042] Re: 【 InnoDB 】フラグメントを定量的に知る方法につい
て



ska king です。

あくまで推測ですが、結果から言うと「InnoDBのフラグメンテーション状況を定量的
に知る方法はないので、後述する方法で定期的にInnoDBの最適化を行う」しかないの
かなと思います。
定期的というのは、日々のトランザクション数に応じて1ヶ月/3ヶ月/6ヶ月単位で行
えばよいと思います。

以下は、質問に対しての回答です。ほとんど推測ですが。

・1について
InnoDBのフラグメント状況を定量的に知る方法は無いと思われます。
もしかしたら、「show innodb status」や「show status」コマンド
にヒントらしきものがあるのかもしれませんが、英語はさっぱりなもので。。。

・2について
mysqlcheckコマンドはMyISAM型やBDB型のテーブルに対しての最適化で、InnoDB型に
対しては使用できなかった気がします。
推測ですが、内部的には「ANALYZE TABLE」や「OPTIMIZE TABLE」を呼んでいるのか
もしれません。
MyISAM型であれば、このコマンドでインデックスのソートや統計情報を最新にするの
で、
検索効率等をアップさせることができます。

InnoDBのフラグメンテーションの最適化であれば次の二通りがあります。

① mysqldumpコマンドでテーブルを再構築する方法
② ALTER TABLE文でテーブル文を再構築する方法。

上記の二通りで、InnoDBデータファイル内のインデックス領域とデータ領域を最適化
することができるはずです。
いずれの方法も、MySQLリファレンスマニュアルの「7.5.13.3. InnoDB テーブルのデ
フラグメント化」に記述されていますので、参照することをお勧めします。また、試
す前には必ずバックアップを取得してください。
但し、InnoDBデータファイルサイズが小さくなるわけではないので注意して下さい。

以下は、全くの未検証方法で、運用段階でどのような弊害が発生するかわからないの
で、実行する場合は十分に検証して下さい。

① 設定ファイルの[mysqld]セクションに「innodb_file_per_table」オプションを記
述する。
② 定期的にmysqldumpを使用してテーブル単位に最適化を行う。

①によって、InnoDBのテーブル単位に「テーブル名.ibd」というファイルが作成され
ます。
このファイルは、MyISAMテーブルを作成した時に生成される「MYD(データファイ
ル)」「MYI(インデックスファイル)」を合わせたようなファイルです。
なので、「一つのInnoDBデータファイルの肥大化を防ぐことができ、テーブル単位で
最適化できる」のではないかと思っています。
ただOSの制限によって、一つのInnoDBデータファイルが肥大化するのを防ぎたいだけ
であれば、「innodb_data_file_path」の指定で十分だと思います。

以上です。長文になって申し訳ありません。
有識者の方々ツッコミよろしくお願いいたします。。。






  _____

Let's start Yahoo!  <http://pr.mail.yahoo.co.jp/auction/> Auction - Free
Campaign Now!


添付ファイル

[前][次][番号順一覧][スレッド一覧]

     13036 2006-05-30 19:57 [久岡 秀司 <hisaoka@] 【InnoDB】フラグメントを定量的に知る方法について
   @ 13042 2006-06-02 00:01 ┗[<ska_king2005@xxxxxx]                                       
-> @ 13080 2006-06-06 09:21  ┗[久岡 秀司 <hisaoka@]