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

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@]