ちょっと古い話になるが、先々月に松信氏と一緒にMySQLのパフォーマンスチューニングのセミナーを行ったときのホワイトペーパーがダウンロードできる(要登録)ので、もし興味のある方はこちらからどうぞ。インタビュー記事(宣伝だけどね!)もぜひご一読を。
http://www.itmedia.co.jp/enterprise/articles/0906/29/news003.html
なぜ直ぐにブログで宣伝しなかったのか?という理由は、マーケの人に止められていたから。
Spiderストレージエンジンのバージョン 2.0(beta)をリリースしました。
http://spiderformysql.com/
これ以降は、1.xが安定版、2.xが開発版となります。
今回の主な変更は以下です。
・テーブルパラメータに「semi_table_lock_connection」を追加しました。
・サーバパラメータに「spider_semi_table_lock_connection」を追加しました。
…
世の中ではたくさんの人が独自にベンチマークを行ない、独自に情報発信がされています。そのベンチマークの中には、非常に参考になるものもあれば、現実性に大きく欠けるものもあります。競合他社が、ライバル社の製品にとって不利な条件でベンチマークを行い、それを発信することも日常的に行われています。ベンチマークの結果を鵜呑みにすることは危険で、結果の意味を判断するスキルを持つことが重要です。これはプロジェクトにおいて負荷テストを行う場合にも重要です。負荷テストの条件設定が正しいかどうかを判断できるようになるためです。
ここでは、私がDBサーバのベンチマーク/負荷テストを行ったり結果を読んだりする上で、心がけているポイントを10個ほど紹介したいと思います。
…
Spiderストレージエンジンのバージョン 1.0をリリースしました。
このバージョンからGAとなります。
http://spiderformysql.com/
今回からLinux x86_64用の共有ライブラリをリリースしています。
リリースにあたっては、以下の記事を参考にさせていただきました。
http://d.hatena.ne.jp/kazuhooku/20080831/1220144671
kazuhoさんありがとうございます。
それ以外の変更については、ダウンロードドキュメント中の「99_change_logs.txt」をご確認下さい。
MySQL5.1のGA版が出てから8ヶ月余りが経過しましたが、まだ5.0(あるいはそれ以前)をメインで使っている方も多いのではないでしょうか。5.1の何が良いのかいまいち分からないという方も多いかもしれません。そんな方にとって分かりやすい例の1つが、「5.1でInnoDBのAUTO_INCREMENT性能が大幅に改善された」という点です。私は仕事柄Web系の技術者の方と話をする機会もよくありますが、意外と知られていない改善なので(まさにトラフィックと同時接続数の多いWeb系システムのための改善なのに…)この機会に取り上げることにします。
…
Spiderストレージエンジンのバージョン 0.18をリリースしました。
http://spiderformysql.com/
今回の主な変更は以下です。
・テーブルパラメータに「use_pushdown_udf」を追加しました。
・サーバパラメータに「spider_use_pushdown_udf」を追加しました。
「use_pushdown_udf」「spider_use_pushdown_udf」は、engine_condition_pushdown利用時、where句で利用したUDFをリモートサーバに発行するSQLの検索条件に加えるかどうかを設定することができます。
今回からテーブルパラメータの空白として、改行が利用できるようになりました。
藤尾さん、ご報告ありがとうございます。
…
ありそでなさそな内容だったのでメモ。
Connector/Netを使うとC#からMySQLのデータを扱えますが、これ自体は.Net providerなので、.Net
Frameworkが扱えるところから利用することができます。今回はWindowsで利用できるPowerShellから扱ってみます。以下の環境で試してみます。
PowerShell: 1.0
Connector/Net: 6.0.4
まずアセンブリをロードします。
PS C:¥>
[reflection.assembly]::LoadWithPartialName("MySQL.Data")
GAC Version Location
--- ------- --------
True v2.0.50727
C:¥WINDOWS¥assembly¥GAC_MSIL¥MySQL.Data¥6.0.4.0__c5687fc88969c44d¥MySQL.Data.dll
接続文字列を準備して、接続します。
PS C:¥> $connStr =
"server=127.0.0.1;port=3306;uid=root;database=test;Pooling=False"
PS C:¥> $conn = New-Object …
DBチューニングにおいて、気を配るべきところは数多くありますが、中でも真っ先に見るべきところはディスクI/Oでしょう。なぜかというと、メモリアクセスに比べてHDDの方が圧倒的に遅く、最もパフォーマンス阻害要因になりやすいためです。ディスクI/Oネックの解決方法を探っていくと、「テーブル/インデックス設計やSQL文の見直し」に行き着くこともまた多いです。これらが不適切だと、結果として大量のレコードをアクセスすることになり、ディスクI/Oが多く発生してしまうためです。根本的な原因はディスクI/Oにあります(CPUネックになることもありますが、その例は別の機会に取り上げます)。
…
日本時間の今日、InnoDB
Pluginの新バージョン1.0.4がリリースされました。このバージョンでは、「バイナリログを有効にするとグループコミットが効かなくなる問題」が修正されています。ほとんどの環境にとって極めて効果の高い修正です。ほかにもI/Oスレッドの多重化(同様のものがMySQL5.4にも搭載)など効果的な修正が行なわれています。
InnoDB
PluginはまだGA(安定版)ではないので、品質面では標準搭載されているInnoDBよりも落ちます。ただしMySQL Enterpriseサブスクリプションを買っている方であれば追加費用無しでInnoDB …
MySQLにおいて、テーブルサイズやインデックスサイズ、レコード数、平均レコード長などの統計情報を知る上でshow table
statusは定番です。ただ雑多な表示項目も多いので、たくさんのテーブルの統計を見る場合、必要な情報だけを返したいことは多いです。また全テーブルのうち、どのテーブルが一番大きいのかを知りたいとか、サイズが多い順に一覧表示したいとか、一目で分かるような情報がほしいことも多いです。
こういうときはinformation_schema.tablesを使うと便利です。以下の例では、appデータベースの全テーブルについて、「テーブルサイズ+インデックスサイズ」の大きい順に、ストレージエンジン、レコード数、平均レコード長、テーブルサイズ(MB)、インデックスサイズ(MB)などを返しています。
use …[さらに読む]