Bench: 17.3.x ValentinaDB vs DuckDB: SEARCH 2-27x faster

Hi Xojo Developers,

Let me share some information.

About two years ago, we were asked to add DuckDB support to Valentina Studio. As we explored this database, we realized that from an architectural perspective it is similar to Valentina DB and SQLite — a local embedded database engine. At the same time, like Valentina DB, DuckDB is column-oriented.

This observation led us to the idea of integrating DuckDB into Valentina Server as well. We implemented this integration approximately 1.5 years ago by adding DuckDB under our VKERNEL DLL layer, similar to what we had previously done with SQLite.

For a long time, we were focused on other priorities. However, we were naturally interested in benchmarking Valentina DB against DuckDB. In March, we started developing a benchmark suite using Google Benchmark.

During this work, we also introduced SIMD vectorization into Valentina DB, which significantly improved performance.

Below are the results for WHERE queries. These results are from approximately three weeks ago.

Benchmarks were executed on tables with 100K, 1M, and 10M records. Tests include both full table scans and filtered selections:

  • Small: ~10 records
  • Half: ~0.5N records
  • Large: ~N − 10 records

It is interesting to note that Valentina outperforms DuckDB in both indexed and non-indexed search scenarios.

4 Likes