asopi tech
asopi techIndie Developer

Asopitech VS

SurrealDB vs Alopex DB

SurrealDBのマルチモデルの設計、配置の形、ストレージ、ベクトル索引を、Alopex DBと比べて紹介します。

更新: 2026/10/12

SurrealDBとは

SurrealDBは、Rust製のマルチモデルデータベースです。1つのエンジンで、ドキュメント、グラフ、ベクトル、全文、時系列、地理空間、リレーショナルのテーブルを保存し、1つの問い合わせ言語SurrealQLで、1つのトランザクションの中で読み書きします。CLIとサーバーは、1つのRustの実行ファイルです。

仕組み

  • 計算とストレージ:クエリを処理する層と、ストレージの層が分かれています。同じSurrealQLとSDKのまま、組み込み、単一ノード、分散、マネージドを切り替えます。
  • 組み込み:Rust、Go、JavaScript/TypeScript、WebAssembly、Python、.NETに組み込めます。ストレージは、SurrealMX(メモリ)、SurrealKV(beta)、RocksDB、IndexedDB(ブラウザ)から選びます。
  • 単一ノードと分散:単一ノードではRocksDBを推奨しています。分散では、複数のクエリノードが、共有の分散トランザクションストレージを使います。
  • トランザクション:分離はスナップショット分離です。書き込みの競合は、コミット時に検出します。

主な機能

HNSW(コサイン、ユークリッド、マンハッタン)と、3.1以降のDISKANNでベクトルを検索します。索引がなければ総当たりで検索します。BM25の全文検索、テキストとベクトルを組み合わせたRRFのハイブリッド検索、グラフの走査、ライブクエリ、GraphQLとREST、権限とマルチテナントを持ちます。

制限

  • 問い合わせ言語は、独自のSurrealQLです。公式は、SQLの形を保つと説明しています。
  • 分離レベルは、スナップショット分離の1つです。競合したトランザクションは、やり直します。
  • 単一ノードは、垂直にだけスケールし、分散の耐障害性を持ちません。
  • セルフホストで複数ノードのクラスタを組むには、Enterprise版を使います。マネージドでは、Scaleプラン(最小3計算ユニット)です。
  • 組み込み向けのSurrealKVはbetaです。公式は、保守的な本番ではRocksDBを推奨しています。
  • RocksDBはC++のライブラリで、Rustに組み込むときにC++コンパイラとlibclangが要ります。
  • 3.3.0以降、メモリ用のSurrealMXは、バージョン付きの問い合わせに対応しません。
  • 公式は、HNSWをグラフがメモリに余裕をもって収まる場合に使い、それより大きい場合はDISKANNを使うよう説明しています。

Alopex DBとの違い

どちらも、Rust製のマルチモデルデータベースで、組み込みからサーバー、クラスタまで広げられ、ベクトル検索を持ちます。

Alopex DBは、SQLで問い合わせ、列指向のテーブルを本体に持ちます。データは .alopex の1つのファイルにまとまります。クラスタの部品である関連製品のChirpsは、オープンソース(Apache-2.0またはMIT)として公開しています。

Rust製の単一バイナリで、組み込みからサーバーまで同じデータを扱えるAlopex DBも、あわせて試してみてください。クイックスタートで確かめられます。

参考資料

関連ページ