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

第60回 ついに連載が満5歳! MySQL 8.0.21リリース,次バージョンPostgreSQL 13情報が続々

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

この連載では,OSSコンソーシアム データベース部会のメンバーが,さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。今回は第60回で満5歳となりました。読者のみなさま,これまで執筆に関わっていただいた方,関係者のみなさまにお礼を申し上げます。次号からは6年目に入りますが,引き続きよろしくお願いいたします。

オープンソースカンファレンス2020 Online/KyotoでOSSデータベース特設トラック

オープンソースカンファレンス(OSC)オンライン京都にて,OSSデータベース特設トラックを設けます。今回はオープンソースビジネス推進協議会(OBCI)と他協賛企業が連携し,OSSコンソーシアムも協力して8月28日(金)午後に実施します。

OSSデータベース特設トラック概要

日時 8月28日(金)13:00 または 14:00スタート
プログラム
  • OBCIセミナー(特徴あるDBエンジンを取り上げる予定)
  • MySQL関連(日本オラクル MySQL GBU担当)
  • PostgreSQL関連(SRA OSS Inc. 担当)
  • パネルディスカッション「多様性時代のDB選択」

[MySQL]2020年7月の主な出来事

2020年7月にはMySQLサーバー8.0.21,5.7.31,5.6.49の各マイナーバージョンをはじめ,商用版およびコミュニティ版のほぼ全ての製品のマイナーバージョンアップが行われました。

MySQL 8.0.21の新機能

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

InnoDBストレージエンジンのトランザクションログ無効化

大量データのロード時やレプリケーションのレプリカの初回データロードなどに,一時的にトランザクションを記録するInnoDBログを一時的に無効にできるDDL文ALTER INSTANCE DISABLE INNODB REDO_LOGが追加されました。DISABLEをENABLEに置き換えると再度有効になります。トランザクションログが無い状態となるので更新処理中にクラッシュが起きるとデータを失うリスクはありますが,すでにOracle ACEの三谷さんブログでも性能検証をされているとおり,データロード時の非常に大きな性能向上が見込めます。

JSON_VALUE()関数の追加

JSON_VALUE()関数はJSONドキュメントの値を取得するJSON_EXTRACT()関数にCAST()関数を組み合わせたように,指定した型で値を返す関数です。返すべき値がない場合のエラーハンドリングとして,単にエラーを返すかデフォルト値を返すかも関数の引数に指定できます。JSONドキュメントに対するインデックスの作成もJSON_VALUE()関数を利用することで生成列(Generated Column)を作成せずに可能となっています。下記はJSON_VALUE()関数のリファレンスマニュアルで紹介しているインデックス作成方法の違いの例です。

# 生成列を利用した場合
CREATE TABLE t2 (
    j JSON,
    g INT GENERATED ALWAYS AS (j->"$.id"),
    INDEX i1 (j)
);

# JSON_VALUE関数を利用した場合
CREATE TABLE t1(
    j JSON,
    INDEX i1 ( (JSON_VALUE(j, '$.id' RETURNING UNSIGNED)) )
);
mysqldump実行時にPROCESS権限が必須に

mysqldumpコマンドで--no-tablespacesオプションを利用しない場合はPROCESS権限が必須になりました。当初mysqldumpコマンドのリファレンスマニュアルに記載されていなかったため,MySQL 8.0.21リリース直後にバグとして報告されていました。

グループレプリケーションのデフォルト設定一部変更

ネットワークの一時的な分断やサーバーの応答性能の一時的な低下が発生した際に,誤ってグループから離脱しないように,デフォルトで10秒(group_replication_member_expel_timeout=5)無応答のサーバーをグループから切り離すまで待つようになりました。MySQL 8.0.20まではこのパラメタがデフォルトで0秒だったため,5秒待って切り離す設定でした。切りはなられたノードが自動的に復帰を試みる回数group_replication_autorejoin_triesもデフォルト値0から3となり,なるべく自動で復旧できる方向に変更されています。MySQL高可用性構成チームのブログでも紹介されています。

このほか,UPDATE文やDELETE文の中でサブクエリがINやEXISTSなどを使っていた場合に Multi-Table Trickと呼ばれるクエリチューニングの小技が使われることがありましたが,MySQL 8.0.21ではUPDATE文やDELETE文でもセミジョインやサブクエリのマテリアライズが行われるようになったためこの小技は使う必要がなくなりました。⁠MySQL 8.0 の薄い本」でおなじみの@hmatsu47さんブログで解説されています。

日本MySQLユーザ会会(MyNA会) 2020年7月

雑誌やWebでの連載,Webの定期更新を行っている方々がそれぞれの記事の紹介や書くことによるメリット,また悩みなどを語る日本MySQLユーザ会のオンラインイベントが開催されました。それぞれ記事を書く間隔はさまざまですが,定期的に新しいネタを探し続ける難しさや楽しみは講師の間でも共感されており,またマイナーバージョンアップにも関わらず毎回新機能が追加されリリースノートも長いため読むのが大変といった話が出ていました。

このイベントで紹介された連載や定期更新は以下の通りです。もちろんこのOSSデータベース取り取り時報もそのひとつです。

当日の動画は日本MySQLユーザ会のYouTubeチャンネルに掲載されており,また関連ツイートはTogetterにまとめられているのでぜひご覧ください。

ちなみに,イベント名が「日本MySQLユーザ⁠会会⁠⁠」となっていて打ち間違いのように思われる方もいらっしゃるかもしれませんが,⁠日本MySQLユーザ会」というグループの「会合」のようなニュアンスなので間違いではないとのことです。

8月以降も続くMySQL関連イベントの数々

オンラインでのセミナー開催がこれまで以上に一般的となり,会場の手配が不要で気軽にセミナーを開催できるようになったこともあり,8月以降もMySQL関連のイベントがいろいろと予定されています。

本記事の最後のイベント一覧にも掲載されていますが,8月26日の夜にはMySQL Technology Cafeの第9回として日本MySQLユーザの代表,副代表が登壇するイベントや,翌27日午後にはKDDIでのMySQL 8.0導入事例が紹介される予定のMySQL Virtual Day Event in Japan, さらにその週末にOSC 2020 Online/Kyotoでのセッションが予定されています。9月も日本MySQLユーザ会や日本オラクルのMySQLチーム主催のイベントが複数開催される可能性があるとのことです。

著者プロフィール

梶山隆輔

MySQL Sales Consulting Senior Manager。

日本オラクル(株)において,MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて,オーストラリア,インド,台湾などに在籍するチームメンバーを束ね,アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。


溝口則行(みぞぐちのりゆき)

TIS株式会社

OSSコンソーシアム副会長,オープンソースビジネス推進協議会(OBCI)副理事長。その他,PostgreSQLエンタープライズ・コンソーシアム(PGECons),日本OSS推進フォーラムなどにも少しずつ関与。勤務先メンバに,PostgreSQL,Zabbix,Ansibleやコンテナ技術などに強みのある癖のある芸人を抱え,タレントマネージャ業が中心になりつつある。