Frequently Asked Questions
View some of the frequently asked questions regarding SurrealDB, SurrealQL, and SurrealKV. Questions which are frequently asked across our GitHub, Discord and other social platforms will be added here from time-to-time.
Is SurrealDB ready for production use?
SurrealDB is currently in version which is a stable version. There are a number of features and performance improvements being worked on before a production-ready release.
-
We now have a query planner that may identify the possibility of using indexes (unique and non-unique). It all depends on the complexity of the query. This is where the EXPLAIN clause (for
SELECT
statements) is useful, as it tells if any index is being used. -
Improvements to how data is managed before being serialised to disk, reducing the amount of data cloning and copying within the database processing runtime. These changes will improve the performance of writing to, and reading from, the underlying storage engine, and will have a significant impact on performance and query speed.
-
Improvements to how data is cloned and copied within the database processing runtime, and within the Rust programming language. Currently when comparing values or filtering on values, certain data is cloned and copied unnecessarily. Improvements to this behaviour will have a significant impact on performance and query speed.
-
Improvements to how data is serialized to disk. Currently when serializing data to disk, the serialization technique is more verbose than necessary, increasing the size of the data residing on disk. Improvements to this behaviour will have a significant impact on disk storage and query performance.
Where can I find the latest features?
Once features are released, we document them in our release notes and on our features page, which is a great place to understand capabilities.
You can also check some of our new features for :
How do I scale SurrealDB?
SurrealDB can be scaled vertically on a single-node, by adding more compute power and memory to a server instance. SurrealDB can also be scaled horizontally by sitting infront of, and connecting to a TiKV to store data. TiKV is a highly scalable, low latency, and easy to use key-value datastore. TiKV supports raw and transaction-based querying with ACID compliance, and support for multiple concurrent readers and writers. The design of TiKV is inspired by distributed systems from Google, such as BigTable, Spanner, and Percolator, and some of the latest achievements in academia in recent years, such as the Raft consensus algorithm. , or FoundationDB distributed cluster. When running in this mode, SurrealDB offloads the storage to the key-value store, operating as an advanced query engine layer. It is then possible to increase the number of SurrealDB nodes as required, in order to handle the query and transaction processing requirements.
What is the license for SurrealDB?
Source code for SurrealDB is variously licensed under a number of different licenses. A copy of each license can be found in each repository on GitHub. For more information on the licenses view the license details page.
Do I need to purchase a license for development use?
No! SurrealDB is free to use for all development, pre-production and production use.
Do I need to purchase a license for production use?
No! SurrealDB is free to use for all development, pre-production and production use.
What does the license restrict you from doing?
You can use and scale SurrealDB to any number of nodes, and can run it as a server or embed it in to your applications (whether you ship those applications to customers or run them as a service). You can even run it as a service internally, to your employees, contractors, and subsidiary companies. The only thing that you are not able to do is offer a commercial, hosted version of SurrealDB as a service (a database-as-a-service) without buying a license.