@@ -112,6 +112,150 @@ While encryption adds overhead, it provides quantum-resistant security for sensi
112112
113113<!-- BENCHMARK_RESULTS_START -->
114114
115+ ### Latest Automated Benchmark Results
116+
117+ ** Last Updated:** 2025-11-15
118+
119+ #### Forward Email Production
120+
121+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
122+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
123+ | v18.20.4 | better-sqlite3-multiple-ciphers | 238.6 | 11,778 | 26,632 | 21,163 | 124,347 | 3.98 |
124+ | v18.20.8 | better-sqlite3-multiple-ciphers | 112.0 | 10,658 | 14,466 | 18,641 | 75,614 | 3.98 |
125+ | v20.19.5 | better-sqlite3-multiple-ciphers | 124.2 | 9,715 | 14,018 | 18,485 | 55,885 | 3.98 |
126+ | v22.13.0 | better-sqlite3-multiple-ciphers | 108.4 | 12,022 | 19,187 | 22,204 | 87,466 | 3.98 |
127+ | v22.21.1 | better-sqlite3-multiple-ciphers | 125.8 | 9,829 | 15,833 | 18,416 | 8,120 | 3.98 |
128+ | v24.11.1 | better-sqlite3-multiple-ciphers | 123.6 | 9,938 | 7,497 | 10,446 | 66,203 | 3.98 |
129+ | v25.2.0 | better-sqlite3-multiple-ciphers | 113.1 | 9,032 | 15,189 | 17,763 | 53,723 | 3.98 |
130+
131+ #### Memory Temp Storage
132+
133+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
134+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
135+ | v18.20.4 | better-sqlite3-multiple-ciphers | 77.2 | 12,150 | 27,429 | 21,113 | 110,096 | 3.98 |
136+ | v18.20.8 | better-sqlite3-multiple-ciphers | 96.4 | 10,854 | 14,868 | 19,547 | 111,882 | 3.98 |
137+ | v20.19.5 | better-sqlite3-multiple-ciphers | 100.2 | 10,080 | 14,140 | 18,386 | 81,274 | 3.98 |
138+ | v22.13.0 | better-sqlite3-multiple-ciphers | 97.1 | 10,971 | 19,857 | 22,588 | 121,581 | 3.98 |
139+ | v22.21.1 | better-sqlite3-multiple-ciphers | 102.8 | 10,447 | 15,044 | 20,192 | 79,834 | 3.98 |
140+ | v24.11.1 | better-sqlite3-multiple-ciphers | 118.3 | 8,792 | 12,608 | 16,794 | 81,281 | 3.98 |
141+ | v25.2.0 | better-sqlite3-multiple-ciphers | 99.7 | 8,322 | 15,507 | 18,095 | 81,880 | 3.98 |
142+
143+ #### Synchronous OFF (Unsafe)
144+
145+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
146+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
147+ | v18.20.4 | better-sqlite3-multiple-ciphers | 101.0 | 13,275 | 27,223 | 23,768 | 151,906 | 3.98 |
148+ | v18.20.8 | better-sqlite3-multiple-ciphers | 87.5 | 11,663 | 14,835 | 19,697 | 103,950 | 3.98 |
149+ | v20.19.5 | better-sqlite3-multiple-ciphers | 90.4 | 10,487 | 14,160 | 18,817 | 83,105 | 3.98 |
150+ | v22.13.0 | better-sqlite3-multiple-ciphers | 82.1 | 10,093 | 19,517 | 23,070 | 130,839 | 3.98 |
151+ | v22.21.1 | better-sqlite3-multiple-ciphers | 87.5 | 11,260 | 17,239 | 20,120 | 105,966 | 3.98 |
152+ | v24.11.1 | better-sqlite3-multiple-ciphers | 126.4 | 8,617 | 9,316 | 15,436 | 78,382 | 3.98 |
153+ | v25.2.0 | better-sqlite3-multiple-ciphers | 98.3 | 10,441 | 15,529 | 18,209 | 42,366 | 3.98 |
154+
155+ #### Synchronous EXTRA (Safe)
156+
157+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
158+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
159+ | v18.20.4 | better-sqlite3-multiple-ciphers | 77.5 | 8,884 | 26,936 | 12,477 | 162,153 | 3.98 |
160+ | v18.20.8 | better-sqlite3-multiple-ciphers | 100.0 | 3,810 | 14,348 | 4,781 | 100,281 | 3.98 |
161+ | v20.19.5 | better-sqlite3-multiple-ciphers | 105.5 | 2,760 | 13,780 | 3,152 | 66,273 | 3.98 |
162+ | v22.13.0 | better-sqlite3-multiple-ciphers | 92.7 | 4,275 | 18,716 | 5,659 | 100,513 | 3.98 |
163+ | v22.21.1 | better-sqlite3-multiple-ciphers | 96.7 | 4,638 | 17,081 | 5,734 | 101,523 | 3.98 |
164+ | v24.11.1 | better-sqlite3-multiple-ciphers | 144.2 | 2,973 | 9,294 | 4,405 | 96,852 | 3.98 |
165+ | v25.2.0 | better-sqlite3-multiple-ciphers | 101.7 | 2,725 | 15,114 | 3,346 | 74,766 | 3.98 |
166+
167+ #### No Auto Vacuum
168+
169+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
170+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
171+ | v18.20.4 | better-sqlite3-multiple-ciphers | 76.8 | 12,077 | 27,109 | 20,485 | 137,931 | 4.12 |
172+ | v18.20.8 | better-sqlite3-multiple-ciphers | 97.3 | 11,197 | 14,635 | 19,182 | 116,768 | 4.12 |
173+ | v20.19.5 | better-sqlite3-multiple-ciphers | 101.3 | 10,065 | 14,092 | 18,570 | 80,295 | 4.12 |
174+ | v22.13.0 | better-sqlite3-multiple-ciphers | 95.3 | 11,169 | 18,908 | 22,200 | 118,078 | 4.12 |
175+ | v22.21.1 | better-sqlite3-multiple-ciphers | 94.7 | 11,001 | 17,000 | 19,486 | 112,613 | 4.12 |
176+ | v24.11.1 | better-sqlite3-multiple-ciphers | 100.2 | 9,981 | 16,660 | 19,736 | 113,340 | 4.12 |
177+ | v25.2.0 | better-sqlite3-multiple-ciphers | 99.3 | 9,757 | 14,620 | 17,738 | 78,162 | 4.12 |
178+
179+ #### Incremental Vacuum
180+
181+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
182+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
183+ | v18.20.4 | better-sqlite3-multiple-ciphers | 78.2 | 12,034 | 27,226 | 21,070 | 108,601 | 4.13 |
184+ | v18.20.8 | better-sqlite3-multiple-ciphers | 98.0 | 10,516 | 11,737 | 19,863 | 115,660 | 4.13 |
185+ | v20.19.5 | better-sqlite3-multiple-ciphers | 97.4 | 10,159 | 13,512 | 18,436 | 81,613 | 4.13 |
186+ | v22.13.0 | better-sqlite3-multiple-ciphers | 91.1 | 12,533 | 19,258 | 22,819 | 136,724 | 4.13 |
187+ | v22.21.1 | better-sqlite3-multiple-ciphers | 97.5 | 10,690 | 13,274 | 19,033 | 91,988 | 4.13 |
188+ | v24.11.1 | better-sqlite3-multiple-ciphers | 96.9 | 10,628 | 16,821 | 19,934 | 117,509 | 4.13 |
189+ | v25.2.0 | better-sqlite3-multiple-ciphers | 100.6 | 9,695 | 13,826 | 17,858 | 86,573 | 4.13 |
190+
191+ #### WAL Autocheckpoint 1000
192+
193+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
194+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
195+ | v18.20.4 | better-sqlite3-multiple-ciphers | 77.0 | 12,166 | 27,033 | 21,289 | 137,155 | 3.98 |
196+ | v18.20.8 | better-sqlite3-multiple-ciphers | 97.9 | 10,878 | 14,753 | 19,721 | 102,375 | 3.98 |
197+ | v20.19.5 | better-sqlite3-multiple-ciphers | 96.5 | 10,337 | 14,063 | 18,638 | 88,098 | 3.98 |
198+ | v22.13.0 | better-sqlite3-multiple-ciphers | 88.4 | 11,981 | 19,530 | 23,199 | 124,270 | 3.98 |
199+ | v22.21.1 | better-sqlite3-multiple-ciphers | 96.6 | 11,008 | 15,630 | 19,202 | 99,039 | 3.98 |
200+ | v24.11.1 | better-sqlite3-multiple-ciphers | 118.2 | 10,511 | 14,410 | 19,432 | 107,550 | 3.98 |
201+ | v25.2.0 | better-sqlite3-multiple-ciphers | 99.7 | 9,608 | 14,918 | 18,115 | 83,598 | 3.98 |
202+
203+ #### Cache Size 64MB
204+
205+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
206+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
207+ | v18.20.4 | better-sqlite3-multiple-ciphers | 76.1 | 12,330 | 26,946 | 21,278 | 155,836 | 3.98 |
208+ | v18.20.8 | better-sqlite3-multiple-ciphers | 95.4 | 10,887 | 14,862 | 19,226 | 102,575 | 3.98 |
209+ | v20.19.5 | better-sqlite3-multiple-ciphers | 94.2 | 10,262 | 14,179 | 18,360 | 86,423 | 3.98 |
210+ | v22.13.0 | better-sqlite3-multiple-ciphers | 86.7 | 12,778 | 19,765 | 23,104 | 134,608 | 3.98 |
211+ | v22.21.1 | better-sqlite3-multiple-ciphers | 103.1 | 10,389 | 16,285 | 20,021 | 100,644 | 3.98 |
212+ | v24.11.1 | better-sqlite3-multiple-ciphers | 106.8 | 9,385 | 10,502 | 15,585 | 79,170 | 3.98 |
213+ | v25.2.0 | better-sqlite3-multiple-ciphers | 97.8 | 9,848 | 15,344 | 18,032 | 87,176 | 3.98 |
214+
215+ #### MMAP 256MB
216+
217+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
218+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
219+ | v18.20.4 | better-sqlite3-multiple-ciphers | 74.5 | 12,234 | 27,098 | 21,195 | 165,508 | 3.98 |
220+ | v18.20.8 | better-sqlite3-multiple-ciphers | 95.0 | 11,214 | 13,718 | 20,095 | 116,144 | 3.98 |
221+ | v20.19.5 | better-sqlite3-multiple-ciphers | 93.7 | 10,315 | 14,308 | 18,024 | 81,813 | 3.98 |
222+ | v22.13.0 | better-sqlite3-multiple-ciphers | 85.6 | 12,666 | 20,391 | 23,226 | 123,609 | 3.98 |
223+ | v22.21.1 | better-sqlite3-multiple-ciphers | 95.9 | 10,920 | 17,413 | 20,731 | 119,531 | 3.98 |
224+ | v24.11.1 | better-sqlite3-multiple-ciphers | 107.2 | 9,419 | 13,363 | 19,434 | 94,153 | 3.98 |
225+ | v25.2.0 | better-sqlite3-multiple-ciphers | 98.6 | 9,620 | 15,633 | 18,122 | 82,420 | 3.98 |
226+
227+ #### better-sqlite3 (no encryption)
228+
229+ | Node Version | Library | Setup (ms) | Insert/sec | Select/sec | Update/sec | Delete/sec | DB Size (MB) |
230+ | --------------| ---------| ------------| ------------| ------------| ------------| ------------| --------------|
231+ | v18.20.4 | better-sqlite3 | 227.7 | 25,149 | 23,360 | 60,954 | 157,903 | 3.98 |
232+ | v20.19.5 | better-sqlite3 | 26.0 | 29,558 | 14,647 | 50,587 | 91,491 | 3.98 |
233+ | v22.13.0 | better-sqlite3 | 27.0 | 44,889 | 36,970 | 87,725 | 134,735 | 3.98 |
234+
235+ ### Performance Comparison Summary
236+
237+ | Node Version | Platform | Arch | Timestamp |
238+ | --------------| ----------| ------| ----------|
239+ | v18.20.4 | darwin | arm64 | 11/15/2025, 3:17:47 AM |
240+ | v18.20.8 | linux | x64 | 11/14/2025, 1:45:57 PM |
241+ | v20.19.5 | linux | x64 | 11/15/2025, 3:21:04 AM |
242+ | v22.13.0 | linux | x64 | 11/15/2025, 3:02:58 AM |
243+ | v22.21.1 | linux | x64 | 11/14/2025, 1:32:10 PM |
244+ | v24.11.1 | linux | x64 | 11/14/2025, 1:33:38 PM |
245+ | v25.2.0 | linux | x64 | 11/14/2025, 5:56:49 PM |
246+
247+ ### Best Performers by Operation Type
248+
249+ ** Insert Operations:** better-sqlite3 (no encryption) on Node.js v22.13.0 (44,889 ops/sec)
250+
251+ ** Select Operations:** better-sqlite3 (no encryption) on Node.js v22.13.0 (36,970 ops/sec)
252+
253+ ** Update Operations:** better-sqlite3 (no encryption) on Node.js v22.13.0 (87,725 ops/sec)
254+
255+ ** Delete Operations:** MMAP 256MB on Node.js v18.20.4 (165,508 ops/sec)
256+
257+
258+
115259<!-- BENCHMARK_RESULTS_END -->
116260
117261## Forward Email's Production Configuration
0 commit comments