2025.9.30 ブログ

ちかごろの DB アレコレ

チーム内で共有できるDBを探していて、気になったのでメモしました。しばらく、MySQLばかり使ってきたんだな・・・と、思いました。

そもそも、DB探しをしたのは、なぜかというと、エクセルで進捗管理していて、バーンダウンチャートをグラフ表示するために、数式を山ほど仕込んで、数式の意味が、どんどんわからなっていって、メンテナンス不能になったというのが、キッカケです。
いっそ、DBで管理して、エクセルからは、データソースとして DB を検索集計して、グラフ化したらよいんじゃないかと考えて、でも、DB をインストールするサーバーがないので、何かよい方法はないだろうかと、WEBを検索したのでした。

SQLite

いまさらですが、誰もが知ってる SQLite です。
ただ、これだと、チーム内の全員で共有するには、どうしたらよいんだろう・・・と、さらに検索してみると、「Lambda + EFS で SQLite をストレージに使う」という記事をよく見かけました。
そもそも、AWS使えないので却下なのだけど、この構成だと、同時アクセスがあったときに、ファイルオープンが競合して、エラーになりそうだよね。マネしない方がよいなと、読み飛ばしました。

同じく、ファイルサーバーで共有するのも、ダメなのは、言うまでもありません。

rqlite

SQLite をクラスター化してくれるツール
https://github.com/rqlite

チーム内の全員が SQLite をインストールして、rqlite でクラスター化すると同期されるから、良いんじゃないかと思ったのだけど、リーダーノード(マスターノード)を決めて、それに対して、SQLを投げないといけないので、リーダーノードのPCが起動してないと使えないという、風邪引いてもPCだけは起動しなくてはいけない不自由さで、不採用としました。

PostgreSQL

人気 NO.1 DB は、MySQLかと思いきや、今は、PostgreSQL  が一番人気なんですね。
https://www.sbbit.jp/article/cont1/155196

さらに、psql は mysql よりも、いろいろ高機能化してることを、知りました。

  • 全文検索の機能がある
    • これはmysqlにもあるが。
  • マテリアライズドビュー
    • ずっと何年も前から実装されてたのね、MySQLにこの機能があったらいいのに・・・と思ったことが何度あったことか。
  • ベクトルDB
    • LLMには欠かせない

psql だけでも、さまざまなシステムの構築ができそうですね。

今回の用途には、使えないのは、rqlite と同じく、常に起動してないといけないからです。

見つけたら教えてください

他にも OrbitDB や、YugabyteDB なども調べてみましたが、用途には合わず、この日は、結局、最適なものを見つけられずに、終わりました。

p2pで動いてSQLが使える軽いDBがあったら、ぜひ、教えてください。