-
MySQL は、開発者の手の届く「おもちゃ」から、今日では「世界で最も人気のあるオープンソース データベース」へと変貌を遂げ、その過程には製品バージョンのアップグレードといくつかの新機能 (特にエンタープライズ データベース機能) の追加が伴いました。 MySQL は、開発者の手の届く「おもちゃ」から、今日では「世界で最も人気のあるオープンソース データベース」へと変貌を遂げ、そのプロセスには製品バージョンのアップグレードといくつかの新機能 (特にエンタープライズ データベース機能) の追加が伴います。現在、MySQL 5.0 は完全に開発されており、MySQL を「おもちゃのデータベース」と呼ぶ人はほとんどいません。 MySQL の豊富な機能は多くのユーザーのニーズを満たしています。Oracle の最近の行動は、MySQL を非常に真剣に受け止めていることを示しています。Oracle は MySQL を買収する意向を何度か表明しています。
MySQL 製品ロードマップ
MySQL のより影響力のあるバージョンから始めて、MySQL の更新を見てみましょう。
MySQL 4.0
MySQL 4.0 は 2003 年 3 月にリリースされ、新しい MySQL ベースのアプリケーションがより広く利用できるようになりました。ただし、バージョン 4.0 では、MySQL はストアド プロシージャ、トリガー、サーバー側ポインタ、ビューをサポートしていません。 MySQL 4.0 は 3.23 バージョンから開発され、主に Web サイトに適しています。現時点では、MySQL はまだエンタープライズ レベルのデータベースではありません。
MySQL 4.0 の主な新機能は次のとおりです。
FULLTEXT インデックス: おそらくユーザーが最も期待しているのは FULLTEXT インデックスでしょう。
FULLTEXT はテキスト フィールドにインデックスを作成し、インデックスに対してブール検索を実行するための強力かつ柔軟なメカニズムを提供します。一般的な開発経験によれば、開発者は通常、インデックスを作成してテキスト データにアクセスする必要がありますが、FULLTEXT インデックスは想像よりもはるかに優れています。
多くのソリューションは全単語インデックスに制限されていますが、FULLTEXT インデックスにはそのような制限がないため、開発者はフレーズを追加または分割できます。
ANSI SQL UNION: クエリ結果を結果セットに収集する ANSI SQL UNION ステートメントをサポートします。
複数テーブル操作: 複数テーブルの UPDATE および DELETE を実行できます。
新しいステートメント: 他の DBMS ユーザーに馴染みのあるいくつかの非標準の新しいステートメント (IDENTITY や TRUNCATE TABLE など) と、LIMIT 句なしで返すことができるレコードの数を返すことができる FOUND_ROWS() などの新しい関数が追加されました。 。
InnoDB ストレージ エンジン: InnoDB ストレージ エンジンは当時サーバーの標準機能であり、バージョン 4.0 では追加オプションになりました。 InnoDb は、デフォルトの MyISAM テーブル タイプの代わりに ACID 準拠のトランザクションを許可するテーブル タイプであり、一般的な使用を高速化できますが、重要な操作にはあまり役に立ちません。
InnoDB テーブルは行レベルのロックを使用します。つまり、レコードの更新ではテーブル全体ではなく、そのレコードのみがロックされます。テーブル全体のロックは、選択範囲が大規模なデータベースにアクセスする場合 (ほとんどの Web サイトの場合と同様) はかなり高速ですが、挿入と更新の数がオプションの数に近づくと遅くなります。 MySQL に対する批判は長い間、MyISAM テーブルのセキュリティと一貫性の問題に焦点を当ててきましたが、ACID 準拠の InnoDB テーブルはこれらの問題の解決に大いに役立ちます。
クエリのキャッシュ: 場合によっては、MySQL 4.0 の方が高速な場合があります。これは主に、速度を向上させるために重複したクエリ結果を保存するクエリ キャッシュによって実現されますが、多くの成熟したアプリケーションは、何らかのコード レベルで独自のクエリ キャッシュ機能を実行します。特定のステートメントの速度も向上しました。
組み込みサーバー: MySQL 4.0 には、アプリケーションが基礎となるデータベースとして MySQL を使用できるようにする組み込みサーバー ライブラリが付属しています。
latin1_de: MySQL 4.0 は、ドイツ語の単語が正しく格納されることを保証する追加の文字セット latin1_de をサポートします。
MyISAM: MySQL 4.0 の MyISAM テーブルは現在、テーブル レベルでのシンボリック リンクをサポートしているため、Windows ユーザーはテーブル レベルでシンボリック リンクを作成できます (これは Unix ユーザーに対して常に機能します)。
セキュリティ モデル: MySQL 4.0 のセキュリティ モデルが強化され、管理者がより詳細な方法で権限を承認できるようになりました。新しい権限により、ユーザーは一時テーブルの作成、テーブルのロック、特定のレプリケーション タスクの実行、既存のすべてのデータベースの表示、さらに最大接続制限に達した場合の接続が可能になります。これは、DBA が緊急タスクを実行したり、ストレージ プロシージャの実行を許可したりするのに非常に役立ちます (この機能は MySQL 5 で実装されました)。 DBA は、拡張セキュリティ モードを利用して、ユーザーが 1 時間あたりに実行できる接続、更新、またはクエリの数を制限することもできます。
MySQL 4 は Novell Netware 6.0 上で動作するように設計されています。さらに、多くの MySQL サーバー変数はサーバーを再起動せずに変更できます。再起動すると古い設定が復元されるため、これは非常に便利です。
MySQL 4.1
MySQL 4.1 のリリース後、一部のユーザーにとって、4.1 には MySQL 4.0 よりも魅力的なアップグレードの可能性があります。
MySQL 4.1 はサブクエリをサポートします
多くのクエリはサブクエリを使用しない方が効率的に作成できますが、例外もあります。サブクエリは標準の ANSI SQL 機能です。
Unicode (UTF-8) をサポートし、より幅広い国際化が可能になります。
各列、テーブル、またはデータベースには異なる文字セットを含めることができます。これは、データが複数の言語で保存されている場合に必要になります。
地理データのサポート (OpenGIS)
警告の送信が強化されました。 1 つだけでは不十分な場合、MySQL 4.1 はクライアントに複数の警告を送信できるため、データ処理全体にとって非常に役立ちます。
若干の速度が向上しました。ただし、こうした速度の向上は、MySQL 4.1 が負担する余分な重量によって相殺される可能性があります。
MySQL マニュアルはリリースされているマニュアルの中で最も優れたものの 1 つですが、MySQL 4.1 にはそのバージョンでのみ機能する HELP コマンドが付属しています。
次のような派生テーブルがサポートされています。
SELECT table1.field1 FROM table, (SELECT * FROM table2) table3 WHERE table1.field1=table3.field1
複数行のクエリをサポートし、複数のクエリを実行して最終結果を読み取ることができます。
さまざまなメンテナンス ステートメントがバイナリ ログに保存されるため、複製時のメンテナンス タスクを簡素化できます。
CREATE...LIKE を使用すると、開発者は既存のテーブルとまったく同じ構造を持つ新しいテーブルを簡単に作成できます。
さらに、MySQL 4.1 の 3 つの注目すべき機能には、安定した OpenSSL サポート、より多くのテスト準備ステートメント、およびテーブルの複数の文字セットのより多くのテストが含まれます。
MySQL 4.1 は、実際に「成長」した MySQL の最初のバージョンである可能性があります。バージョン 4.1 で新しく追加されたいくつかの機能 (地理データ、サブ選択ステートメント、派生テーブルなど) により、Oracle は初めて MySQL に本格的に注目し始めました。
MySQL 5.0
ストアド プロシージャをサポートします。ストアド プロシージャは、他のデータベース環境の開発者によって最も一般的に使用されている ANSI SQL 標準です。MySQL では、これはかなり前になってしまいました。 MySQL 5.0 でサポートされるストアド プロシージャの構文は、Oracle PL/SQL および T-SQL に似ています。
トリガープログラム(イベント発生時にストアドプロシージャと呼ばれる)
サポートポインタ
VARCHAR データ型を真にサポートし、長年の MySQL VARCHAR バグを解決します。
MyISAM テーブルでの RTREE インデックスのサポートにより、地理データへのアクセスが容易になります。
MySQL 5.1
バージョン 5.0 と比較して、MySQL 5.1 にはいくつかの新機能が実装されています。
オンライン バックアップ (マスター サーバーをシャットダウンせずにレプリケーション スレーブを追加できます)。
BIT タイプは実際には 1 文字ではなく 1 ビットを占有します。
フェールセーフ レプリケーション
-