🐈

[TiDB]DMMのDB移行記事を読んでみて

2024/09/11に公開

今回はただ記事を読んでの感想を書くだけ😇
読んだ記事はこちら
DMMがMySQLのリプレース先としてGoogle Cloud SpannerとTiDBを比較、採用したのはTiDB。比較内容や結果を語る

どんな記事?

DMM社がMySQLのリプレース先を検討したお話。

SQLの検討

  • なぜMySQLから脱却したいか?🤔

    • ライトインスタンスのスケールアウトが難しいため(リードはスケール可能)
      • 理由は以下
        • データ整合性の確保
          • MySQLのようなリレーショナルデータベースではデータの競合が起こりやすくなるため、複数のノードに対して書き込みが行われると、データの一貫性(整合性)を保つことが難しくなる。
        • レプリケーションの非同期性
          • MySQLのレプリケーションは非同期または準同期で行われる。リアルタイムではないので、複数のノードに対して書き込みが行われるとデータの一貫性が崩れる可能性がある。
  • NoSQLはどうか?🤔

    • NoSQLとは
      • 非構造化データを保存するために設計されており、JSON や XML などのドキュメント形式でデータが保存される
      • ライトがスケールし、バージョンアップ時のダウンタイムもなくせる
    • データ構造の変更が必要なのと、学習コストが高いため却下された
  • NewSQLはどうか?🤔

    • NewSQLとは
      • 従来のデータベースシステムのACID特性(原子性、一貫性、独立性、永続性)を維持しながら、オンライントランザクション処理の作業負荷に対してNoSQLシステムのスケーラビリティを提供しようとするリレーショナルデータベース管理システムの一種(Wikipediaより)
    • 特徴
      • RDBに比較するとレイテンシーが高くなる
      • コストが高くなる

ソフトウェアの検討

  • TiDB/TiDB Cloud
    • MySQL互換のクエリを使用することができる
    • TiFlashで分析処理が可能
    • TiDB CloudではAWS上でTiDBのマネージドサービスを使用できる
  • Spanner
    • GoogleSQLというGoogleオリジナルのSQLを使用する
    • Googleのインフラレベルで設計されており、グローバルスケールで高可用性を持つ

結論

DMMは「MySQL互換機能」が決め手となり、TiDBを選択したとのこと

注意

  • NewSQLは従来のRDBの上位互換ではない
    • それぞれの特性を理解して、適材適所で判断が必要ですね!

感想

DB移行って怖いよね

参照

Discussion