【てぃーあいでぃーびー】

TiDB とは?

💡 トランザクションも分析も、1つのDBでまるっとこなす万能選手
📌 このページのポイント
TiDB アーキテクチャ TiDB Server(SQLレイヤー) MySQL互換 / クエリ解析・最適化 TiKV(行ストア) OLTP(トランザクション処理) Node 1 Node 2 Node 3 TiFlash(列ストア) OLAP(分析処理) Node 1 Node 2 Node 3 Raft PD(Placement Driver) スケジューリング・メタデータ管理 HTAP(OLTP + OLAP)
TiDB のアーキテクチャ(TiDB Server + TiKV + TiFlash)
ひよこ ひよこ

TiDBってMySQLと何が違うの?同じSQLが使えるなら同じじゃない?

ペンギン先生 ペンギン先生

SQL互換性はあるけど、中身の仕組みが全然違うんだ。MySQLは基本的に1台のサーバーで動くけど、TiDBは最初から複数のサーバーに分散して動くように設計されているよ

ひよこ ひよこ

分散すると何がうれしいの?

ペンギン先生 ペンギン先生

データ量やアクセスが増えても、サーバーを追加するだけでスケールできるんだ。MySQLだとシャーディングという面倒な作業が必要になるけど、TiDBはそれを自動でやってくれるよ

ひよこ ひよこ

HTAPってよく聞くけど、具体的にどういうこと?

ペンギン先生 ペンギン先生

普通はトランザクション処理(OLTP)用のDBと分析処理(OLAP)用のDBを別々に用意するんだけど、TiDBはTiKVが行単位の高速な読み書き、TiFlashが列単位の高速な分析を担当して、1つのシステムで両方できるんだ

ひよこ ひよこ

TiKVとTiFlashって別々のストレージなのにデータは同期されるの?

ペンギン先生 ペンギン先生

いい質問だね。TiKVのデータがRaftプロトコルでリアルタイムにTiFlashにレプリケートされるから、分析クエリでも常に最新のデータが見えるよ。これがTiDBの強みの一つだね

ひよこ ひよこ

GoogleCloud Spanner とはどう違うの?

ペンギン先生 ペンギン先生

Cloud SpannerはフルマネージドだけどGoogle Cloud専用。TiDBはオープンソースだからオンプレミスでもどのクラウドでも動かせるのが大きな違いだよ。MySQL互換という点でも移行のハードルが低いんだ

ひよこ ひよこ

実際どんな企業が使ってるの?

ペンギン先生 ペンギン先生

中国のByteDance(TikTokの親会社)やJD.com、日本でもメガベンチャーが採用を始めているよ。大量のデータをリアルタイムに処理しつつ分析もしたい場面にピッタリなんだ

ひよこ ひよこ

じゃあMySQLから乗り換える価値はある?

ペンギン先生 ペンギン先生

データ量が数TB以上でスケーラビリティに悩んでいるなら十分検討する価値があるよ。ただし小規模なシステムなら素のMySQLのほうがシンプルで運用しやすいから、規模と要件に合わせて選ぶのが大事だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「TiDB」って出てきたら「MySQL互換でトランザクションも分析もできる分散データベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「Titanium Database」 = チタニウムデータベース
💬 チタンのように強靭で頑丈なデータベースという意味が込められているよ。Tiは元素記号のチタンからきているんだ
← 用語集にもどる