2009年12月 3日

[mysql 15088] Re: パーティショニングについて

奥野です。

Toshiaki Enami wrote, On 3/12/09 11:56 AM:
> 榎並と申します。
> パーティショニングについて教えてください。
> 現在、5.1.31を利用して、WebのアクセスログをMysqlに取り込み、分析する仕組みを動かしております。
> データ量が大量になってきたため検索処理が顕著に遅くなってきたこともあり、過去のデータを別テーブルにしたり、
> 場合によっては、データ削除などを検討しております。

> 分析サービスとしては、それでもいいのですが、せっかく、パーティショニングの機能があるので、アクセスログの日時をRangeで
> パーティショニングしてみようと思っていたのですが、知人から、パーティション化されたファイルを物理的に別なHDDにしない限り、
> あまり効果がないのではないかと指摘されました。
> 基本的には、1つのTBLのみ使っており、別TBLとのJoinなどはないです。
>
> 実際に試してみればいいのですが、いますぐに試せる環境がなかったため先にメールにてお伺いした次第です。
> ちなみに、あまり考えず、Innodbを使ってます。この辺りも考えた方がいいかもしれません。
>
> パーティショニングで効果がでた方のアドバイスなど頂ければ幸いです。

ひとつのディスクを利用している場合でもパーティショニングの効果は表れます。
例えば日時を使ってRangeパーティショニングした場合、日時を検索条件に
指定したクエリならばパーティショニングの刈り込みが効きますので、
利用しているディスクの種類や数は関係ありません。

ただし、日時を指定しないクエリはすべてのパーティションの中から該当する
レコードを検索しないといけないので、その分オーバーヘッドが増えてしまいます。

パーティショニングをすることで、レコード数が多くなったときに
INSERT性能が低下しないという副次的な作用があります。

パーティションを利用していると、パーティションを削除することで一括して
そのパーティションに含まれるレコードも削除することが出来るので、
削除がとても軽い処理になります。フラグメンテーションが発生することも
ありません。

ただし、InnoDBテーブルにパーティションの追加や削除すると、mysqldが
クラッシュするというバグがありますのでご注意を。このバグは、次の
バージョンであるMySQL 5.1.42で修正される予定です。バグの詳細は
次のページを御覧下さい。

http://bugs.mysql.com/45961

--
奥野 幹也
MySQLサポートエンジニア
サン・マイクロシステムズ株式会社
http://www-jp.mysql.com/

MySQL公式Twitterアカウント登場! http://twitter.com/mysql_jp
Planet MySQL Twitterアカウント http://twitter.com/planetmysql_jp


投稿者 xml-rpc : 2009年12月 3日 12:20
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/91115
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。