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も、あわせて試してみてください。クイックスタートで確かめられます。