Databases 6 min read

BeetlSQL Database Access Framework: Supported Databases, Maven Dependency, and Performance Benchmarks

BeetlSQL provides a unified, high‑performance database access framework supporting traditional, big‑data, and time‑series databases, outlines its Maven dependency, and presents detailed M3‑phase performance benchmarks across various query methods and ORM tools.

Laravel Tech Community
Laravel Tech Community
Laravel Tech Community
BeetlSQL Database Access Framework: Supported Databases, Maven Dependency, and Performance Benchmarks

BeetlSQL aims to provide an efficient database access framework that offers a consistent way to write code regardless of the database being connected. As of milestone M3, it currently supports the following data sources:

Traditional databases: MySQL, MariaDB, Oracle, Postgres, DB2, SQL Server, H2, SQLite, Shentong, Dameng, etc.

Big data: HBase, ClickHouse, Cassandra, Hive

IoT time‑series database: Machbase

SQL query engines: Drill, Presto

In the M4 phase, the goals also include support for ElasticSearch, Derby, SQLite, Songguo time‑series library, TDengine time‑series library, Druid, Peking University Kingbase, and Neo4j.

Maven

<dependency>
  <groupId>com.ibeetl</groupId>
  <artifactId>beetlsql-all</artifactId>
  <version>3.0.0-M3</version>
</dependency>

In the M3 phase, after changes to the JMH subproject, another round of performance testing was conducted, with results as follows.

Benchmark                         Mode  Cnt     Score     Error   Units
JMHMain.beetlsqlComplexMapping   thrpt    5   205.885 ± 57.974  ops/ms
JMHMain.beetlsqlExecuteJdbc      thrpt    5   466.783 ± 29.614  ops/ms
JMHMain.beetlsqlExecuteTemplate  thrpt    5   388.390 ± 32.002  ops/ms
JMHMain.beetlsqlFile             thrpt    5   435.402 ± 62.479  ops/ms
JMHMain.beetlsqlInsert           thrpt    5   211.785 ±152.417  ops/ms
JMHMain.beetlsqlLambdaQuery      thrpt    5   256.671 ± 32.464  ops/ms
JMHMain.beetlsqlOne2Many         thrpt    5   106.457 ± 16.692  ops/ms
JMHMain.beetlsqlPageQuery        thrpt    5   196.855 ± 30.781  ops/ms
JMHMain.beetlsqlSelectById       thrpt    5   386.098 ± 46.784  ops/ms
JMHMain.jdbcExecuteJdbc          thrpt    5   987.507 ± 49.412  ops/ms
JMHMain.jdbcInsert               thrpt    5   315.066 ±222.465  ops/ms
JMHMain.jdbcSelectById           thrpt    5  1055.153 ±105.499  ops/ms
JMHMain.jpaExecuteJdbc           thrpt    5   110.944 ± 17.210  ops/ms
JMHMain.jpaExecuteTemplate       thrpt    5   140.112 ± 12.616  ops/ms
JMHMain.jpaInsert                thrpt    5    79.710 ± 17.193  ops/ms
JMHMain.jpaOne2Many              thrpt    5    97.634 ± 17.690  ops/ms
JMHMain.jpaPageQuery             thrpt    5   120.386 ± 17.249  ops/ms
JMHMain.jpaSelectById            thrpt    5   334.689 ± 20.872  ops/ms
JMHMain.mybatisComplexMapping    thrpt    5    99.133 ±  4.238  ops/ms
JMHMain.mybatisExecuteTemplate    thrpt    5   181.423 ± 23.560  ops/ms
JMHMain.mybatisFile              thrpt    5   133.999 ± 56.998  ops/ms
JMHMain.mybatisInsert            thrpt    5   144.017 ± 15.849  ops/ms
JMHMain.mybatisLambdaQuery       thrpt    5    15.165 ±  2.243  ops/ms
JMHMain.mybatisPageQuery         thrpt    5    63.876 ±  5.651  ops/ms
JMHMain.mybatisSelectById        thrpt    5   203.024 ± 23.581  ops/ms
JMHMain.weedExecuteJdbc          thrpt    5   412.615 ± 31.912  ops/ms
JMHMain.weedExecuteTemplate      thrpt    5   358.685 ± 17.963  ops/ms
JMHMain.weedFile                 thrpt    5   445.672 ± 49.516  ops/ms
JMHMain.weedInsert               thrpt    5   217.909 ± 92.800  ops/ms
JMHMain.weedLambdaQuery          thrpt    5   393.220 ± 31.256  ops/ms
JMHMain.weedPageQuery            thrpt    5   241.266 ± 14.880  ops/ms
JMHMain.weedSelectById           thrpt    5   414.971 ± 45.822  ops/ms

ComplexMapping indicates complex mapping, such as left‑join one‑to‑many relationships.

ExecuteJdbc directly executes JDBC and maps results to POJOs.

ExecuteTemplate runs template statements (or HQL) and maps results to POJOs.

File stores SQL statements in proprietary files.

Insert provides built‑in insert statements.

One2Many implements one‑to‑many queries via annotations.

PageQuery performs paginated queries and returns a PageResult.

SelectById queries POJOs by primary key.

LambdaQuery constructs SQL statements for queries and supports reconstruction.

SQLPerformance BenchmarkMavenDatabase AccessBeetlSQL
Laravel Tech Community
Written by

Laravel Tech Community

Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.