MySQL xxx:xxx ssl JS > util.checkForServerUpgrade()
The MySQL server at xxx:xxx, version 5.7.12-log - MySQL Community
Server (GPL), will now be checked for compatibility issues for upgrade to MySQL
8.0.32...
中略
1) Usage of db objects with names conflicting with new reserved keywords
Warning: The following objects have names that conflict with new reserved
keywords. Ensure queries sent by your applications use `quotes` when
referring to them or they will result in errors.
More information:
https://dev.mysql.com/doc/refman/en/keywords.html
xxx.xxx.rank - Column name
xxx.xxx.rank - Column name
xxx.xxx.rank - Column name
4) Usage of utf8mb3 charset
Warning: The following objects use the utf8mb3 character set. It is
recommended to convert them to use utf8mb4 instead, for improved Unicode
support.
More information:
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html
xxx - schema's default character set: utf8
xxx.xxx.xxx - column's default character set: utf8
xxx.xxx.xxx - column's default character set: utf8
xxx.xxx.xxx - column's default character set: utf8
以下略
変更前のクエリは実行計画で Using temporary, Using filesort が発生していたのですが、比較演算子の変更によりこれらは解消されました。
なぜこのスロークエリが発生したのか、また等価比較の変更でなぜ Using temporary, Using filesort が解消され、パフォーマンスが向上したのかは不明です。
とはいえ事前検証をもう少し入念にしておけば Prd 環境のアップグレード後に慌てる必要はなかったため反省点でした。
非推奨文字セット・照合順序変更の DDL の対応コスト
MySQL8.0 から utf8mb3 が非推奨になります。デフォルトの文字セットが utf8mb4 になり、照合順序が utf8mb4_0900_as_ci となる仕様変更もあります。utf8mb3 を使用している箇所があったため、アップグレードに伴いデフォルトの文字セットおよび照合順序を変更する DDL を実行しました。DDL の実行には数時間(おおよそ3時間程度)かかりましたが、事前に Green 環境で実施したため、運用中のデータベースや計画停止作業に影響はありませんでした。ただし、事前対応の準備コスト(DDL 実行時間を見積もった上で逆算し、 Green 環境の構築と DDL 実行を行う等)があるため、場合によっては他の方法を検討する必要がありそうです。
ついでにGPTs Actions側で設定するOpen API Schemeも晒しておきます。xxx部分は各自のサービスに合わせて置き換えてください。なお、Notionのワークスペースから全てのデータベースから検索してもらうこともできるのですが、セキュリティ面を考慮し、機密性が低いデータベースのみ今回は対象としました。
これまでもChatGPTをはじめとした生成AIサービスは使っていましたが、今回自分で手をちゃんと動かして学ぶことで生成AIの活用スキルが身体知になった感覚があります。また、NewsToyのようなサービスはこれまでtoC向けソフトウェアとして商業的な価値がありましたが、これぐらいのレベルであれば誰でもすぐにつくれてしまうので「Software is eating the world」から「Generative AI is eating software」の時代が本格的にやってきたと感じました。