Skip to content

Commit

Permalink
Commit from GitHub Actions (ORM Benchmark)
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Jul 8, 2024
1 parent a4f8e09 commit e7a1bc3
Show file tree
Hide file tree
Showing 18 changed files with 297 additions and 297 deletions.
Binary file modified bun.lockb
Binary file not shown.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
"@prisma/client": "^5.16.1",
"drizzle-orm": "^0.31.2",
"knex": "^3.1.0",
"kysely": "^0.27.3",
"kysely": "^0.27.4",
"mariadb": "^3.3.1",
"mitata": "^0.1.11",
"mysql2": "^3.10.1",
"mysql2": "^3.10.2",
"pg": "^8.12.0",
"pg-pool": "^3.6.2",
"postgres": "~3.4.4",
Expand Down
36 changes: 18 additions & 18 deletions results/bun-mysql-cpu-count.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 428 µs/iter (325 µs … 2'055 µs) 413 µs 1'608 µs 1'894 µs
KnexJS 338 µs/iter (255 µs … 1'858 µs) 329 µs 1'662 µs 1'839 µs
Kysely 303 µs/iter (238 µs … 1'853 µs) 290 µs 1'585 µs 1'809 µs
Mariadb 236 µs/iter (177 µs … 1'700 µs) 231 µs 1'432 µs 1'691 µs
MikroORM 393 µs/iter (18'074 ns … 2'912 µs) 528 µs 2'351 µs 2'740 µs
MySQL2 258 µs/iter (200 µs … 1'944 µs) 251 µs 1'655 µs 1'937 µs
Prisma 514 µs/iter (412 µs … 2'186 µs) 482 µs 1'971 µs 2'179 µs
Sequelize 479 µs/iter (348 µs … 3'326 µs) 445 µs 2'289 µs 3'123 µs
TypeORM 414 µs/iter (313 µs … 2'558 µs) 393 µs 1'932 µs 2'503 µs
DrizzleORM 419 µs/iter (331 µs … 1'632 µs) 412 µs 1'397 µs 1'614 µs
KnexJS 326 µs/iter (248 µs … 2'210 µs) 327 µs 1'305 µs 1'781 µs
Kysely 297 µs/iter (243 µs … 1'449 µs) 293 µs 1'213 µs 1'352 µs
Mariadb 225 µs/iter (171 µs … 1'400 µs) 228 µs 1'124 µs 1'302 µs
MikroORM 359 µs/iter (15'809 ns … 2'587 µs) 503 µs 1'834 µs 2'503 µs
MySQL2 251 µs/iter (192 µs … 1'788 µs) 252 µs 1'173 µs 1'539 µs
Prisma 498 µs/iter (420 µs … 1'570 µs) 481 µs 1'444 µs 1'527 µs
Sequelize 438 µs/iter (334 µs … 1'865 µs) 432 µs 1'632 µs 1'800 µs
TypeORM 386 µs/iter (305 µs … 1'991 µs) 378 µs 1'418 µs 1'726 µs

summary for MySQL
Mariadb
1.1x faster than MySQL2
1.28x faster than Kysely
1.44x faster than KnexJS
1.67x faster than MikroORM
1.76x faster than TypeORM
1.82x faster than DrizzleORM
2.03x faster than Sequelize
2.18x faster than Prisma
1.11x faster than MySQL2
1.32x faster than Kysely
1.45x faster than KnexJS
1.59x faster than MikroORM
1.72x faster than TypeORM
1.86x faster than DrizzleORM
1.95x faster than Sequelize
2.21x faster than Prisma
36 changes: 18 additions & 18 deletions results/bun-mysql-default.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 442 µs/iter (328 µs … 1'912 µs) 430 µs 1'716 µs 1'910 µs
KnexJS 345 µs/iter (259 µs … 2'036 µs) 334 µs 1'666 µs 1'944 µs
Kysely 311 µs/iter (244 µs … 1'799 µs) 299 µs 1'636 µs 1'794 µs
Mariadb 242 µs/iter (176 µs … 1'936 µs) 237 µs 1'574 µs 1'763 µs
MikroORM 419 µs/iter (17'853 ns … 3'029 µs) 542 µs 2'465 µs 2'714 µs
MySQL2 267 µs/iter (198 µs … 2'046 µs) 256 µs 1'777 µs 2'018 µs
Prisma 520 µs/iter (408 µs … 2'141 µs) 491 µs 1'939 µs 2'022 µs
Sequelize 488 µs/iter (353 µs … 2'978 µs) 451 µs 2'317 µs 2'566 µs
TypeORM 445 µs/iter (310 µs … 3'667 µs) 423 µs 2'207 µs 2'668 µs
DrizzleORM 426 µs/iter (328 µs … 1'922 µs) 418 µs 1'445 µs 1'797 µs
KnexJS 320 µs/iter (252 µs … 1'547 µs) 316 µs 1'232 µs 1'435 µs
Kysely 297 µs/iter (243 µs … 1'460 µs) 295 µs 1'213 µs 1'315 µs
Mariadb 222 µs/iter (170 µs … 1'368 µs) 224 µs 1'115 µs 1'308 µs
MikroORM 363 µs/iter (16'430 ns … 2'380 µs) 507 µs 1'846 µs 2'313 µs
MySQL2 247 µs/iter (192 µs … 1'528 µs) 247 µs 1'170 µs 1'455 µs
Prisma 497 µs/iter (421 µs … 1'627 µs) 480 µs 1'418 µs 1'561 µs
Sequelize 447 µs/iter (337 µs … 2'357 µs) 435 µs 1'620 µs 2'191 µs
TypeORM 389 µs/iter (303 µs … 1'879 µs) 380 µs 1'462 µs 1'788 µs

summary for MySQL
Mariadb
1.1x faster than MySQL2
1.28x faster than Kysely
1.42x faster than KnexJS
1.73x faster than MikroORM
1.82x faster than DrizzleORM
1.84x faster than TypeORM
2.01x faster than Sequelize
2.15x faster than Prisma
1.12x faster than MySQL2
1.34x faster than Kysely
1.44x faster than KnexJS
1.64x faster than MikroORM
1.75x faster than TypeORM
1.92x faster than DrizzleORM
2.02x faster than Sequelize
2.24x faster than Prisma
36 changes: 18 additions & 18 deletions results/bun-mysql-max.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 490 µs/iter (335 µs … 2'860 µs) 493 µs 2'057 µs 2'810 µs
KnexJS 345 µs/iter (262 µs … 2'263 µs) 334 µs 1'742 µs 2'191 µs
Kysely 317 µs/iter (250 µs … 1'950 µs) 302 µs 1'742 µs 1'927 µs
Mariadb 285 µs/iter (202 µs … 2'824 µs) 267 µs 1'756 µs 2'291 µs
MikroORM 438 µs/iter (19'487 ns … 2'983 µs) 554 µs 2'595 µs 2'960 µs
MySQL2 262 µs/iter (192 µs … 2'003 µs) 257 µs 1'579 µs 1'928 µs
Prisma 509 µs/iter (412 µs … 1'990 µs) 481 µs 1'839 µs 1'979 µs
Sequelize 466 µs/iter (343 µs … 2'521 µs) 437 µs 2'128 µs 2'447 µs
TypeORM 415 µs/iter (310 µs … 2'547 µs) 392 µs 1'966 µs 2'542 µs
DrizzleORM 466 µs/iter (327 µs … 2'522 µs) 473 µs 1'957 µs 2'347 µs
KnexJS 323 µs/iter (256 µs … 1'916 µs) 314 µs 1'264 µs 1'784 µs
Kysely 296 µs/iter (240 µs … 1'462 µs) 294 µs 1'224 µs 1'452 µs
Mariadb 262 µs/iter (191 µs … 2'641 µs) 255 µs 1'333 µs 1'628 µs
MikroORM 368 µs/iter (16'301 ns … 2'301 µs) 503 µs 1'825 µs 2'165 µs
MySQL2 244 µs/iter (187 µs … 1'524 µs) 241 µs 1'175 µs 1'393 µs
Prisma 495 µs/iter (410 µs … 1'557 µs) 482 µs 1'452 µs 1'557 µs
Sequelize 440 µs/iter (339 µs … 2'023 µs) 433 µs 1'644 µs 1'944 µs
TypeORM 392 µs/iter (308 µs … 2'126 µs) 382 µs 1'531 µs 2'012 µs

summary for MySQL
MySQL2
1.09x faster than Mariadb
1.21x faster than Kysely
1.31x faster than KnexJS
1.58x faster than TypeORM
1.67x faster than MikroORM
1.77x faster than Sequelize
1.87x faster than DrizzleORM
1.94x faster than Prisma
1.08x faster than Mariadb
1.22x faster than Kysely
1.33x faster than KnexJS
1.51x faster than MikroORM
1.61x faster than TypeORM
1.81x faster than Sequelize
1.91x faster than DrizzleORM
2.03x faster than Prisma
36 changes: 18 additions & 18 deletions results/bun-mysql-single.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 428 µs/iter (318 µs … 2'086 µs) 417 µs 1'644 µs 2'085 µs
KnexJS 336 µs/iter (260 µs … 1'940 µs) 331 µs 1'612 µs 1'892 µs
Kysely 307 µs/iter (243 µs … 1'866 µs) 296 µs 1'490 µs 1'789 µs
Mariadb 237 µs/iter (173 µs … 1'813 µs) 237 µs 1'479 µs 1'726 µs
MikroORM 401 µs/iter (17'644 ns … 2'882 µs) 534 µs 2'364 µs 2'856 µs
MySQL2 255 µs/iter (188 µs … 2'010 µs) 248 µs 1'604 µs 1'848 µs
Prisma 515 µs/iter (414 µs … 2'076 µs) 485 µs 1'932 µs 2'058 µs
Sequelize 489 µs/iter (350 µs … 2'650 µs) 459 µs 2'288 µs 2'620 µs
TypeORM 426 µs/iter (311 µs … 3'029 µs) 407 µs 2'132 µs 2'640 µs
DrizzleORM 420 µs/iter (322 µs … 1'665 µs) 414 µs 1'486 µs 1'645 µs
KnexJS 319 µs/iter (256 µs … 1'570 µs) 316 µs 1'225 µs 1'428 µs
Kysely 294 µs/iter (233 µs … 1'426 µs) 288 µs 1'218 µs 1'329 µs
Mariadb 229 µs/iter (172 µs … 1'340 µs) 231 µs 1'107 µs 1'271 µs
MikroORM 359 µs/iter (16'500 ns … 2'313 µs) 506 µs 1'793 µs 2'304 µs
MySQL2 251 µs/iter (194 µs … 1'551 µs) 252 µs 1'171 µs 1'379 µs
Prisma 506 µs/iter (415 µs … 2'001 µs) 491 µs 1'534 µs 1'982 µs
Sequelize 438 µs/iter (343 µs … 1'846 µs) 422 µs 1'575 µs 1'790 µs
TypeORM 383 µs/iter (301 µs … 1'647 µs) 381 µs 1'406 µs 1'629 µs

summary for MySQL
Mariadb
1.08x faster than MySQL2
1.3x faster than Kysely
1.42x faster than KnexJS
1.69x faster than MikroORM
1.8x faster than TypeORM
1.8x faster than DrizzleORM
2.06x faster than Sequelize
2.17x faster than Prisma
1.09x faster than MySQL2
1.28x faster than Kysely
1.39x faster than KnexJS
1.57x faster than MikroORM
1.67x faster than TypeORM
1.83x faster than DrizzleORM
1.91x faster than Sequelize
2.21x faster than Prisma
40 changes: 20 additions & 20 deletions results/bun-postgres-cpu-count.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 400 µs/iter (304 µs … 2'226 µs) 392 µs 1'615 µs 1'923 µs
KnexJS 345 µs/iter (271 µs … 1'980 µs) 332 µs 1'578 µs 1'959 µs
Kysely 315 µs/iter (253 µs … 1'911 µs) 305 µs 1'484 µs 1'798 µs
MikroORM 371 µs/iter (17'854 ns … 2'864 µs) 505 µs 2'291 µs 2'863 µs
Pg 283 µs/iter (217 µs … 1'990 µs) 271 µs 1'638 µs 1'840 µs
PgTyped 298 µs/iter (232 µs … 2'008 µs) 285 µs 1'606 µs 1'838 µs
Postgres.js 204 µs/iter (142 µs … 2'044 µs) 200 µs 1'481 µs 2'013 µs
Prisma 521 µs/iter (412 µs … 2'179 µs) 486 µs 2'001 µs 2'168 µs
Sequelize 406 µs/iter (307 µs … 2'461 µs) 389 µs 1'895 µs 2'393 µs
TypeORM 450 µs/iter (334 µs … 2'569 µs) 437 µs 2'095 µs 2'539 µs
DrizzleORM 383 µs/iter (304 µs … 1'657 µs) 376 µs 1'375 µs 1'628 µs
KnexJS 344 µs/iter (262 µs … 2'082 µs) 337 µs 1'345 µs 1'973 µs
Kysely 304 µs/iter (249 µs … 1'484 µs) 295 µs 1'258 µs 1'458 µs
MikroORM 347 µs/iter (16'230 ns … 2'208 µs) 483 µs 1'760 µs 2'204 µs
Pg 266 µs/iter (213 µs … 1'598 µs) 260 µs 1'226 µs 1'481 µs
PgTyped 295 µs/iter (232 µs … 1'717 µs) 288 µs 1'301 µs 1'580 µs
Postgres.js 188 µs/iter (143 µs … 1'444 µs) 189 µs 1'126 µs 1'313 µs
Prisma 502 µs/iter (420 µs … 1'584 µs) 486 µs 1'444 µs 1'579 µs
Sequelize 393 µs/iter (303 µs … 2'129 µs) 380 µs 1'592 µs 1'995 µs
TypeORM 424 µs/iter (327 µs … 2'186 µs) 414 µs 1'553 µs 2'145 µs

summary for PostgreSQL
Postgres.js
1.39x faster than Pg
1.46x faster than PgTyped
1.55x faster than Kysely
1.7x faster than KnexJS
1.82x faster than MikroORM
1.96x faster than DrizzleORM
1.99x faster than Sequelize
2.21x faster than TypeORM
2.56x faster than Prisma
1.42x faster than Pg
1.57x faster than PgTyped
1.62x faster than Kysely
1.83x faster than KnexJS
1.85x faster than MikroORM
2.04x faster than DrizzleORM
2.1x faster than Sequelize
2.26x faster than TypeORM
2.68x faster than Prisma
38 changes: 19 additions & 19 deletions results/bun-postgres-default.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 433 µs/iter (308 µs … 2'460 µs) 426 µs 1'922 µs 2'312 µs
KnexJS 349 µs/iter (268 µs … 1'994 µs) 333 µs 1'686 µs 1'975 µs
Kysely 339 µs/iter (251 µs … 2'247 µs) 316 µs 1'790 µs 2'156 µs
MikroORM 396 µs/iter (18'174 ns … 3'114 µs) 512 µs 2'378 µs 2'967 µs
Pg 279 µs/iter (220 µs … 1'823 µs) 259 µs 1'686 µs 1'804 µs
PgTyped 309 µs/iter (231 µs … 2'080 µs) 292 µs 1'882 µs 2'051 µs
Postgres.js 201 µs/iter (147 µs … 2'055 µs) 193 µs 1'691 µs 1'976 µs
Prisma 518 µs/iter (417 µs … 2'272 µs) 481 µs 2'044 µs 2'196 µs
Sequelize 419 µs/iter (305 µs … 2'740 µs) 384 µs 2'115 µs 2'616 µs
TypeORM 469 µs/iter (335 µs … 2'553 µs) 446 µs 2'278 µs 2'453 µs
DrizzleORM 384 µs/iter (289 µs … 1'734 µs) 380 µs 1'376 µs 1'659 µs
KnexJS 330 µs/iter (262 µs … 1'602 µs) 326 µs 1'276 µs 1'597 µs
Kysely 309 µs/iter (247 µs … 1'442 µs) 300 µs 1'289 µs 1'431 µs
MikroORM 372 µs/iter (15'839 ns … 2'797 µs) 511 µs 1'976 µs 2'525 µs
Pg 263 µs/iter (212 µs … 1'311 µs) 253 µs 1'213 µs 1'290 µs
PgTyped 286 µs/iter (228 µs … 1'441 µs) 280 µs 1'282 µs 1'396 µs
Postgres.js 185 µs/iter (140 µs … 3'857 µs) 185 µs 1'113 µs 1'345 µs
Prisma 488 µs/iter (407 µs … 1'713 µs) 469 µs 1'426 µs 1'614 µs
Sequelize 394 µs/iter (309 µs … 2'088 µs) 383 µs 1'632 µs 2'005 µs
TypeORM 442 µs/iter (329 µs … 3'574 µs) 431 µs 1'740 µs 2'594 µs

summary for PostgreSQL
Postgres.js
1.39x faster than Pg
1.42x faster than Pg
1.54x faster than PgTyped
1.69x faster than Kysely
1.74x faster than KnexJS
1.97x faster than MikroORM
2.09x faster than Sequelize
2.16x faster than DrizzleORM
2.34x faster than TypeORM
2.58x faster than Prisma
1.67x faster than Kysely
1.78x faster than KnexJS
2.01x faster than MikroORM
2.07x faster than DrizzleORM
2.13x faster than Sequelize
2.38x faster than TypeORM
2.63x faster than Prisma
40 changes: 20 additions & 20 deletions results/bun-postgres-max.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
cpu: AMD EPYC 7763 64-Core Processor
runtime: bun 1.1.17 (x64-linux)
runtime: bun 1.1.18 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 412 µs/iter (317 µs … 2'219 µs) 395 µs 1'806 µs 1'972 µs
KnexJS 355 µs/iter (267 µs … 2'050 µs) 342 µs 1'729 µs 1'960 µs
Kysely 329 µs/iter (257 µs … 2'012 µs) 316 µs 1'743 µs 1'914 µs
MikroORM 428 µs/iter (18'184 ns … 3'674 µs) 551 µs 2'580 µs 3'245 µs
Pg 293 µs/iter (224 µs … 2'559 µs) 267 µs 1'819 µs 2'265 µs
PgTyped 326 µs/iter (231 µs … 3'071 µs) 306 µs 1'949 µs 2'438 µs
Postgres.js 202 µs/iter (145 µs … 2'039 µs) 196 µs 1'527 µs 1'950 µs
Prisma 515 µs/iter (414 µs … 2'319 µs) 480 µs 2'017 µs 2'192 µs
Sequelize 420 µs/iter (310 µs … 2'440 µs) 391 µs 2'163 µs 2'379 µs
TypeORM 471 µs/iter (335 µs … 2'585 µs) 445 µs 2'236 µs 2'427 µs
DrizzleORM 385 µs/iter (304 µs … 1'672 µs) 378 µs 1'398 µs 1'635 µs
KnexJS 341 µs/iter (259 µs … 1'860 µs) 342 µs 1'314 µs 1'598 µs
Kysely 303 µs/iter (251 µs … 1'353 µs) 294 µs 1'274 µs 1'342 µs
MikroORM 345 µs/iter (16'009 ns … 2'527 µs) 487 µs 1'850 µs 2'357 µs
Pg 267 µs/iter (219 µs … 1'522 µs) 256 µs 1'216 µs 1'390 µs
PgTyped 283 µs/iter (218 µs … 1'497 µs) 273 µs 1'319 µs 1'477 µs
Postgres.js 185 µs/iter (138 µs … 1'595 µs) 187 µs 1'102 µs 1'414 µs
Prisma 486 µs/iter (412 µs … 1'580 µs) 467 µs 1'470 µs 1'554 µs
Sequelize 392 µs/iter (300 µs … 1'875 µs) 383 µs 1'548 µs 1'852 µs
TypeORM 420 µs/iter (327 µs … 2'149 µs) 411 µs 1'639 µs 2'140 µs

summary for PostgreSQL
Postgres.js
1.45x faster than Pg
1.61x faster than PgTyped
1.63x faster than Kysely
1.76x faster than KnexJS
2.04x faster than DrizzleORM
2.08x faster than Sequelize
2.12x faster than MikroORM
2.33x faster than TypeORM
2.55x faster than Prisma
1.44x faster than Pg
1.53x faster than PgTyped
1.64x faster than Kysely
1.84x faster than KnexJS
1.87x faster than MikroORM
2.08x faster than DrizzleORM
2.12x faster than Sequelize
2.27x faster than TypeORM
2.63x faster than Prisma
Loading

0 comments on commit e7a1bc3

Please sign in to comment.