MySQLのバージョンについてまとめています。
新規に運用を開始する際のMySQLのバージョンの選び方、サポート終了期間の確認方法、直近のMySQLのバージョンごとの追加機能やアップグレード時の注意点について紹介しています。
MySQL GA版(General Availability)からバージョンを選ぶ
MySQLでは、サポート期間中の安定版をGA版(General Availability版)と呼んでいます。新規インストールをおこなう場合は、基本的にGA版から選びましょう。MySQL Community版のソフトウェアは、以下のページからダウンロード可能です。
最新版以外のバージョンは「Looking for previous GA versions?」をクリックすると、ダウンロード用ページが開きます。
参考)MySQL :: Download MySQL Community Server
なお、以下のページからサポートの終了した旧バージョン(MySQL5.1以前)もダウンロード可能です。
参考)MySQL :: MySQL Product Archives
旧バージョンに不具合やセキュリティホールが見つかったとしても、パッチプログラムは提供されないので注意しましょう。主に、テスト環境で旧MySQLの動作確認をおこなう際などに使うものと考えられます。
サポート期間中のMySQLのバージョン一覧
MySQLをサポートしているOracleでは、3種類のサポートを用意してます。
Premier Suppot、Extended Support、Sustaining Supportです。
Premier Suport可能期間は、すべてのサポートを受けられます。Extended Supportは、追加料金を支払って延長メンテナンスとアップデートを受けられる期間です。Sustaining Supportは、終了期限はありませんがセキュリティホールや不具合が見つかっても、新規にソフトウェアアップデートは提供されなくなります。すでに提供済みのアップデートや有償でのサポートは契約可能です。
MySQL 5.6のExtended Suportは2021年2月に終了するので、これからMySQLを運用し始めるなら、MySQL 5.7以降を選ぶことになるでしょう。5.6を使用していて、セキュリティパッチなどのソフトウェアアップデートが必須の場合は、5.7以降にアップグレードする必要があります。
なお、既存のシステムのMySQLのバージョンはコマンドまたはSQLで調べられます。
【関連記事】
▶MySQLのバージョン確認確認方法 ServerとClientバージョンを調べるには?
MySQL 5.6.46で追加された新機能
5.6では、以前のリリースと比べてデータベースのデフォルト値が変更されています。理由は、デフォルト値のままで優れたパフォーマンスを得られるようにするため。しかし、デフォルト値が変わることでアプリに不具合が出るような場合は、以前のバージョンからアップグレードする前に十分にテストする必要があります。
5.6で追加された主な機能は以下の通りです。
- memcached API
- UNDO表領域
- Global Transactin ID
- マルチスレッドスレーブ
- オンライン Alter Table
- トランスポータブル表領域
その他、セキュリティ機能の改善、監査ログファイル形式の変更、InnoDBの拡張機能追加、テーブルパーティション化拡張機能の追加など。
MySQL 5.7.28で追加された新機能
5.7では、5.6の3倍の速度になったと発表されています。
参考)MySQL :: 【2018年02月05日 MySQL Tech Tour講演資料】MySQL 5.7 新機能
5.7の主な新機能は以下の通りです。
- 新コストモデル オプティマイザ
- ロスレス レプリケーション
- マルチソース レプリケーション
- 全文検索CJK対応/GIS(InnoDB)
- セキュリティ強化
- データディスクショナリ
- NoSQLオプション
5.7でも、前バージョンからデフォルト値が変更になっています。公式サイトにて、MySQL 5.5、5.6、5.7でデフォルト値が変更になったパラメータの一覧が、Excel形式で公開されています。
参考)MySQL :: 【MySQLパラメーター比較資料】MySQL 5.5、5.6、5.7のパラメーターを比較したExcelファイル
MySQL 8.0.18で追加された新機能
MySQL 8.0の新機能は以下のとおりです。
- インデックスを使わない読み取り・書き込みをおこなう更新処理で、MySQL5.7の2倍の速度
- MySQL ドキュメント・ストア
- デフォルトのキャラクタセットがutf8mb4に変更。絵文字と多数のキャラクタセットがデフォルトで扱える
- utf8mb4を使ったときの性能が、MySQL5.7と比較して最大40%改善。特に同時接続ユーザが64を超えるような環境で改善。
- JSONサポート改善
- 共通テーブル式(SQLの拡張)
- 累積分布、相対順位などを算出するウインドウ関数(SQLの拡張)
- 不可視索引(SQLの拡張。使われていないインデックスを安全に削除できる)
- 降順索引をサポートし、パフォーマンス向上
- インフォメーションスキーマへの問い合わせジアkンが5.7と比較して数百倍高速化、パフォーマンススキーマの問い合わせ時間が最大30倍高速化
その他、クラウドフレンドリー、セキュリティの強化、レプリケーションの改良などの改善が実施されています。
特に大きく変わった点で、実運用面で影響の大きそうなアップグレードの際の注意点が、MySQLのコンサルティング会社へのインタビュー記事にまとめられていました。
参考)MySQL 8.0は何が優れていて、どこに注意すべきか。データベース専門家が新機能を徹底解説
大きくは以下の3点です。
- デフォルトのユーザ認証プラグインが変更になった。caching_sha2_passwordに対応していないクライアントは接続ができなくなるため、クライアントも同時にアップデートするか、認証方式を旧来のmysql_native_passwordに戻す必要あり。
- クエリーキャッシュが廃止。それほど効果がデないため、5.6ではデフォルトで無効化、5.7では非推奨になっていた。8.0アップデート時にクエリーキャッシュが有効になっていると、データベースが起動しなくなるケースあり。
- バイナリログ出力がデフォルトで出力するようになった。十分ディスク空き容量のあるサーバでは問題にならないが、1GB程度の容量確保が難しいレガシーなシステムでは、ディスク容量を圧迫する可能性あり。
以下の記事で、MySQL 8.0のダウンロードからインストールまでの手順をまとめています。
【関連記事】
▶MySQL 8.0 インストール ダウンロードから初期設定まで解説
まとめ
- MySQLのバージョンは、GA版から選ぶ。サポート期間の終了時期も考慮する必要がある。
- MySQLの有償サポートには、Premier Suppot、Extended Support、Sustaining Supportがあり、それぞれ終了時期が決まっている。
- 2020年以降にMySQLの運用を始めるなら、ソフトウェアアップデート提供の点から、5.7、8.0以降のバージョンを選ぶ必要あり。