以下の機能が MySQL 5.1 に追加されました。
パーティション:この機能では、テーブル作成時に設定されたルールに従い、ファイル
システムに渡って各テーブルのポーションを分散することが可能になります。結果として、同一テーブルの異なるポーションが異なる場所に独立テーブルとして保存されますが、ユーザの観点からは、分割されたテーブルは依然として1つのテーブルとなります。
構文上、このことは新しい拡張数値を
CREATE TABLE
、ALTER
TABLE
そして EXPLAIN ...
SELECT
ステートメントに対して実行します。MySQL
5.1.6 以降は、テーブルの分割クエリとして
パーティション
プルーニング
が利用できます。この結果、テーブルを分割させない場合の同じクエリと比較して、はるかに高速でクエリの実行が可能となるケースもあります。この機能に関してさらに詳しい情報を知りたい場合は、章 15. パーティショニング
を参照してください。(執筆: Mikael Ronström)
行ベースのレプリケーション:MySQL におけるレプリケーション機能は本来、マスタからスレーブまでSQLステートメントの伝播に基づいて行われていました。これは、ステートメントベースのレプリケーション と呼ばれています。MySQL 5.1.5 以降、レプリケーションのためにもう1つのベースが利用できるようになりました。これは、行ベースのレプリケーション と呼ばれています。スレーブに SQL ステートメントを送る代わりに、マスタは各テーブルの行がどのように影響を受けるかを指定するバイナリ ログへのイベントを書き込みます。MySQL 5.1.8 以降では、3つ目のオプションが利用できます。組み合わせ です。これは、デフォルトではステートメントベースのレプリケーションが利用され、ある特定の場合にのみ行ベースのレプリケーションに切り替わるものです。詳しくは 項5.1.2. 「レプリケーション フォーマット」 を参照してください。(執筆: Lars Thalmann、 Guilhem Bichot、 Mats Kindahl)
プラグインAPI:MySQL 5.1 では、サーバの再起動をしなくても、ランタイムに様々なコンポーネントのロード/アンロードを可能にするとてもフレキシブルなプラグイン API も追加でサポートしています。実行が終了していなくても、プラグイン フルテキスト パーサ は実行内容の最初のステップとなります。この結果、ユーザは、PDF ファイルやその他の文書フォーマットのような任意データにおいてフルテキスト検索機能を可能にすることで、インデックス テキストの入力フィルタを実行できるようになります。プレ パーサ フル テキスト プラグインは、テキストの実効パーシングおよび抽出を行い、MySQL のビルトイン フル テキスト検索にそれを渡します。詳しくは 項25.2. 「The MySQL Plugin Interface」 を参照してください。(執筆: Sergey Vojtovich)
イベント
スケジューラ:MySQL
イベントは、スケジュールに従って実行するタスクです。1つのイベント作成時は、1つかそれ以上の正規インタバルで実行される、同じく1つかそれ以上の
SQL
ステートメントを含む名前つきデータベース
オブジェクトを作成していることになります。このオブジェクトは、指定されたデータや時間で開始および終了するものです。概念として、このことはUnixの
crontab
(「コロンジョブ」
としても知られる)や、Windows のタスク
スケジューラの考え方に似ています。詳しくは
章 19. Event Scheduler
を参照してください。(執筆: Andrey Hristov)
サーバ ログ
テーブル:MySQL 5.1
以前では、サーバはログ
ファイルに一般クエリ ログや低速クエリ
ログ エントリーを書き込みます。MySQL 5.1
以降では、サーバのこういったログ書き込み機能はより柔軟性のあるものとなります。ログのエントリはログ
ファイル (上記のように) あるいは
general_log
および
mySQL
データベースの
slow_log
に書き込まれます。ロギングが有効になると、ディスティネーションのいずれかまたは両方が選択されます。
--log-output
オプションはディスティネーションあるいはログ出力のディスティネーションを管理します。詳しくは
項4.11.1. 「一般クエリとスロー クエリのログ出力先の選択」
を参照してください。(執筆: Petr Chardin)
インスタンス
マネージャー(IM)
に新しい機能が追加されました。SHOW
はすべてのログ
ファイルをリストアップし、instance_name
LOG FILESSHOW
は指定ログファイルの一部を検索し、instance_name
LOG {ERROR | SLOW |
GENERAL} size
SET
はオプションを指定値に設定して構成ファイルに書き込みます。詳しくは
項4.4. 「mysqlmanager — MySQL Instance Manager」
を参照してください。(執筆: Petr Chardin)
instance_name
.option_name
=option_value
アップグレード プログラム:mysql_upgrade プログラム(MySQL 5.1.7 以降で利用可能)では、MySQL サーバの現バージョンとの不適合性を調べるためにすべての現存テーブルがチェックされます。また、必要であればそれらの修復も行われます。このプログラムは各MySQLのアップグレードに対して起動されなければなりません。詳しくは 項4.5.4. 「mysql_upgrade — MySQL アップグレードのテーブル チェック」 を参照してください。(執筆: Alexey Botchkov、Mikael Widenius)
MySQLクラスタ間のレプリケーションがサポートされるようになりました。MySQLクラスタと非クラスタデータベース間のレプリケーションも可能になりました。項14.10. 「MySQL Cluster レプリケーション」 を参照してください。
MySQLクラスタディスクデータ:5.1.6以前のMySQLバージョンでは、NDBCluster
ストレージエンジンは必ずメモリ内に保存されていましたが、MySQL
5.1.6からはディスク上のクラスタデータ(ただし、インデックスではない)に保存されることが可能になりました。このことで、MySQLクラスタは以前よりも少ないハードウェア(RAM)で拡大できるようになりました。項14.11. 「MySQL Cluster ディスク データ ストレージ」
を参照してください。
ディスクデータの実行では、大量データ(テラバイト値域)の保存時に、高速ノード再起動のための新「no-steal」修復アルゴリズム も実行されます。
MySQLクラスタに対するオンラインADD
INDEX
およびDROP
INDEX
:テーブルへのインデックス追加と削除は、MySQLクラスタの前バージョンよりも、NDB
ストレージエンジンを使用したほうが遥かに高速で処理されます。これは、NDB
がテーブルを再作成する必要がないかわりにこれらのスキーマを現存テーブルに直接変換できるため、実現可能となっています。
MySQLクラスタ上での改良バックアップ実行:クラスタバックアップ中に単一データノードに生じる障害が、MySQLクラスタの前バージョンのように、アボートするために完全バックアップを起こすことはありません。
テーブルスペースのバックアップ:mysqldump機能では、テーブルスペースのダンプオプションがサポートされています。-Y
または--all-tablespaces
を使用して、この機能を有効にしてください。
INFORMATION_SCHEMA
に対する改良:MySQL
5.1では、メタデータ
データベースでさらに詳しい情報が提供されています。そのデータベース上の新しいテーブルには、FILES
、EVENTS
、PARTITIONS
、PROCESSLIST
、ENGINES
そしてPLUGINS
が含まれています。
XML 機能:ExtractValue()
は、作成されたXPath表現に適合するXMLフラグメントの内容を返します。UpdateXML()
は、XMLフラグメントから選択された要素を、ユーザが第二XMLフラグメント(これもユーザが与えたもの)を与えたXPath表現に置換します。そして、修正XMLを返します。詳しくは
項11.9. 「XML 関数」
を参照してください。(執筆: Alexander Barkov)
ロードエミュレータ:mysqlslapプログラムは、MySQLサーバにクライアントのロードをエミュレートし、各ステージのタイミングを報告するよう設定されています。それは、複数のクライアントがサーバにアクセスしているかのように働きます。詳しくは 項7.16. 「mysqlslap — クライアント負荷エミュレーション」 を参照してください。(執筆: Patrick Galbraith, Brian Aker)