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.
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/msComplexMapping 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.
Laravel Tech Community
Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.