1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

image.png

今回取り組んだ内容

  • TiDBについて調べた
  • Supabaseとの比較を行った
  • ゆるテックアプリのDBとしてTiDBを採用する理由を整理した

なぜやろうと思ったか

ゆるテックアプリをCloudflare Workersでデプロイすることにし、せっかくだからDBも使ったことないやつ使おうと思ったから。
最近Supabaseばっかり使ってて違うのを使いたかったから。


学んだこと

1. TiDBとは?

MySQL互換でありながら、水平スケールアウトが可能なオープンソースの分散データベース(NewSQL)。
フルマネージドの無料枠「TiDB Cloud Serverless」は、月25GB・5000万RUまで無料で使える。

TiDBは、PingCAP社によって開発されたオープンソースの分散型データベースであり、NewSQLの1つです。従来のRDB(リレーショナルデータベース)では、整合性・一貫性を保てるものの、大量データの読み書きが行われる大規模で複雑な環境には、対応が困難という課題がありました。NewSQLは、RDBのように整合性、一貫性を保ちつつ、分散環境の仕組みによりスケーラビリティとパフォーマンスの課題を解決しています。
「RDBの使いやすさ」と「NoSQLのスケーラビリティ」を両立!
引用元:https://products.sint.co.jp/blog/tidb

クレカ登録いらないのがありがてぇ

ちなみに↓

  • TiDB = オンプレミスやAWS・GCP・AzureのVMに自分で構築する。
  • TiDB Cloud = TiDBをクラウドで利用するサービス。接続情報を設定するだけで利用可能。
    今回はTiDB Cloudを使ってみました。

Supabaseとの比較

項目 TiDB Cloud Supabase
ベース MySQL互換 PostgreSQLベース
提供機能 データベースに特化 データベース、認証、ストレージ、リアルタイム機能などを提供
スケーリング 自動で水平スケール可能 PostgreSQLをベースにスケール(プランに応じた制限あり)
エッジ環境との相性 @tidbcloud/serverless によりHTTP経由で接続でき、Cloudflare Workersとの相性が良い PostgreSQL接続またはSupabaseクライアント経由が基本で、エッジ環境では接続方法に工夫が必要

2. やってみた結果

  • ゆるテックアプリの環境(Cloudflare Workers)において、TCP接続の制限を回避し、HTTP経由でスムーズにDB接続できた。
  • drizzle-orm/mysql-core などのMySQL用ORM資産をそのまま流用できた。
  • 認証やストレージは別途用意する必要があった。
  • 分散型処理であったりスケールアップが簡単っていう特徴から、大規模案件に向いているDBだと言える。
  • 個人開発だと恩恵を感じる部分が少ないかもと思った。

使用過程のストレス度
アカウント登録してconnectボタンからデータベースURLコピーしてくるだけなのでめちゃ簡単でした!ストレス無し:thumbsup:

沼ったポイント(あれば)

原因

  • Cloudflare Workersでは標準でTCP接続が使えないため、通常のDB接続(MySQLやPostgreSQLの標準ドライバ)がエラーになる。

解決方法

  • TiDBが提供しているサーバーレス用HTTPドライバ(@tidbcloud/serverless)を使用することで、エッジ環境からでも問題なくDBへアクセスできるようになった。

感想

  • 認証・DB周りをパッと実装したい場合→Supabase
  • 将来のスケーラビリティも考えたい場合→TiDB
    といったように使い分けするといいかもですね

  • Supabase以外の無料で使えるDBを知れてよかった。
  • Supabaseみたいになんでもできるわけじゃないため、認証などは自前で組む手間はあるけども、機能がDBだけなので割とお手軽に使える感じがした。

来週やりたいこと

・いいかげんSQL

参考記事:https://qiita.com/RyutoYoda/items/f5e9346b23aa52b78f00

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?