【ヴァイテス】

Vitess とは?

最終更新:
💡 複数のMySQLをまとめて動かす、データの指揮者

Vitessは、複数のMySQLをまとめて管理し、データを分割して規模を広げるシステムです。VTGateによる振分け、シャーディングの設計、MySQLとの互換性の確認点を説明します。

📌 このページのポイント
MySQLの分割と振分けを支えるアプリVTGateSQLを振り分けるSQLMySQLシャードAMySQLシャードB✓ 分け方・SQL・運用を設計する
振分けを示す概略です。各MySQLにはVTTabletなどの管理部品があり、互換性やトランザクションの条件も確認します。
ひよこ ひよこ
MySQLは、1台でしか動かせないの?
ペンギン先生 ペンギン先生
MySQLにもレプリケーションなど、複数台を使う構成があるよ。Vitessはデータをシャードへ分割し、それらのMySQLをまとめて扱う仕組み。容量や処理の規模を広げるために、アプリとMySQLの間に入るんだ。
ひよこ ひよこ
どのデータベースに送るか、誰が決める?
ペンギン先生 ペンギン先生
アプリはVTGateという入口へ接続する。VTGateがSQLを受け取り、設定されたデータの分け方に従って必要なシャードへ振り分けるよ。MySQLごとの管理を担うVTTabletなど、ほかの部品もあるんだ。
ひよこ ひよこ
入れるだけで、全部自動的に速くなる?
ペンギン先生 ペンギン先生
データの分け方や検索の形を設計する必要があるよ。ひとつのシャードで済む要求と、複数へ問い合わせる要求では負担が違う。シャード数を増やせば、どんなSQLも速くなるというわけではないね。
ひよこ ひよこ
MySQL用のアプリは、そのまま使える?
ペンギン先生 ペンギン先生
MySQL互換の接続を利用できるけれど、機能やSQLの対応に違いがあるよ。公式の互換性資料で、トランザクションや利用するSQLを確認する。移行前に、実際のアプリとデータで動作を検証しよう。
ひよこ ひよこ
YouTubeとの関係は?
ペンギン先生 ペンギン先生
YouTubeでMySQLの拡大を支えるために作られ、オープンソースとして公開されたよ。CNCFの卒業プロジェクトでもある。ただし卒業は、あらゆる用途の性能や安全性を保証する印ではない。自分の必要に合うかを確かめることは必要だね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Vitess」って出てきたら「複数のMySQLをまとめて管理し、規模を広げるシステム」と思えばだいたいOK!
📖 おまけ:英語の意味
「Vitess」 = MySQLのクラスタリングシステムの名前
💬 YouTubeでMySQLの規模を広げる課題から生まれたプロジェクトだよ。

参考資料

← 用語集にもどる