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 …[さらに読む]
MySQLにおいて、マスターをInnoDBにして、スレーブをMyISAMにすると幸せになれるという主張をよく聞くことがあります。マスターは耐障害性の高いInnoDBにする一方で、スレーブは耐障害性が低くても大丈夫なので、InnoDBのかわりに高速とされるMyISAMを使えば、可用性と性能の両方をバランス良く実現できる、という考えです。
しかし、多くの場合これで幸せになることはできません。マスターとスレーブでストレージエンジンを合わせた方が無難です。その理由を以下に示します。
●MyISAMはテーブルロックになる
…
グリー勉強会「MySQLハッキングの手引き」に参加してきました。
グリーさん、松信さん、いちいさんありがとうございました。
細かい内容は、他の方が既に説明されているのでそちらを見ていただくとして、感想としては、非常に創作意欲を刺激される内容でした。
Spiderでは、リモートサーバのストアドプロシージャ、ストアドファンクションなどの資源を利用するためのUDFの作成を「作らないといけないなー」レベルでなんとなく予定していたのですが、今回の勉強会の影響で完成が早まるかもしれません。
プロジェクトも登録してみました。
http://forge.mysql.com/projects/project.php?id=349
ご期待下さい。
GREEで行われた松信さんのセミナーが起爆剤になり、MyNAの坂井さんが下記のようにまとめてくださいました。
[mysql]Windows上でのMySQLビルド方法まとめ
現状VS2005では、次のような不具合があります。
Visual C++ 2005 cannot compile sql_locale.cc
そのため、当該部分をごまかすか、OSのロケールを英語にするしか、コンパイルを成功させる方法がありません。
詳細は坂井さんのページにまとめられてるのでご参照ください。
当外部分をごまかすとコンパイル時に大量のC4566警告がでます。
…
Spiderストレージエンジンのバージョン 0.17をリリースしました。
このバージョンからRCとなります。
http://spiderformysql.com/
今回の主な変更は以下です。
・テーブルパラメータに「use_table_charset」を追加しました。
・サーバパラメータに「spider_use_table_charset」「spider_local_lock_table」を追加しました。
…