README
¶
The SQLite Drivers 25.04 Benchmarks Game
This repository is a modification of go-sqlite-bench, forked at 4df8bfd.
Category: database/sql drivers
For the non database/sql drivers category please see modernc.org/sqlite-bench2
[[TOC]]
Drivers
These drivers are benchmarked
-
mattn,
github.com/mattn/go-sqlite3@v1.14.28
, a CGO-based solution. -
modernc,
modernc.org/sqlite@v1.37.0
, a pure Go solution based on the SQLite C code transpilled to Go usingccgo/v4
. -
ncruces,
github.com/ncruces/go-sqlite3@v0.25.1
, a pure Go solution usingwazero
.
Go version: go1.24.2
A general note on benchmarks and this repository
Do not trust benchmarks, write your own. These specific benchmarks are modelled after someone's very own database usage scenarios. Your scenarios may be totally different.
Each test is run twice, the recorded values are the averages of the two runs. This is not very scientific.
Database Schema
The test database consist of the following tables and indices:
PRAGMA journal_mode=DELETE;
PRAGMA synchronous=FULL;
PRAGMA foreign_keys=1;
PRAGMA busy_timeout=5000;
CREATE TABLE users (
id INTEGER PRIMARY KEY NOT NULL,
created INTEGER NOT NULL,
email TEXT NOT NULL,
active INTEGER NOT NULL);
CREATE INDEX users_created ON users(created);
CREATE TABLE articles (
id INTEGER PRIMARY KEY NOT NULL,
created INTEGER NOT NULL,
userId INTEGER NOT NULL REFERENCES users(id),
text TEXT NOT NULL);
CREATE INDEX articles_created ON articles(created);
CREATE INDEX articles_userId ON articles(userId);
CREATE TABLE comments (
id INTEGER PRIMARY KEY NOT NULL,
created INTEGER NOT NULL,
articleId INTEGER NOT NULL REFERENCES articles(id),
text TEXT NOT NULL);
CREATE INDEX comments_created ON comments(created);
CREATE INDEX comments_articleId ON comments(articleId);
Benchmark Results
Result times are measured in milliseconds. Lower numbers indicate better performance.
Simple Benchmark
Insert 1 million user rows in one database transaction. Then query all users once.
Complex Benchmark
Insert 200 users in one database transaction. Then insert 20000 articles (100 articles for each user) in another transaction. Then insert 400000 comments (20 comments for each article) in another transaction. Then query all users, articles and comments in one big JOIN statement.
Many Benchmark
Insert N users in one database transaction. Then query all users 1000 times. This benchmark is used to simluate a read-heavy use case.
Large Benchmark
Insert 10000 users with N bytes of row content. Then query all users. This benchmark is used to simluate reading of large (gigabytes) databases.
Concurrent Benchmark
Insert one million users. Then have N goroutines query all users. This benchmark is used to simulate concurrent reads.
4GB RAM builders
On 32 bit architectures and on the linux/ppc64le builder - to avoid OOM
- the Large benchmark uses 2.5k users instead of a 10k.
- the Concurrent benchmark uses 250k users instead of a million.
Caveat emptor
Mistakes happen. If you find anything wrong about the results please report the problem at the issue tracker, thank you.
tl;dr: Scorecard
The best time in every test, shown in bold in the tables below individual graphs, is worth one point. The scorecard shows where and how many points were awarded to each benchmarked package.
Total score ties are ranked alphabetically. Please read those as one shared rank.
This score is an ad hoc aggregate metric. Its usefulness is possibly at most in showing how the scores may evolve in time when new, improved versions of packages will get benchmarked.
The time results for the particular OS and HW provide a more detailed info.
Total | Simple | Complex | Many | Large | Concurrent | |
---|---|---|---|---|---|---|
1. modernc | 121 |
16 |
15 |
41 |
2 |
47 |
2. mattn | 74 |
16 |
17 |
7 |
34 |
0 |
3. ncruces | 13 |
0 |
0 |
0 |
12 |
1 |
Disclaimer: The score and the ranking do not show how will any package perform in your particular application on a particular system. Additionally, empirically the scores fluctuate as much as about +/- 10 points. It's complicatd to better stabilize the results to be more precise and reliable. On some machines the tests run for many hours already with n = 2.
Results: darwin/amd64
- OS: macOS Sequoia 15.3.2
- CPU: Apple M1, 2020
- GOMAXPROCS: 8
- RAM: 8GB
- Disk: APPLE SSD AP0256Q Media (251GB)
Simple | insert | query |
---|---|---|
mattn |
*8168 |
4389 |
modernc |
23629 |
*2170 |
ncruces |
18303 |
2940 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*4842 |
6369 |
modernc |
12609 |
*3389 |
ncruces |
11355 |
4147 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
125 |
501 |
3966 |
modernc |
*85 |
*248 |
*1891 |
ncruces |
130 |
360 |
2596 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*609 |
1567 |
*4841 |
modernc |
1095 |
1652 |
6291 |
ncruces |
664 |
*1209 |
10159 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
4667 |
5249 |
10110 |
modernc |
*2743 |
*2860 |
*5670 |
ncruces |
3336 |
3775 |
7508 |
Lower numbers are better. *
Scorecard point awarded.
Results: darwin/arm64
- OS: macOS Sequoia 15.3.2
- CPU: Apple M1, 2020
- GOMAXPROCS: 8
- RAM: 8GB
- Disk: APPLE SSD AP0256Q Media (251GB)
Simple | insert | query |
---|---|---|
mattn |
*4047 |
2592 |
modernc |
19540 |
*1709 |
ncruces |
9638 |
2011 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*2432 |
3304 |
modernc |
10592 |
*2737 |
ncruces |
6817 |
2845 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
*68 |
280 |
2329 |
modernc |
75 |
*199 |
*1469 |
ncruces |
97 |
246 |
1773 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
534 |
1188 |
4294 |
modernc |
660 |
1136 |
4777 |
ncruces |
*491 |
*918 |
*3498 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
2709 |
2949 |
6099 |
modernc |
*1852 |
*2080 |
*4338 |
ncruces |
2013 |
2407 |
5004 |
Lower numbers are better. *
Scorecard point awarded.
Results: freebsd/amd64
- OS: FreeBSD 14.2-RELEASE (GENERIC) releng/14.2-n269506-c8918d6c7412
- CPU: qemu-system-x86_64 version 7.2.15 hosted on linux/amd64-0
- GOMAXPROCS: 2
- RAM: 8GB
- Disk: qemu qcow2 (64GB)
Simple | insert | query |
---|---|---|
mattn |
*2849 |
1964 |
modernc |
7296 |
*1192 |
ncruces |
4925 |
1670 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*1562 |
2188 |
modernc |
4323 |
*1628 |
ncruces |
3074 |
2096 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
44 |
208 |
1894 |
modernc |
*28 |
*116 |
*977 |
ncruces |
54 |
228 |
2275 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*283 |
*578 |
3367 |
modernc |
659 |
1315 |
2730 |
ncruces |
364 |
682 |
*1345 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
1960 |
3854 |
7559 |
modernc |
2326 |
*2612 |
*5164 |
ncruces |
*1813 |
3566 |
6987 |
Lower numbers are better. *
Scorecard point awarded.
Results: freebsd/arm64
- OS: FreeBSD 14.2-RELEASE (GENERIC) releng/14.2-n269506-c8918d6c7412
- CPU: qemu-system-aarch64 version 7.2.15 hosted on linux/amd64-0
- GOMAXPROCS: 2
- RAM: 8GB
- Disk: qemu qcow2 (64GB)
Simple | insert | query |
---|---|---|
mattn |
*42231 |
29674 |
modernc |
137985 |
*14494 |
ncruces |
77841 |
18980 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*18518 |
36813 |
modernc |
73112 |
*20662 |
ncruces |
39897 |
25709 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
482 |
2647 |
26603 |
modernc |
*437 |
*1575 |
*13045 |
ncruces |
1100 |
2374 |
18922 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*4805 |
*9750 |
21926 |
modernc |
10211 |
17080 |
27713 |
ncruces |
6841 |
12113 |
*21159 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
38772 |
72301 |
128326 |
modernc |
*19164 |
*33063 |
*70243 |
ncruces |
20179 |
51162 |
78126 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/386
- OS: Devuan GNU/Linux 5 (daedalus)
- CPU: qemu-system-i386 version 7.2.15 hosted on linux/amd64-0
- GOMAXPROCS: 2
- RAM: 4GB
- Disk: qemu qcow2 (64GB)
Simple | insert | query |
---|---|---|
mattn |
*2887 |
2325 |
modernc |
8279 |
*1632 |
ncruces |
158032 |
21866 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*1583 |
2622 |
modernc |
4555 |
*2150 |
ncruces |
107793 |
48215 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
38 |
222 |
2097 |
modernc |
*35 |
*161 |
*1491 |
ncruces |
810 |
2761 |
22379 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*59 |
*134 |
*239 |
modernc |
153 |
274 |
500 |
ncruces |
212 |
370 |
599 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
662 |
1331 |
2647 |
modernc |
*469 |
*1049 |
*1992 |
ncruces |
5659 |
11423 |
22666 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/amd64
- OS: Devuan GNU/Linux 5 (daedalus)
- CPU: Intel(R) Celeron(R) J4005 CPU @ 2.00GHz
- GOMAXPROCS: 2
- RAM: 8GB
- Disk: SanDisk SDSSDHII, 447GiB (480GB)
Simple | insert | query |
---|---|---|
mattn |
*7104 |
3780 |
modernc |
24060 |
*2956 |
ncruces |
14326 |
4376 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*3857 |
*4257 |
modernc |
12984 |
5685 |
ncruces |
8347 |
4729 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
191 |
476 |
*4790 |
modernc |
*106 |
*458 |
5641 |
ncruces |
147 |
967 |
8220 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*790 |
*1509 |
6368 |
modernc |
1791 |
3108 |
5615 |
ncruces |
1147 |
1998 |
*3773 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
4187 |
8822 |
17557 |
modernc |
*3123 |
*6792 |
*13410 |
ncruces |
5048 |
10046 |
20217 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/amd64-0
- OS: Devuan GNU/Linux 5 (daedalus)
- CPU: AMD Ryzen 9 3900X 12-Core Processor
- GOMAXPROCS: 24
- RAM: 128GB
- Disk: NVMe, 476GiB (512GB)
Simple | insert | query |
---|---|---|
mattn |
*2472 |
1720 |
modernc |
7580 |
*1190 |
ncruces |
4603 |
1601 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*1393 |
2122 |
modernc |
4414 |
*1665 |
ncruces |
2772 |
2093 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
40 |
177 |
2465 |
modernc |
*34 |
*109 |
*1730 |
ncruces |
54 |
180 |
2591 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*255 |
*394 |
*796 |
modernc |
350 |
1561 |
2516 |
ncruces |
313 |
567 |
1005 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
1933 |
2103 |
2226 |
modernc |
*1235 |
*1433 |
*1620 |
ncruces |
1752 |
1837 |
1927 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/arm
- OS: Raspbian GNU/Linux 12 (bookworm)
- CPU: Cortex-A72 (Raspberry Pi 4 Model B Rev 1.2)
- GOMAXPROCS: 4
- RAM: 4GB
- Disk: SanDisk SD Card SR256, 238GiB (255GB)
Simple | insert | query |
---|---|---|
mattn |
*19813 |
15655 |
modernc |
58385 |
*12601 |
ncruces |
1118926 |
168122 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*10129 |
16358 |
modernc |
30654 |
*14318 |
ncruces |
766594 |
348243 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
255 |
1510 |
15154 |
modernc |
*229 |
*1228 |
*12061 |
ncruces |
5618 |
20354 |
168907 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*269 |
*368 |
*678 |
modernc |
682 |
1126 |
2080 |
ncruces |
1551 |
2232 |
3670 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
4504 |
5164 |
10081 |
modernc |
*3677 |
*4085 |
*8052 |
ncruces |
42801 |
44347 |
88644 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/arm64
- OS: Raspbian GNU/Linux 12 (bookworm)
- CPU: Cortex-A76 (Raspberry Pi 5 Model B Rev 1.0)
- GOMAXPROCS: 4
- RAM: 8GB
- Disk: NVMe, 238GiB (256GB)
Simple | insert | query |
---|---|---|
mattn |
*3785 |
2775 |
modernc |
12287 |
*2050 |
ncruces |
8257 |
2173 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*1998 |
3185 |
modernc |
6575 |
*2674 |
ncruces |
4610 |
2861 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
*43 |
251 |
2368 |
modernc |
43 |
*191 |
*1727 |
ncruces |
76 |
239 |
1993 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*381 |
*635 |
1446 |
modernc |
821 |
1305 |
2235 |
ncruces |
424 |
644 |
*1180 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
2899 |
3627 |
7204 |
modernc |
*2480 |
*3227 |
*6714 |
ncruces |
2804 |
3772 |
7562 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/loong64
- OS: Fedora release 38 (Rawhide)
- CPU: loongarch64
- GOMAXPROCS: 4
- RAM: 16GB
- Disk: NVMe, (157GB)
Simple | insert | query |
---|---|---|
mattn |
*5825 |
4624 |
modernc |
20088 |
*3226 |
ncruces |
356443 |
47830 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*2900 |
5279 |
modernc |
10668 |
*4187 |
ncruces |
234933 |
100456 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
86 |
460 |
4190 |
modernc |
*80 |
*354 |
*2824 |
ncruces |
1668 |
5883 |
48270 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*311 |
*516 |
*956 |
modernc |
939 |
1368 |
2202 |
ncruces |
1910 |
2730 |
4193 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
4844 |
5675 |
11287 |
modernc |
*3592 |
*4224 |
*8391 |
ncruces |
48070 |
48807 |
97651 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/ppc64le
- OS: Debian GNU/Linux 11 (bullseye)
- CPU: qemu hosted on POWER8
- GOMAXPROCS: 2
- RAM: 4GB
- Disk: qemu unknown, 40GiB (42GB)
Simple | insert | query |
---|---|---|
mattn |
*7035 |
5445 |
modernc |
20706 |
*4584 |
ncruces |
358289 |
54122 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*4207 |
6170 |
modernc |
11455 |
*5737 |
ncruces |
242608 |
115954 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
*83 |
546 |
5244 |
modernc |
85 |
*466 |
*4295 |
ncruces |
1655 |
6392 |
54392 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*89 |
*142 |
*292 |
modernc |
159 |
274 |
495 |
ncruces |
471 |
710 |
1159 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
1729 |
3485 |
6831 |
modernc |
*1312 |
*2669 |
*5278 |
ncruces |
13792 |
27693 |
55098 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/riscv64
- OS: Debian GNU/Linux trixie/sid
- CPU: riscv64, sifive,bullet0
- GOMAXPROCS: 4
- RAM: 16GB
- Disk: NVMe 917GB
Simple | insert | query |
---|---|---|
mattn |
*34835 |
26854 |
modernc |
128317 |
*20239 |
ncruces |
2207812 |
339288 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*20318 |
30095 |
modernc |
73652 |
*25303 |
ncruces |
1575388 |
721392 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
455 |
2577 |
25091 |
modernc |
*454 |
*1954 |
*17223 |
ncruces |
11296 |
43609 |
376754 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*5204 |
*9427 |
*19902 |
modernc |
12081 |
22474 |
44963 |
ncruces |
16670 |
27420 |
50453 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
30921 |
36981 |
72254 |
modernc |
*24179 |
*28674 |
*56972 |
ncruces |
383391 |
382019 |
753651 |
Lower numbers are better. *
Scorecard point awarded.
Results: linux/s390x
- OS: Devuan GNU/Linux 5 (daedalus)
- CPU: qemu-system-s390x version 7.2.15 hosted on linux/amd64-0
- GOMAXPROCS: 2
- RAM: 24GB
- Disk: qemu qcow2 (64GB)
Simple | insert | query |
---|---|---|
mattn |
*37379 |
24642 |
modernc |
148136 |
*16780 |
ncruces |
1649821 |
239337 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*21064 |
27134 |
modernc |
81727 |
*21727 |
ncruces |
1039107 |
514238 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
*594 |
2655 |
21651 |
modernc |
634 |
*2141 |
*13862 |
ncruces |
8744 |
27458 |
228302 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*4525 |
*9133 |
*16276 |
modernc |
13379 |
23938 |
37757 |
ncruces |
15551 |
25538 |
54219 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
32677 |
66369 |
132181 |
modernc |
*19373 |
*38434 |
*77718 |
ncruces |
243217 |
512544 |
962010 |
Lower numbers are better. *
Scorecard point awarded.
Results: windows/386
- OS: Windows 10 Pro 22H2
- CPU: qemu-system-x86_64 version 7.2.15 hosted on linux/amd64-0
- GOMAXPROCS: 2
- RAM: 4GB
- Disk: qemu qcow2 (64GB)
Simple | insert | query |
---|---|---|
mattn |
*4143 |
3380 |
modernc |
15009 |
*2695 |
ncruces |
267481 |
40250 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*2417 |
3835 |
modernc |
7366 |
*3561 |
ncruces |
176518 |
76766 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
*95 |
399 |
3326 |
modernc |
113 |
*292 |
*2481 |
ncruces |
1206 |
3853 |
35382 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*152 |
5415 |
21693 |
modernc |
278 |
*491 |
*17989 |
ncruces |
438 |
706 |
24176 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
701 |
1343 |
2669 |
modernc |
*481 |
*1028 |
*2007 |
ncruces |
6136 |
12114 |
23484 |
Lower numbers are better. *
Scorecard point awarded.
Results: windows/amd64
- OS: Windows 11 Pro 23H2
- CPU: Intel Pentium G4400T @2.9GHz
- GOMAXPROCS: 2
- RAM: 8GB
- Disk: KGB50ZNT256G LS KIOXIA (238GB)
Simple | insert | query |
---|---|---|
mattn |
*2900 |
2122 |
modernc |
9578 |
*1421 |
ncruces |
6384 |
1890 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*1697 |
2514 |
modernc |
5438 |
*2009 |
ncruces |
4193 |
2495 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
*80 |
253 |
1999 |
modernc |
81 |
*180 |
*1300 |
ncruces |
125 |
270 |
1782 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
1069 |
5045 |
19360 |
modernc |
898 |
1612 |
20643 |
ncruces |
*691 |
*1398 |
*12032 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
2570 |
4997 |
9851 |
modernc |
*1741 |
*3515 |
*7148 |
ncruces |
2105 |
4550 |
8977 |
Lower numbers are better. *
Scorecard point awarded.
Results: windows/arm64
- OS: Windows 11 Pro 23H2
- CPU: Cortex-A72 (Raspberry Pi)
- GOMAXPROCS: 4
- RAM: 8GB
- Disk: Generic SK64 SD Card (64GB)
Simple | insert | query |
---|---|---|
mattn |
*16025 |
8491 |
modernc |
46237 |
*5882 |
ncruces |
35283 |
8728 |
Lower numbers are better. *
Scorecard point awarded.
Complex | insert | query |
---|---|---|
mattn |
*8826 |
8768 |
modernc |
23929 |
*6908 |
ncruces |
18758 |
8064 |
Lower numbers are better. *
Scorecard point awarded.
Many | query/N=10 | query/N=100 | query/N=1000 |
---|---|---|---|
mattn |
413 |
1154 |
8201 |
modernc |
*394 |
*936 |
*5719 |
ncruces |
784 |
1532 |
8859 |
Lower numbers are better. *
Scorecard point awarded.
Large | query/N=50000 | query/N=100000 | query/N=200000 |
---|---|---|---|
mattn |
*3110 |
*5830 |
19283 |
modernc |
5385 |
11160 |
34787 |
ncruces |
4367 |
8029 |
*16560 |
Lower numbers are better. *
Scorecard point awarded.
Concurrent | query/N=2 | query/N=4 | query/N=8 |
---|---|---|---|
mattn |
8779 |
10214 |
20774 |
modernc |
*6479 |
*7379 |
*15095 |
ncruces |
9167 |
10515 |
20888 |
Lower numbers are better. *
Scorecard point awarded.
Documentation
¶
Overview ¶
Package bench collects benchmarks of selected Go SQLite database/sql drivers. The results are found in the README.md file.
On pkg.go.dev click "Expand" above to expand the README file section or use the headings list available on the left of the desktop or above on themobile site to navigate the README file.
Caveat emptor ¶
Mistakes happen. If you find anything wrong about the results please report the problem at the issue tracker, thank you.