MySQLの歴史のために、私はここでそれらを繰り返さない、とすでにお馴染みの多くの人が信じています。ここだけその開発プロセスのマイルストーンをコーミング製品特性の観点から。
内部使用のみのために1995年には、MySQL 1.0のリリース。
1996年には、MySQL 3.11.1リリースは、MySQLの2.xバージョンをスキップします。
1999年には、MySQL ABが設立されました。同じ年では、MySQLの3.23リリース、このバージョンは、Berkeley DBストレージエンジンを搭載しています。会社のSleepycatによって開発されたエンジンは、支持取引。統合プロセスのエンジンでは、ソースコードは、それがその後のプラガブルなストレージエンジンアーキテクチャの基礎を築いた、形質転換されました。
2000年には、MyISAMストレージエンジンのアップグレードにISAM。同じ年には、GPLオープンソースの合意の下でのMySQL。
2002年には、MySQL 4.0リリースでは、後に有名なInnoDBストレージエンジンを統合します。エンジンは、あるInnobase社によって開発されたトランザクションをサポートし、並行性の高いOLTPのシーンのための行レベルのロックをサポートしていました。
2008年には、MySQL ABの100億ドルの買収で日 同じ年で、それはタイマー(イベントスケジューラ)、パーティション、およびその他の特性ベースのレプリケーションラインをサポートするために始めた、MySQLの5.1をリリースしました。
2009年には、OracleのSun Microsystems社の74億ドルの買収へ。
2010年には、MySQLの5.5次の主要な機能とアップデートが含まれてリリース。
- MyISAMの代わりにMySQLのInnoDBがデフォルトのストレージエンジンになります。
- 多核膨張がより完全にマルチコアCPUであってもよいです。
- インデックスを迅速に作成するためのサポートを含むのInnoDBのパフォーマンスは、リフトのテーブルの圧縮性能I / Oサブシステムは、メインスレッドからの剥離のパージ操作は、バッファプールのインスタンスを複数に分割します。
- 準同期レプリケーション。
- 紹介utf8mb4文字セットは、絵文字表現を格納するために使用することができます。
- 紹介メタデータロック(ロックメタデータ)。
- 強化されたパーティションテーブル、二つの新しいパーティションタイプ:RANGE列とリストの列。
- MySQLのエンタープライズ導入のスレッドプール。
- 番号(innodb_read_io_threads、innodb_write_io_threads)はIOスレッドを読み書きするように構成することができます。これに先立ち、数が1で、かつ非設定可能。
- リフレッシュダーティページの数を制御するinnodb_io_capacityオプションの導入。
2013年、MySQLの5.6次の主要な機能とアップデートが含まれてリリース。
- GTIDコピー。
- ロスレスコピー。
- 遅延の複製。
- パラレルライブラリレベルをコピーします。
- mysqlbinlogは、リモートバックアップのbinlogすることができます。
- TIMEの場合は、DATETIMEおよびTIMESTAMPは、小数秒をサポートするために再構築されて。DATETIMEスペース要件は前に5バイトに8バイトから減少しています。
- オンラインDDL。ALTER操作はもはやDMLをブロックしていません。
- トランスポータブル表領域(トランスポータブル表領域)。
- 永続的な統計。マスタとスレーブ間の回避、またはデータベースを再起動した後、SQLの実行計画との違いがあります。
- フルテキストインデックス。
- InnoDBのMemcachedのプラグイン。
- など、EXPLAIN DELETE実行計画を表示するために使用することができ、INSERT、REPLACE、UPDATE DML操作、この前に、唯一のSELECT操作をサポートしています。
- パーティションは明示的操作を指定し、パーティションおよび非パーティションテーブルとの間のデータの交換をサポートするために利用可能な最大パーティション8192の数を増やすなど、パーティションテーブルを補強。
- 512G、前4Gから延長合計サイズ制限をREDOログ。
- IOはSSDのランダムな、より適切な場所であるため、元に戻すログテーブルは、独立した空間に格納することができます。しかし、まだ自動回収空間をサポートしていません。
- 状態が長いウォームアップ時間後にデータベースを再起動する必要がなくなり、バッファプールをダンプして読み込むことができます。
- リフト内部InnoDBの性能は、分割されたカーネルミューテックス、独立リフレッシュのスレッドを含む、パージは、複数のスレッドを提供することができます。
- サブクエリのために最適化オプティマイザ性能、ICP、MRR、BKAおよび他の特徴の導入。
MySQL 5.6は現在、製品版で最も広く使われているアプリケーションであるMySQLバージョン、の歴史の中で画期的な出来事である、と言うことができます。
2015年、MySQLの5.7次の主要な機能とアップデートが含まれてリリース。
- グループのコピー
- InnoDBのクラスタ
- マルチソースのコピー
- 強化準同期(AFTER_SYNC)
- 並列コピーWRITESETに基づきます。
- オンラインオープンGTIDコピー。
- オンライン複製フィルタリングルールを設定します。
- オンラインバッファプールのサイズを変更します。
- 同じ長さの符号化されたバイトに、VARCHARのサイズは、一時テーブルを作成することなく、メタデータテーブルのみを修正する修正します。
- NUMAアーキテクチャでは、メモリ割り当て戦略(innodb_numa_interleave)を設定することができます。
- 透明ページ圧縮(透明ページ圧縮)。
- 表スペース自動復旧を元に戻します。
- クエリオプティマイザ再構築と強化。
- (接続のためにEXPLAIN)SQL実行計画を表示するには、現在実行されています。
- プラグインのクエリ書き換え(クエリー・リライトプラグイン)の導入は、クエリがサーバ上に書き換えることができます。
- JSONの情報を表示しコストFORMATをEXPLAIN =、これは直接2つの実行計画のメリットを比較することができます。
- Oracleでのインデックスの機能に似た仮想列の導入、。
- 新しいインスタンスは、もはやテスト・データベースと匿名を作成するには、デフォルトのユーザーではありません。
- ALTER USERコマンドを導入すると、ユーザーパスワードの有効期限ポリシー、パスワード、およびロックユーザーを変更するために使用することができます。
- パスワードフィールドからパスワードを保存mysql.userテーブルにはauthentication_stringに変更されます。
- 表スペースの暗号化。
- そのメモリ使用量を減らし、パフォーマンススキーマを最適化されました。
- パフォーマンスのスキーマは、計装の数を導入しています。一般的にメモリ使用量の計測機器で使用MySQLはメモリ使用量を表示するために使用することができ、メタデータロック計装は、MDLの保有を表示するために使用することができ、ステージの進捗状況の計測、オンラインDDLの進行状況を表示するために使用することができます。
- 同じトリガ・イベント(INSERT、DELETE、UPDATE)は、同一のトリガ時間(前、後)は、複数のトリガの作成を可能にします。これに先立ち、唯一のトリガーを作成することができます。
- パーティションテーブル用のInnoDBネイティブサポートは、その前に、インターフェイスはha_partitionによって実装されます。
- パーティションテーブルのサポートトランスポータブル表スペースのプロパティ。
- SYS統合データベースは、MySQLは管理と異常なポジショニングの問題を簡素化します。
- JSONタイプのネイティブサポート、およびJSON関数の数を導入しています。
- これは、テーブルレベルのマルチスレッドのバックアップをサポートするために、新しい論理バックアップツール-mysqlpumpを紹介します。
- :それは3つの言語をサポート-mysqlsh、新しいクライアントツール紹介のJavaスクリプト、およびSQLを。APIの二種類:前者はInnoDBのクラスタを管理するために使用される文書のMySQLデータベースとして動作することができる、請求、X DevAPI、AdminAPIを、。
- インスタンスを初期化するためにmysql_install_dbののmysqldは、交換することが--initialize。
- 原生支持systemd。
- super_read_onlyオプションを導入しました。
- 長い(max_execution_timeに)タイムアウトがオペレーションを選択したときに提供されてもよいです。
- 例としては、MySQLのSHUTDOWNコマンドで閉じることができます。
- 高並行性のシナリオの下で導入されたオプションInnodb_deadlock_detect、このオプションでは、デッドロックの検出をオフにするために使用することができます。
- 導入オプティマイザ・ヒントは、そのようなこの前、などICP、MRRを開くかどうかなど、文レベルのオプティマイザの動作に制御することができる、唯一のインデックスがヒント。
- Boost.Geometry代替前GISアルゴリズムの使用を含むGISの機能強化は、InnoDBは、空間インデックスをサポートするために始めました。
2018年、MySQLの8.0次の主要な機能とアップデートが含まれてリリース。
- InnoDBのデータ・ディクショナリに基づいて、ネイティブの紹介。データ・ディクショナリ表は、他のシステムテーブルのmysqlデータベースのように、mysql.ibdデータディレクトリにファイルを保存し、ユーザーには見えない、mysqlデータベースに配置されています。もはやmysqlディレクトリの下に置かれていません。
- アトミックDDL。
- 部品表をビュー・データ・ディクショナリ、前に一時テーブルに基づいて復元されるINFORMATION_SCHEMAの再建。
- PERFORMANCE_SCHEMAクエリのパフォーマンスは、それが複数のインデックスを構築しました。
- 目に見えないインデックス(インビジブルインデックス)。
- インデックスを降順。
- ヒストグラム。
- 共通テーブル式(共通テーブル式)。
- 窓関数(窓関数)。
- 役割(役割)。
- 現時点で、リソースのみのCPUを管理することができ、リソースグループ(リソースグループ)は、リソースを制御するために使用することができ、スレッドの優先順位を使用することができます。
- 導入innodb_dedicated_serverオプションは、動的innodb_buffer_pool_size innodb_log_file_sizeとinnodb_flush_methodメモリベースのサーバーを設定することができます。
- クイックプラスカラム(ALGORITHM =インスタント)。
- JSONフィールドは(JSON部分更新)更新されます。
- 自動インクリメントの主キー持続。
- 永続的なグローバル変数(SET PERSIST)が必要です。
- utf8mb4にlatin1のデフォルトの文字セットを変更します。
- テーブルのデフォルトで有効になった空間、およびオンラインサポート調整(innodb_undo_tablespaces)の数を元に戻します。MySQLの5.7では、デフォルトでは、それが唯一の初期化時に設定することができ、開くために、オープンされていません。
- バックアップのロック。
- ユーザスレッドを複数備え、最適化をREDOログが同時書き込みがバッファをログできます、あなたは動的innodb_log_buffer_sizeのサイズを変更することができます。
- デフォルトの認証プラグインmysql_native_passwordのcaching_sha2_passwordへの変更。
- デフォルトのメモリの一時テーブルは前者に比べて、TempTableのエンジンMEMORYエンジンから変化し、後者は、VARCHAR、VARBINARY、および他の可変長フィールド格納された可変長をサポートします。MySQLの8.0.13以降では、BLOBフィールドのTempTableのエンジンのサポート。
- グラントは、もはや暗黙的に作成したユーザーではありません。
- 声明SHARE ... FOR SELECT導入およびUPDATE NOWAIT SELECT ... FORと電気の問題ホットラインのビジネスシーンを解決するためにロックオプションをスキップします。
- 正規表現の拡張、新しい4相関関数、REGEXP_INSTR()、REGEXP_LIKE()、REGEXP_REPLACE()、REGEXP_SUBSTR()。
- 実施計画の開発におけるクエリオプティマイザは、バッファー・プール内のデータかどうかを検討します。その前に、仮定は、ディスク上のデータ。
- パーティションテーブルを使用する場合ha_partition界面層のみInnoDBストレージエンジン、コードから除去されます。
- 今SUPER権限を付与されたSUPER権限を交換するために、よりきめの細かい権限の導入は、警告を促すメッセージが表示されます。
- GROUP BYステートメントは、もはや暗黙の順序ではありません。
- 導入のMySQL 5.7表領域の暗号化機能は、REDOログおよびUNDOログを暗号化します。
- innodb_locksのINFORMATION_SCHEMAとinnodb_lock_waitsテーブルdata_locksのperformance_schemaとdata_lock_waitsテーブルに置き換え、除去されます。
- performance_schema.variables_infoテーブルの導入は、起源やパラメータの修正を記録します。
- クライアントのエラーメッセージの増加統計(performance_schema.events_errors_summary_xxx)。
- 統計クエリの応答時間分布(コールsys.ps_statement_avg_latency_histogram())。
- 直接カラム名を変更するサポート(new_nameにCOLUMNのOLD_NAMEの名前を変更... ALTER TABLEを)。
- ユーザパスワードは、戦略(再利用ポリシー)を再試行するように設定することができます。
- PASSWORD()関数を削除します。これは、ユーザーのパスワードを変更するには、「パスワードを設定... = PASSWORD( 『auth_string』)」コマンドではないことを意味します。
- 関連する変数と演算子のクエリキャッシュはもはやサポートされているように、コードクエリキャッシュモジュール層は、削除されません。
- BLOB、TEXT、GEOMETRYとJSONフィールドのデフォルト値を設定することができます。
- あなたは、RESTARTコマンドを使用してMySQLインスタンスを再起動することができます。
なお、上記公報には、一般的にGAバージョンを指すことに留意されたいです。
最後に、次の表を見て、テーブルには、いくつかの大きな時間の最新リリースを示しており、この本のように、その小さなリリース時の最新バージョンを公開しています。
テーブルビューのデータから、
1.はおそらく、三年ごとにメジャーバージョンをリリースする予定。
2.製品サポートサイクルは、一般的に8年です。
MySQLの5.5は、丘のように古いですが、当局はまだ常に更新3。