More info...

2016-09-29

MySQL 5.7新機能解説:レプリケーション、セキュリティ編

今月の頭、詳解MySQL 5.7の出版記念第一弾として、MyNA(日本MySQLユーザ会)名義でイベントを行ったので、その際使用したスライドを紹介しておこう。今回紹介した新機能のカテゴリは2つ。レプリケーションとセキュリティである。レプリケーションはMySQLの運用と切っても切り離せないほど重要なものであり、そしてデータベースサーバーにとってセキュリティが重要であることは、言うまでもないだろう。

レプリケーション


今回のバージョンでは、レプリケーションが大きく進化している。

まず、MySQL 5.7では、レプリケーションのトポロジの限界を打ち破った!!MySQL 5.6までのバージョンでは、スレーブはひとつのマスターしか持つことができないという制約があったのだが、それがなくなった。すなわち、スレーブが複数のマスターからデータを連続的に複製することができるようになったのである。それにより、これまで以上に様々なトポロジを取ることが可能になった。例えば複数のMySQLサーバーインスタンスのデータを集約し、一括してバックアップを取ったり、シャーディングをおまとめしたり、という具合である。

もうひとつオススメしたい新機能は、マルチスレッドスレーブの進化である。MySQLレプリケーションのスレーブは、皆さんよくご存知のとおり、IOスレッドとSQLスレッドという2種類のスレッドにより処理されている。そういう意味では元からマルチスレッドじゃないか!!というツッコミもあるだろう。だが、MySQL 5.5までのバージョンでは、それぞれのスレッドは一つしか作成されなかった。これは、複数のスレッドで同時にガンガン更新を行うマスターに比べて、スレーブが遅延する原因となってしまっていたのである。そこで、MySQL 5.6でSQLスレッドを複数化する機能が加わったのだが、この時点ではまだ複数化の単位がデータベースごとという大きな制約があり、使い物にはならなかった。MySQL 5.7ではその制約がなくなり、例え同一データベース内のテーブルを更新する場合であっても、複数のスレッドによって処理することができるようになったのである。

セキュリティ


先日の、MySQL 8.0.0 DMRについて紹介した記事では、ロールが追加されたことを紹介した。皆さんに色濃く印象づけて覚えて頂くために、えの素をネタに挟んで解説したが、ロールは極めて便利な機能であると言える。MySQL 5.7では、そこまで抜本的な機能追加はないものの、セキュリティを向上させるための嬉しい機能が多数追加されている。例えばSSL環境のセットアップの簡略化などである。

マルチスレッドスレーブの詳細 by 瀬島さん


ユーザー会では、言わずと知れたInnoDB大好きMySQLerの瀬島さんによる、マルチスレッドスレーブのディープな解説が行われた。バイナリログとInnoDBの2PCなどについて詳しく解説されており、詳細を知りたい人はぜひ見て欲しい。

詳解MySQL 5.7で詳しく解説!!

もちろんだが、ユーザ会会で解説したような内容は、詳解MySQL 5.7でもきちんと解説している。むしろ書籍のほうが本命であり、スライドはチラ見せレベルだと考えて作成した。読むとMySQL 5.7にしたくなるともっぱらの噂ではあるが、MySQL 5.7は非常に改良点が多く有用なバージョンなので、ぜひその誘惑に乗ってバージョンアップをしてもらいたいところである。

0 件のコメント:

コメントを投稿