🐈
[TiDB]DMMのDB移行記事を読んでみて
今回はただ記事を読んでの感想を書くだけ😇
読んだ記事はこちら
DMMがMySQLのリプレース先としてGoogle Cloud SpannerとTiDBを比較、採用したのはTiDB。比較内容や結果を語る
どんな記事?
DMM社がMySQLのリプレース先を検討したお話。
SQLの検討
-
なぜMySQLから脱却したいか?🤔
- ライトインスタンスのスケールアウトが難しいため(リードはスケール可能)
- 理由は以下
- データ整合性の確保
- MySQLのようなリレーショナルデータベースではデータの競合が起こりやすくなるため、複数のノードに対して書き込みが行われると、データの一貫性(整合性)を保つことが難しくなる。
- レプリケーションの非同期性
- MySQLのレプリケーションは非同期または準同期で行われる。リアルタイムではないので、複数のノードに対して書き込みが行われるとデータの一貫性が崩れる可能性がある。
- データ整合性の確保
- 理由は以下
- ライトインスタンスのスケールアウトが難しいため(リードはスケール可能)
-
NoSQLはどうか?🤔
- NoSQLとは
- 非構造化データを保存するために設計されており、JSON や XML などのドキュメント形式でデータが保存される
- ライトがスケールし、バージョンアップ時のダウンタイムもなくせる
- データ構造の変更が必要なのと、学習コストが高いため却下された
- NoSQLとは
-
NewSQLはどうか?🤔
- NewSQLとは
- 従来のデータベースシステムのACID特性(原子性、一貫性、独立性、永続性)を維持しながら、オンライントランザクション処理の作業負荷に対してNoSQLシステムのスケーラビリティを提供しようとするリレーショナルデータベース管理システムの一種(Wikipediaより)
- 特徴
- RDBに比較するとレイテンシーが高くなる
- コストが高くなる
- NewSQLとは
ソフトウェアの検討
- TiDB/TiDB Cloud
- MySQL互換のクエリを使用することができる
- TiFlashで分析処理が可能
- TiDB CloudではAWS上でTiDBのマネージドサービスを使用できる
- Spanner
- GoogleSQLというGoogleオリジナルのSQLを使用する
- Googleのインフラレベルで設計されており、グローバルスケールで高可用性を持つ
結論
DMMは「MySQL互換機能」が決め手となり、TiDBを選択したとのこと
注意
- NewSQLは従来のRDBの上位互換ではない
- それぞれの特性を理解して、適材適所で判断が必要ですね!
感想
DB移行って怖いよね
Discussion