OSSデータベース取り取り時報

第69回 新しいSQL構文”PLEASE句”の実装!?,MySQL 8.0.24リリース&マニュアル日本語化,PostgreSQLエンタープライズ・コンソーシアム報告会がまもなく

この記事を読むのに必要な時間:およそ 3 分

この連載では,OSSコンソーシアム データベース部会のメンバーが,さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。

新しいSQL構文”PLEASE句”の実装!?

昨今ポリティカル・コレクトネスが話題となる機会が多いなか,差別的になり得るIT関連の用語の変更が『ニューヨーク・タイムズ』紙でも話題となっていました。この記事の中ではMySQLが例として取り上げられ,20年前にリリースされたMySQL 3.23.15以来使用されてきたレプリケーション関連の用語を2020年に変更したことが紹介されていました。

きっかけは1本のブログ

2021年4月に日本MySQLユーザ会の副代表である坂井 恵さんがブログを公開し,データベースに対してもSQL文の実行を「命令」するのではなく「依頼」する構文の必要性を訴え,"MySQレ"の新機能として⁠PLEASE句⁠を提唱されました。その後の動きは素早く,同じく日本MySQLユーザ会の副代表のyoku0825さんがパッチを作成してGitHubで公開されました。PLEASE句が無いとMySQLがヘソを曲げて応答性能が遅くなる仕組みも組み込まれています。さらにsql_modeにSTRICT_PLEASE_MODEが用意され,有効にするとPLEASE句が無いとエラーを返す挙動になるところまで実装されています。

広がるデータベース・コミュニティの輪

上記からリンクされたブログをお読みになった方はお気づきかと思いますが,⁠PLEASE句⁠の実装はあくまでも坂井さんが投入された今年のエイプリルフールのネタです。ただ単にブログが出て終わりではなく,実際にパッチが作成され,さらに広がりを見せたのがこのテーマの興味深い点です。

MySQLユーザ会のなかで盛り上がりを見せると,すぐに反応されたのがPostgreSQLの主要コントリビューターでもある澤田さんで,すぐにPostgreSQLにもPLEASE句を実装し,さらにさまざまな工夫も追加されています。

続けてOracle Database,Spark SQL,SQL Server,さらにRedis,SQLite3まで実装の試みが行われ,データベース製品や技術を超えたお祭り模様となりました。実装の面ではやはりオープンソース製品は製品本体の改変を行える分,意図した挙動に楽に持って行くとことできている印象です。

この話題をテーマにしたユーザ会合同のイベントが4月12日に開催され,当日の模様はYouTubeにも掲載されていますので,製品別にSQL構文の拡張やそれに準ずる実装に興味のある方はぜひご覧ください。

[MySQL]2021年4月の主な出来事

2021年4月のMySQLの製品リリースは,MySQLサーバー8.0.24,5.7.32の各マイナーバージョンをはじめ,MySQL NDB Clusterや各種Connector, MySQL Shell, MySQL Workbenchなどのクライアントプログラムの商用版およびコミュニティ版のほぼ全ての製品のマイナーバージョンアップが行われました。なおMySQL 5.6は1月にリリースされた5.6.51が最終のメンテナンスリリースとなり,今後はごく例外的な状況を除いてセキュリティパッチなども提供されなくなりますので,ご利用中の方はMySQL 8.0などへのバージョンアップをご検討ください。

MySQL 8.0 & MySQL Shellリファレンスマニュアル日本語化

第67回でご紹介したとおり,MySQL 8.0のリファレンスマニュアルおよびMySQLの新しいクライアントプログラムであるMySQL Shellのユーザーガイドが日本語化され,4月下旬に公開されました。

日本語化にあたっては基本的に機械翻訳による対応が行われ,その後,日本MySQLユーザ会の方々によってバグレポートの形で課題をご報告いただきました。

MySQL 8.0.24の新機能

MySQL 8.0.24の主な新機能は下記の通りです。MySQLサーバー開発チームのブログでもMySQL 8.0.24の新機能の紹介がされています。

オプティマイザーのさらなる改善
MySQL 8.0 GA以降も積極的な機能改善が行われているのがオプティマイザーです。8.0.24では,相関スカラーサブクエリに対しても従属テーブルの最適化が適用されます。
タイムアウト時のエラーメッセージ変更
これまでのMySQLではwait_timeoutやinteractive_timeoutによってMySQLサーバーが接続を切った場合でも勝手に接続が切れたりサーバーがいなくなったようなエラーメッセージだったものが,タイムアウトによりサーバーがクライアント接続を切断したことを明示するメッセージに変更。
グループレプリケーションの参加許可IPの動的変更
システム変数group_replication_ip_allowlistで設定可能な,どのホストをグループレプリケーションへの参加を許可するかの設定allowlistの値を動的に変更可能に。これまでは参加を許可するホストの変更にはグループレプリケーションの停止が必要。
InnoDBの表領域のAUTOEXTEND_SIZEの上限拡大
MySQL 8.0.23から追加された,テーブルごとにInnoDBの表領域が作成されている場合の自動拡張サイズを設定するAUTOEXTEND_SIZEの上限が,64MBから4GBに。

またHeatWaveも8.0.24にバージョンアップしており,INSERT ... SELECT文がサポートされ,SELECT部分の処理はHeatWaveクラスターで実行され,MySQLノードのテーブルにデータが追加されます。またHeatWaveでサポートされていないデータ型に対する処理を実行した場合はエラーメッセージにどのデータ型が原因かが出力されるようになっています。

バックナンバー

OSSデータベース取り取り時報

バックナンバー一覧