Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL 8.4 LTS to MySQL 9.7 LTS

MySQL 8.4 LTS to MySQL 9.7 LTS

日本MySQLユーザ会会(MyNA会) 2026年04月@オンライン
https://mysql.connpass.com/event/387966/

Avatar for yoku0825

yoku0825

April 27, 2026

More Decks by yoku0825

Other Decks in Technology

Transcript

  1. 俺はこういうのがほしかった! bugsでフィードバックしました MySQL Bugs: #120348: Doc Request: What Is New

    in MySQL 9.7 between MySQL 8.4 LTS and MySQL 9.7 LTS Oracleのアカウント作っちゃった人とかいれば “Affects me” で応援してください 5/34
  2. TL;DR 実質開発期間が1年だった8.4よりも新機能はずっとある ただ、5.6 ONLINE ALTER TABLE, 5.7 innodb_buffer_pool_size / offline_mode,

    8.0 INSTANT ALTER TABLE みたいなキラーコンテンツはまだ見 当たらないかも 載ってて出てない(商用版からコミュニティ版にバックポートされる予定だった)機 能もまだあるので、ひょっとしたらしばらくはバックポートがあるかも A New Era of MySQL Community Engagement: Public Community Roadmap Webinar Highlights ‐ しかしON/OFF可能であることを強く望む ‐ 8/34
  3. 8.0 mysql80 8> SELECT @@version; +-----------+ | @@version | +-----------+

    | 8.0.46 | +-----------+ 1 row in set (0.00 sec) mysql80 8> SELECT '2016-09-12' AS `8.0.0`, '2018-04-19' AS `8.0.11 GA`, '2026-04-21' AS `8.0 .46 Final`; +------------+------------+--------------+ | 8.0.0 | 8.0.11 GA | 8.0.46 Final | +------------+------------+--------------+ | 2016-09-12 | 2018-04-19 | 2026-04-21 | +------------+------------+--------------+ 1 row in set (0.00 sec) 11/34
  4. 8.4 mysql84 8> SELECT @@version; +-----------+ | @@version | +-----------+

    | 8.4.9 | +-----------+ 1 row in set (0.00 sec) mysql84 8> SELECT '2024-04-30' AS `8.4.0 LTS`, '2026-04-21' AS `8.4.9 Latest`, '2032-04' AS `8.4.x EOL`; +------------+--------------+-----------+ | 8.4.0 LTS | 8.4.9 Latest | 8.4.x EOL | +------------+--------------+-----------+ | 2024-04-30 | 2026-04-21 | 2032-04 | +------------+--------------+-----------+ 1 row in set (0.01 sec) 12/34
  5. 9.7 mysql97 9> SELECT '2026-04-21' AS `9.7.0 LTS`, '2034-04' AS

    `9.7.x EOL?`; +-----------+ | @@version | +-----------+ | 9.7.0 | +-----------+ 1 row in set (0.004 sec) mysql97 9> SELECT '2026-04-21' AS `9.7.0 LTS`, '2034-04' AS `9.7.x EOL?`; +------------+------------+ | 9.7.0 LTS | 9.7.x EOL? | +------------+------------+ | 2026-04-21 | 2034-04 | +------------+------------+ 1 row in set (0.001 sec) 13/34
  6. MySQL 8.0 vs MySQL 8.4 (1) mysql_native_password のデフォルトOFF tagged GTIDの追加

    InnoDB関連パラメータのデフォルト変更 Group ReplicationのDDL中のPrimary変更ブロック いくつかのDynamic Privilegeの追加 MySQL :: MySQL 8.4 Reference Manual :: 1.4 What Is New in MySQL 8.4 since MySQL 8.0 15/34
  7. MySQL 8.0 vs MySQL 8.4 (2) information_schema.processlist の非推奨化 レプリケーション用語の変更 サーバーでもクライアントでも

    --ssl のオプションの変化 FLUSH HOSTS ステートメントの削除 mysql_ssl_rsa_setup, mysqlpump, mysql_upgrade コマンドの削除 MySQL :: MySQL 8.4 Reference Manual :: 1.4 What Is New in MySQL 8.4 since MySQL 8.0 16/34
  8. MySQL 8.4 vs MySQL 9.7(1) mysql_native_password の完全削除(9.0) イベントスケジューラがプレースホルダーを使えるように修正(9.0) JavaScriptでストアドプロシージャ(9.0 EE)

    EXPLAIN ANALYZE FORMAT=json のサポート(9.0) Primary Key, Unique Key以外の親がFKでデフォルトで作成不可(9.0) VECTORデータ型の追加(9.0) ただし DISTANT 関数はEEのみである ( ー`дー´)キリッ ‐ MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.0.0 (2024-07-01) 18/34
  9. MySQL 8.4 vs MySQL 9.7(2-1) CREATE DATABASE と DROP DATABASE

    がアトミックに(9.1) component_keyring_aws が追加(9.1 EE) Node.jsのNDBCLUSTER APIが削除(9.1) CREATE VIEW IF NOT EXISTS がサポート(9.1) MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.1.0 (2024-10-15) 19/34
  10. MySQL 8.4 vs MySQL 9.7(2-2) 今までSELECTの時すらトリガーのSQL文をハードパースしていたのを修正(9.1) CPUスレッドが32未満の時に innodb_log_writer_threads がOFFになるように修正 (9.1)

    TempTable_count_hit_max_ram が追加されて5.7とそれ以前の Created_tmp_disk_tables と同じ使い心地になるはず(9.1) INSTANT DDLが64世代までだったのが255世代までリビルドなしで継続可能 (9.1) connection_memory_limit の導入(9.1) MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.1.0 (2024-10-15) 20/34
  11. MySQL 8.4 vs MySQL 9.7(3) FLUSH PRIVILEGES ステートメントが非推奨化(9.2) Version Token

    Pluginが非推奨化(9.2) MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.2.0 (2025-01-21) 21/34
  12. MySQL 8.4 vs MySQL 9.7(4) innodb_undo_tablespaces, innodb_log_file_size, innodb_log_files_in_group が削 除(9.3)

    mysqld がコンテナ内で動いていると検知された時にパラメータを自動調整するよ うに(9.3) mysqldump --users が追加(9.3) mysql の xx rows in set (0.052 sec) のマイクロ秒対応(9.3) MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.3.0 (2025-04-15) 22/34
  13. MySQL 8.4 vs MySQL 9.7(5) early_plugin_load の非推奨化(9.4) temptable_use_mmap の削除(9.4) MD5,

    SHA1 関数の非推奨化(9.4) JSON Duality Viewのサポート(9.4) mysql -e "SHOW REPLICA STATUS\G" がデフォルトではシンタックスエラーに(9.4) mysql --commands が必要 ‐ MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.4.0 (2025-07-22) 23/34
  14. MySQL 8.4 vs MySQL 9.7(6) activate_mandatory_roles の追加(9.5) caching_sha2_password のダイジェストラウンドが5,000から10,000に変更(9.5) binlog_transaction_dependency_history_size

    のデフォルトが25,000から 1,000,000に変更(9.5) replica_parallel_type の削除(9.5) semisync_master, semisync_slave プラグインの完全な削除(9.5) innodb_log_writer_threads のON/OFF計算式が変更(9.5) mysqldm なる新クライアントが追加 (9.5 EE) レプリケーション関連通信のデフォルトがSSL/TLS有効に(9.5) MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.5.0 (2025-10-21) 24/34
  15. MySQL 8.4 vs MySQL 9.7(8) レプリケーションSQLスレッド, グループレプリケーションのフローコントロール, グループレプリケーションのリソースマネージャー, グループレプリケーションの プライマリ選出理由…のコンポーネント/プラグインが商用版からコミュニティ版

    に導入(9.7) Open Telemetryコンポーネントが商用版からコミュニティ版に導入(9.7) replica_allow_higher_version_source の追加(9.7) JSON Duality Viewへの更新SQLが商用版からコミュニティ版に導入(9.7) MySQL :: MySQL 9.7 Release Notes :: Changes in MySQL 9.7.0 (2026-04-21) 26/34
  16. 今北産業(Added - 1) VECTORデータ型の追加(9.0) CREATE VIEW IF NOT EXISTS がサポート(9.1)

    TempTable_count_hit_max_ram が追加されて5.7とそれ以前の Created_tmp_disk_tables と同じ使い心地になるはず(9.1) connection_memory_limit の導入(9.1) mysqldump --users が追加(9.3) JSON Duality Viewのサポート(9.4) 28/34
  17. 今北産業(Added - 2) activate_mandatory_roles の追加(9.5) レプリケーション関連通信のデフォルトがSSL/TLS有効に(9.5) --container-aware オプションの追加(9.6) innodb_native_foreign_keys オプションの追加(9.6)

    performance_schema が増えた (9.7) Open Telemetryコンポーネントが商用版からコミュニティ版に導入(9.7) replica_allow_higher_version_source の追加(9.7) 29/34
  18. 今北産業(Changed - 1) イベントスケジューラがプレースホルダーを使えるように修正(9.0) Primary Key, Unique Key以外の親がFKでデフォルトで作成不可(9.0) 今までSELECTの時すらトリガーのSQL文をハードパースしていたのを修正(9.1) INSTANT

    DDLが64世代までだったのが255世代までリビルドなしで継続可能 (9.1) mysqld がコンテナ内で動いていると検知された時にパラメータを自動調整するよ うに(9.3) 30/34
  19. 今北産業(Changed - 1) mysql の xx rows in set (0.052

    sec) のマイクロ秒対応(9.3) mysql -e "SHOW REPLICA STATUS\G" がデフォルトではシンタックスエラーに(9.4) caching_sha2_password のダイジェストラウンドが5,000から10,000に変更(9.5) binlog_transaction_dependency_history_size のデフォルトが25,000から 1,000,000に変更(9.5) innodb_log_writer_threads のON/OFF計算式が変更(9.5) 31/34
  20. 今北産業(Removed/Deprecated) mysql_native_password の完全削除(9.0) FLUSH PRIVILEGES ステートメントが非推奨化(9.2) innodb_undo_tablespaces, innodb_log_file_size, innodb_log_files_in_group が削

    除(9.3) early_plugin_load の非推奨化(9.4) temptable_use_mmap の削除(9.4) MD5, SHA1 関数の非推奨化(9.4) replica_parallel_type の削除(9.5) semisync_master, semisync_slave プラグインの完全な削除(9.5) 32/34
  21. 感想 実質開発期間が1年だった8.4よりも新機能はずっとある ただ、5.6 ONLINE ALTER TABLE, 5.7 innodb_buffer_pool_size / offline_mode,

    8.0 INSTANT ALTER TABLE みたいなキラーコンテンツはまだ見 当たらないかも 載ってて出てない(商用版からコミュニティ版にバックポートされる予定だった)機 能もまだあるので、ひょっとしたらしばらくはバックポートがあるかも A New Era of MySQL Community Engagement: Public Community Roadmap Webinar Highlights ‐ しかしON/OFF可能であることを強く望む ‐ 33/34