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

Amazon RDSを使うからこそ知っておきたいMySQLバージョンとSQL非互換

Avatar for takumats takumats PRO
September 02, 2025

Amazon RDSを使うからこそ知っておきたいMySQLバージョンとSQL非互換

Amazon RDS/AuroraはマネージドDBですが、サポート期限がありバージョンアップが必須です。しかし、MySQLのメジャーバージョンアップ(5.7→8.0、8.0→8.4など)により、SQL非互換や実行結果の変化、性能変化などの問題が生じるため、対応と十分なテストが求められますので気にしておきましょう。

Avatar for takumats

takumats PRO

September 02, 2025
Tweet

More Decks by takumats

Other Decks in Technology

Transcript

  1. © 2025 Insight Technology, Inc. ⚫ 松尾 拓真 - 株式会社インサイトテクノロジー

    - 製品本部 (札幌R&Dセンター) - 札幌在住 (出身は神奈川県) - 年に数回のマラソン ※一昨日の北海道マラソンも無事に完走 ⚫ 担当業務 - 自社開発製品、取り扱い製品などのプリセールス、自社セミナー登壇など ⚫ AWS - 2025年からAmbassadorになりました! - 2024 Japan AWS Top Engineer (Database) - 2025 Japan AWS Top Engineer (AI/ML Data Engineer) 自己紹介
  2. © 2025 Insight Technology, Inc. ⚫ Amazon RDS (Relational Database

    Service) - PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、Db2 などを選 択可能なマネージドデータベースサービス - 管理タスクという面倒な作業をAWSに任せることができる ⚫ Amazon Aurora - RDSで選択できるエンジンの一つでAWSオリジナルのエンジン - MySQL互換とPostgreSQL互換から選択できる - パフォーマンスと可用性を低コストで提供 4 Amazon RDS / Amazon Aurora とは?
  3. © 2025 Insight Technology, Inc. ⚫ メリット - 管理タスクという面倒な作業をAWSに任せることができる -

    簡単に起動、簡単に削除 - AWSでデータベース(RDB)を使うなら、 まずはマネージドで行けるかどうかを考える ⚫ デメリット(気を使わなければならないこと) - コストはEC2よりは割高になりがち - サポート切れのDBは利用できない 5 マネージドデータベースを使うことのメリデメ
  4. © 2025 Insight Technology, Inc. ⚫ Amazon RDSでは、標準サポート終了と延長サポート終了の2つのタイミング - 標準サポート

    - MySQLの場合、だいたいコミュニティサポート終了と同じタイミング - マイナーバージョンのリリースで、機能追加や追加のセキュリティアッ プデートがある - 延長サポート - 標準サポート終了後に基本は3年間、AWS側でサポートを提供 - 重大なセキュリティ更新の提供など - 延長サポート費用が別途必要 6 サポートが切れるとどうなるのか?
  5. © 2025 Insight Technology, Inc. ⚫ 東京リージョンで1VCPU当たり0.12USD/時間 - 2xlarge(8VCPU)だと1か月約10万円 -

    ※db.r5.2xlargeのインスタンスの料金:1.40USD/時間 - ※3年目は2倍の料金になる - 7 - 参考) 延長サポートの費用ってどれくらい?
  6. © 2025 Insight Technology, Inc. 8 RDS for MySQLとAurora MySQLのサポート期限

    標準サポート終了日 延長サポートの終了日 RDS for MySQL 5.7 2024 年 2 月 29 日 (すでに終了) 2027 年 2 月 28 日 RDS for MySQL 8.0 2026 年 7 月 6 日 (1年を切りました) 2029 年 7 月 31 日 RDS for MySQL 8.4 2029 年 7 月 31 日 2032 年 7 月 31 日 標準サポート終了日 延長サポートの終了日 Aurora MySQL 2 (MySQL 5.7互換) 2024 年 10 月 31 日 (すでに終了) 2027 年 2 月 28 日 Aurora MySQL 3 (MySQL 8.0互換) 2027 年 4 月 30 日 2029 年 7 月 31 日 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.major https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html#MySQL.Concepts.VersionMgmt.ReleaseCalendar
  7. © 2025 Insight Technology, Inc. - 11 - やっぱりバージョンアップの影響は心配 RDSバージョンアップの課題感:2023年に弊社で実施したアンケートより

    メジャーバ ージョン マイナーバ ージョン バージョンアップ 経験なし バージョンアップ 経験あり 特に課題なし その他 強制アップデートで、SQLが動かなくなった メジャーバージョンアップは経験したことがない そもそも本番環境で実行されているSQLが不明 スキーマやオブジェクトへの影響が分からない 性能(レスポンス等)への影響が分からない 修正が必要となるSQLの本数が分からない SQLに修正が必要か、影響範囲が分からない DBA (データベース管理者) 不足 特に課題なし そもそも本番環境で実行されているSQLが分からない スキーマやオブジェクトへの影響が分からない 性能(レスポンス等)への影響が分からない 修正が必要となるSQLの本数が分からない SQLに修正が必要なのか、影響範囲が分からない DBA (データベース管理者) 不足 どのような課題があるか分からない 特に課題なし その他 そもそも本番環境で実行されているSQLが分からない スキーマやオブジェクトへの影響が分からない 性能(レスポンス等)への影響が分からない SQLに修正が必要なのか、影響範囲が分からない DBA (データベース管理者) 不足 21% 17% 13% 28% 17% 18% 17% 13% 21%
  8. © 2025 Insight Technology, Inc. ⚫ SQLの仕様変更 - 構文チェックが厳しくなる -

    予約語の追加 ⚫ SQL実行結果が変わる - 演算の仕様変更 ⚫ 関数の仕様変更 - 関数内でのエラーチェックの厳密化 - 動作仕様の変更 ⚫ 性能の変化 - オプティマイザ仕様変更による性能変化 - 14 - DBのバージョンアップでありがちな問題
  9. © 2025 Insight Technology, Inc. - 15 - MySQL 5.7とMySQL

    8.0の非互換例 この中にMySQL 5.7とAurora MySQL 8.0とで挙動が異なるものがあります! 実行SQL 備考 select * from emp; select * from emp e where hiredate >= '1981-05’; select d.loc, count(*) from emp e inner join dept d on e.deptno = d.deptno group by d.loc; select e.empno, e.ename, s.grade salgrade from emp e inner join salgrade s on e.sal >= s.losal and e.sal < s.hisal; select first_value, last_value from testtable;
  10. © 2025 Insight Technology, Inc. - 16 - MySQL 5.7とMySQL

    8.0の非互換例 この中にMySQL 5.7とAurora MySQL 8.0とで挙動が異なるものがあります! 実行SQL 備考 select * from emp; select * from emp e where hiredate >= '1981-05’; 8.0.16でのBug修正 の影響を受けて実行 できない 要クエリ修正 select d.loc, count(*) from emp e inner join dept d on e.deptno = d.deptno group by d.loc; group byの暗黙ソ ート問題 実行結果が変わる select e.empno, e.ename, s.grade salgrade from emp e inner join salgrade s on e.sal >= s.losal and e.sal < s.hisal; 実行計画が変わる (通常は問題はない が、問題となる場合 もある) select first_value, last_value from testtable; 予約語のため実行で きない 要クエリ修正 この他にもクエリキャッシュの機構がなくなったことでselectの実行時間への影響が出ることも!
  11. © 2025 Insight Technology, Inc. ⚫ Identifiers with an initial

    dollar sign. The use of the dollar sign ($) as the initial character of an unquoted identifier was deprecated in MySQL 8.0, and is restricted in MySQL 8.1 and later; using an unquoted identifier beginning with a dollar sign and containing one or more dollar signs (in addition to the first one) now generates a syntax error. ⚫ Unquoted identifiers starting with $ are not affected by this restriction if they do not contain any additional $ characters. ⚫ New Keywords. Keywords added in MySQL 8.4 since MySQL 8.0. Reserved keywords are marked with (R). ⚫ AUTO, BERNOULLI, GTIDS, LOG, MANUAL (R), PARALLEL (R), PARSE_TREE, QUALIFY (R), S3, and TABLESAMPLE (R). - 17 - MySQL 8.0➔8.4でも、、 https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html
  12. © 2025 Insight Technology, Inc. - 18 - MySQL 8.4では以下のクエリはエラー

    実行SQL 備考 create temporary TABLE table3 (PARALLEL int); 予約語 create table tablesample (id int); 予約語 select empno as parallel from emp; 予約語 create temporary TABLE $$tmp_table7 (id int); 識別子の先頭に$
  13. © 2025 Insight Technology, Inc. ⚫ DBの違いやバージョンアップにおける非互換情報などを確認 - ドキュメントとアプリのソースコードから修正が必要な個所を探して修正 →大変

    ⚫ DB移行/バージョンアップ後のテストDBを用意してテスト - テストシナリオに従って動作確認 - →大変 - 20 - 一般的なDBバージョンアップ時の確認手順 弊社ではこういったテストを省力化するツールを開発しています
  14. © 2025 Insight Technology, Inc. - 21 - RDSやAuroraへの移行/バージョンアップを支援する自動テストツール Insight

    SQL Testing ⚫ 現行環境でアプリケーションから発行されたSQLを取込み ⚫ 取り込んだSQLをテスト環境で自動テスト ⚫ テスト結果の確認・評価 (Bedrockで修正提案) RDS/Auroraを使っていると “必ず” バージョンアップは課題になります! 興味のある方は是非ご連絡ください! 宣伝
  15. © 2025 Insight Technology, Inc. - 23 - 会社概要 会社名

    株式会社インサイトテクノロジー 代表者 代表取締役社長 CEO 森田 俊哉 所在地 〒150-0013 東京都渋谷区恵比寿1-19-19 恵比寿ビジネスタワー12階 設立 1995年7月7日 従業員数 133名(2025年4月現在) 事業内容 1.ソフトウェア製品の企画・開発・販売及び保守 2.海外の優良ソフトウェア製品の販売及び保守 3.販売製品の導入コンサルティング・運用支援サービス 4.各種データベース製品の導入・クラウド移行に関するコ ンサルティング 札幌 札幌R&Dセンター 名古屋 西日本支社中部支店 恵比寿 東京本社 大阪 西日本支社 創業よりデータベースに関わる技術を追究し、 DX基盤をプロフェッショナルサービスとともに提供