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 May 27, 2024
1 parent 23e4b31 commit 22d822d
Show file tree
Hide file tree
Showing 18 changed files with 290 additions and 290 deletions.
Binary file modified bun.lockb
Binary file not shown.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"kysely": "^0.27.3",
"mariadb": "^3.3.0",
"mitata": "^0.1.11",
"mysql2": "^3.9.7",
"mysql2": "^3.9.8",
"pg": "^8.11.5",
"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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 425 µs/iter (330 µs … 1'865 µs) 417 µs 1'521 µs 1'850 µs
KnexJS 336 µs/iter (266 µs … 1'664 µs) 332 µs 1'335 µs 1'564 µs
Kysely 299 µs/iter (248 µs … 1'571 µs) 291 µs 1'268 µs 1'522 µs
Mariadb 241 µs/iter (177 µs … 1'817 µs) 241 µs 1'248 µs 1'606 µs
MikroORM 427 µs/iter (19'376 ns … 2'933 µs) 560 µs 2'319 µs 2'763 µs
MySQL2 250 µs/iter (193 µs … 1'745 µs) 243 µs 1'251 µs 1'686 µs
Prisma 508 µs/iter (417 µs … 1'948 µs) 487 µs 1'699 µs 1'945 µs
Sequelize 472 µs/iter (354 µs … 2'601 µs) 448 µs 2'033 µs 2'512 µs
TypeORM 414 µs/iter (309 µs … 2'838 µs) 400 µs 1'883 µs 2'435 µs
DrizzleORM 437 µs/iter (333 µs … 1'932 µs) 422 µs 1'716 µs 1'923 µs
KnexJS 348 µs/iter (273 µs … 1'854 µs) 341 µs 1'605 µs 1'810 µs
Kysely 317 µs/iter (242 µs … 2'147 µs) 309 µs 1'610 µs 2'074 µs
Mariadb 242 µs/iter (178 µs … 1'816 µs) 240 µs 1'516 µs 1'713 µs
MikroORM 408 µs/iter (17'663 ns … 2'954 µs) 547 µs 2'316 µs 2'724 µs
MySQL2 260 µs/iter (203 µs … 1'869 µs) 254 µs 1'596 µs 1'819 µs
Prisma 508 µs/iter (414 µs … 1'977 µs) 479 µs 1'892 µs 1'956 µs
Sequelize 486 µs/iter (366 µs … 2'965 µs) 448 µs 2'254 µs 2'724 µs
TypeORM 429 µs/iter (312 µs … 3'092 µs) 409 µs 2'132 µs 2'530 µs

summary for MySQL
Mariadb
1.04x faster than MySQL2
1.24x faster than Kysely
1.39x faster than KnexJS
1.72x faster than TypeORM
1.76x faster than DrizzleORM
1.77x faster than MikroORM
1.96x faster than Sequelize
2.11x faster than Prisma
1.08x faster than MySQL2
1.31x faster than Kysely
1.44x faster than KnexJS
1.69x faster than MikroORM
1.77x faster than TypeORM
1.8x faster than DrizzleORM
2.01x faster than Sequelize
2.1x 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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 436 µs/iter (330 µs … 2'475 µs) 422 µs 1'650 µs 2'010 µs
KnexJS 345 µs/iter (268 µs … 1'677 µs) 342 µs 1'379 µs 1'562 µs
Kysely 303 µs/iter (241 µs … 1'745 µs) 298 µs 1'336 µs 1'704 µs
Mariadb 237 µs/iter (178 µs … 1'676 µs) 237 µs 1'200 µs 1'470 µs
MikroORM 402 µs/iter (17'393 ns … 2'556 µs) 538 µs 2'209 µs 2'552 µs
MySQL2 264 µs/iter (204 µs … 1'973 µs) 261 µs 1'301 µs 1'796 µs
Prisma 505 µs/iter (413 µs … 1'808 µs) 484 µs 1'607 µs 1'781 µs
Sequelize 466 µs/iter (360 µs … 2'549 µs) 441 µs 1'892 µs 2'333 µs
TypeORM 402 µs/iter (307 µs … 1'927 µs) 396 µs 1'649 µs 1'915 µs
DrizzleORM 437 µs/iter (326 µs … 2'028 µs) 425 µs 1'710 µs 1'922 µs
KnexJS 350 µs/iter (276 µs … 1'981 µs) 343 µs 1'624 µs 1'874 µs
Kysely 305 µs/iter (246 µs … 1'715 µs) 292 µs 1'596 µs 1'706 µs
Mariadb 270 µs/iter (179 µs … 2'809 µs) 257 µs 1'653 µs 2'506 µs
MikroORM 426 µs/iter (18'655 ns … 2'924 µs) 553 µs 2'493 µs 2'828 µs
MySQL2 271 µs/iter (198 µs … 2'062 µs) 259 µs 1'732 µs 1'978 µs
Prisma 519 µs/iter (419 µs … 2'139 µs) 485 µs 2'001 µs 2'113 µs
Sequelize 489 µs/iter (352 µs … 3'344 µs) 460 µs 2'286 µs 2'924 µs
TypeORM 428 µs/iter (305 µs … 2'585 µs) 409 µs 2'071 µs 2'569 µs

summary for MySQL
Mariadb
1.11x faster than MySQL2
1.28x faster than Kysely
1.46x faster than KnexJS
1.7x faster than MikroORM
1.7x faster than TypeORM
1.84x faster than DrizzleORM
1.97x faster than Sequelize
2.13x faster than Prisma
1x faster than MySQL2
1.13x faster than Kysely
1.3x faster than KnexJS
1.58x faster than MikroORM
1.59x faster than TypeORM
1.62x faster than DrizzleORM
1.82x faster than Sequelize
1.93x faster than Prisma
34 changes: 17 additions & 17 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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 461 µs/iter (335 µs … 3'496 µs) 448 µs 1'842 µs 2'712 µs
KnexJS 346 µs/iter (269 µs … 1'715 µs) 338 µs 1'446 µs 1'695 µs
Kysely 301 µs/iter (242 µs … 1'725 µs) 290 µs 1'473 µs 1'695 µs
Mariadb 270 µs/iter (192 µs … 2'322 µs) 261 µs 1'539 µs 1'925 µs
MikroORM 413 µs/iter (17'021 ns … 2'918 µs) 540 µs 2'154 µs 2'676 µs
MySQL2 260 µs/iter (200 µs … 1'879 µs) 254 µs 1'403 µs 1'724 µs
Prisma 506 µs/iter (427 µs … 1'891 µs) 485 µs 1'680 µs 1'876 µs
Sequelize 476 µs/iter (345 µs … 2'525 µs) 449 µs 2'067 µs 2'525 µs
TypeORM 417 µs/iter (304 µs … 2'560 µs) 401 µs 1'920 µs 2'422 µs
DrizzleORM 496 µs/iter (329 µs … 2'662 µs) 490 µs 2'231 µs 2'643 µs
KnexJS 361 µs/iter (276 µs … 2'299 µs) 340 µs 1'836 µs 2'081 µs
Kysely 314 µs/iter (246 µs … 2'030 µs) 296 µs 1'764 µs 1'997 µs
Mariadb 284 µs/iter (202 µs … 2'222 µs) 268 µs 1'863 µs 2'008 µs
MikroORM 436 µs/iter (18'254 ns … 3'195 µs) 552 µs 2'470 µs 3'118 µs
MySQL2 270 µs/iter (205 µs … 1'952 µs) 258 µs 1'762 µs 1'875 µs
Prisma 521 µs/iter (424 µs … 2'060 µs) 490 µs 1'959 µs 2'053 µs
Sequelize 492 µs/iter (357 µs … 2'659 µs) 457 µs 2'388 µs 2'589 µs
TypeORM 427 µs/iter (312 µs … 2'574 µs) 403 µs 2'293 µs 2'556 µs

summary for MySQL
MySQL2
1.04x faster than Mariadb
1.05x faster than Mariadb
1.16x faster than Kysely
1.33x faster than KnexJS
1.59x faster than MikroORM
1.6x faster than TypeORM
1.77x faster than DrizzleORM
1.83x faster than Sequelize
1.94x faster than Prisma
1.34x faster than KnexJS
1.58x faster than TypeORM
1.62x faster than MikroORM
1.82x faster than Sequelize
1.84x faster than DrizzleORM
1.93x 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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 428 µs/iter (327 µs … 1'959 µs) 417 µs 1'579 µs 1'838 µs
KnexJS 336 µs/iter (264 µs … 1'586 µs) 336 µs 1'345 µs 1'517 µs
Kysely 303 µs/iter (242 µs … 1'559 µs) 297 µs 1'290 µs 1'556 µs
Mariadb 230 µs/iter (173 µs … 1'611 µs) 234 µs 1'173 µs 1'457 µs
MikroORM 396 µs/iter (18'214 ns … 2'655 µs) 539 µs 2'141 µs 2'604 µs
MySQL2 256 µs/iter (198 µs … 1'925 µs) 253 µs 1'285 µs 1'645 µs
Prisma 506 µs/iter (403 µs … 1'834 µs) 487 µs 1'567 µs 1'729 µs
Sequelize 465 µs/iter (356 µs … 2'626 µs) 443 µs 1'886 µs 2'251 µs
TypeORM 407 µs/iter (303 µs … 2'352 µs) 389 µs 1'722 µs 2'239 µs
DrizzleORM 440 µs/iter (328 µs … 1'993 µs) 426 µs 1'712 µs 1'889 µs
KnexJS 344 µs/iter (273 µs … 1'794 µs) 334 µs 1'558 µs 1'760 µs
Kysely 300 µs/iter (238 µs … 1'710 µs) 291 µs 1'375 µs 1'692 µs
Mariadb 248 µs/iter (173 µs … 2'134 µs) 247 µs 1'538 µs 1'817 µs
MikroORM 402 µs/iter (17'893 ns … 2'779 µs) 543 µs 2'206 µs 2'722 µs
MySQL2 259 µs/iter (203 µs … 1'819 µs) 251 µs 1'503 µs 1'689 µs
Prisma 514 µs/iter (412 µs … 2'219 µs) 488 µs 1'868 µs 1'973 µs
Sequelize 475 µs/iter (360 µs … 2'592 µs) 447 µs 2'116 µs 2'498 µs
TypeORM 416 µs/iter (305 µs … 2'240 µs) 398 µs 1'934 µs 2'226 µs

summary for MySQL
Mariadb
1.11x faster than MySQL2
1.32x faster than Kysely
1.46x faster than KnexJS
1.72x faster than MikroORM
1.77x faster than TypeORM
1.86x faster than DrizzleORM
2.02x faster than Sequelize
2.19x faster than Prisma
1.04x faster than MySQL2
1.21x faster than Kysely
1.38x faster than KnexJS
1.62x faster than MikroORM
1.67x faster than TypeORM
1.77x faster than DrizzleORM
1.91x faster than Sequelize
2.07x 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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 400 µs/iter (307 µs … 1'854 µs) 392 µs 1'500 µs 1'828 µs
KnexJS 344 µs/iter (272 µs … 1'719 µs) 339 µs 1'347 µs 1'700 µs
Kysely 325 µs/iter (264 µs … 1'749 µs) 314 µs 1'347 µs 1'745 µs
MikroORM 371 µs/iter (16'291 ns … 2'996 µs) 503 µs 1'973 µs 2'711 µs
Pg 279 µs/iter (227 µs … 1'520 µs) 268 µs 1'305 µs 1'489 µs
PgTyped 304 µs/iter (238 µs … 1'785 µs) 292 µs 1'474 µs 1'754 µs
Postgres.js 198 µs/iter (141 µs … 2'088 µs) 195 µs 1'214 µs 1'575 µs
Prisma 488 µs/iter (402 µs … 2'000 µs) 470 µs 1'549 µs 1'932 µs
Sequelize 424 µs/iter (318 µs … 2'447 µs) 403 µs 1'841 µs 2'259 µs
TypeORM 455 µs/iter (341 µs … 2'524 µs) 439 µs 1'876 µs 2'123 µs
DrizzleORM 393 µs/iter (305 µs … 2'104 µs) 380 µs 1'504 µs 1'872 µs
KnexJS 355 µs/iter (272 µs … 2'644 µs) 343 µs 1'462 µs 2'049 µs
Kysely 331 µs/iter (254 µs … 1'801 µs) 323 µs 1'461 µs 1'773 µs
MikroORM 382 µs/iter (16'481 ns … 3'006 µs) 508 µs 2'196 µs 2'775 µs
Pg 278 µs/iter (226 µs … 1'563 µs) 266 µs 1'313 µs 1'510 µs
PgTyped 299 µs/iter (240 µs … 1'671 µs) 289 µs 1'416 µs 1'607 µs
Postgres.js 188 µs/iter (141 µs … 1'457 µs) 190 µs 1'230 µs 1'417 µs
Prisma 496 µs/iter (415 µs … 1'872 µs) 472 µs 1'671 µs 1'862 µs
Sequelize 413 µs/iter (314 µs … 2'345 µs) 398 µs 1'846 µs 2'284 µs
TypeORM 449 µs/iter (337 µs … 2'233 µs) 431 µs 2'004 µs 2'101 µs

summary for PostgreSQL
Postgres.js
1.41x faster than Pg
1.54x faster than PgTyped
1.65x faster than Kysely
1.74x faster than KnexJS
1.88x faster than MikroORM
2.03x faster than DrizzleORM
2.15x faster than Sequelize
2.3x faster than TypeORM
2.47x faster than Prisma
1.48x faster than Pg
1.59x faster than PgTyped
1.76x faster than Kysely
1.88x faster than KnexJS
2.03x faster than MikroORM
2.09x faster than DrizzleORM
2.19x faster than Sequelize
2.38x faster than TypeORM
2.63x faster than Prisma
40 changes: 20 additions & 20 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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 416 µs/iter (308 µs … 2'417 µs) 415 µs 1'497 µs 1'880 µs
KnexJS 360 µs/iter (273 µs … 2'050 µs) 353 µs 1'442 µs 1'865 µs
Kysely 320 µs/iter (263 µs … 1'597 µs) 311 µs 1'385 µs 1'579 µs
MikroORM 375 µs/iter (15'288 ns … 2'803 µs) 508 µs 2'102 µs 2'747 µs
Pg 282 µs/iter (226 µs … 1'767 µs) 270 µs 1'364 µs 1'679 µs
PgTyped 307 µs/iter (240 µs … 1'779 µs) 297 µs 1'460 µs 1'766 µs
Postgres.js 193 µs/iter (141 µs … 1'602 µs) 193 µs 1'242 µs 1'566 µs
Prisma 496 µs/iter (408 µs … 1'727 µs) 477 µs 1'531 µs 1'661 µs
Sequelize 420 µs/iter (312 µs … 2'067 µs) 402 µs 1'875 µs 2'065 µs
TypeORM 458 µs/iter (346 µs … 2'128 µs) 443 µs 1'885 µs 2'126 µs
DrizzleORM 394 µs/iter (306 µs … 2'144 µs) 384 µs 1'551 µs 1'827 µs
KnexJS 354 µs/iter (280 µs … 1'776 µs) 342 µs 1'598 µs 1'761 µs
Kysely 317 µs/iter (257 µs … 1'858 µs) 305 µs 1'365 µs 1'633 µs
MikroORM 367 µs/iter (17'463 ns … 2'709 µs) 510 µs 2'161 µs 2'567 µs
Pg 282 µs/iter (221 µs … 1'778 µs) 267 µs 1'508 µs 1'772 µs
PgTyped 304 µs/iter (237 µs … 1'845 µs) 290 µs 1'644 µs 1'768 µs
Postgres.js 200 µs/iter (141 µs … 1'910 µs) 198 µs 1'395 µs 1'754 µs
Prisma 490 µs/iter (399 µs … 1'914 µs) 464 µs 1'799 µs 1'896 µs
Sequelize 419 µs/iter (310 µs … 2'214 µs) 396 µs 2'019 µs 2'179 µs
TypeORM 466 µs/iter (339 µs … 2'665 µs) 446 µs 2'074 µs 2'583 µs

summary for PostgreSQL
Postgres.js
1.46x faster than Pg
1.59x faster than PgTyped
1.66x faster than Kysely
1.86x faster than KnexJS
1.94x faster than MikroORM
2.16x faster than DrizzleORM
2.18x faster than Sequelize
2.37x faster than TypeORM
2.57x faster than Prisma
1.41x faster than Pg
1.52x faster than PgTyped
1.58x faster than Kysely
1.76x faster than KnexJS
1.83x faster than MikroORM
1.97x faster than DrizzleORM
2.09x faster than Sequelize
2.33x faster than TypeORM
2.45x faster than Prisma
38 changes: 19 additions & 19 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.9 (x64-linux)
runtime: bun 1.1.10 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 404 µs/iter (313 µs … 1'904 µs) 392 µs 1'596 µs 1'870 µs
KnexJS 351 µs/iter (277 µs … 1'995 µs) 341 µs 1'363 µs 1'944 µs
Kysely 325 µs/iter (265 µs … 1'676 µs) 314 µs 1'406 µs 1'615 µs
MikroORM 403 µs/iter (17'041 ns … 3'063 µs) 534 µs 2'214 µs 2'768 µs
Pg 292 µs/iter (228 µs … 1'909 µs) 281 µs 1'504 µs 1'838 µs
PgTyped 319 µs/iter (246 µs … 1'965 µs) 303 µs 1'657 µs 1'855 µs
Postgres.js 200 µs/iter (148 µs … 1'965 µs) 193 µs 1'388 µs 1'912 µs
Prisma 498 µs/iter (415 µs … 1'947 µs) 478 µs 1'625 µs 1'833 µs
Sequelize 418 µs/iter (312 µs … 2'368 µs) 404 µs 1'894 µs 2'321 µs
TypeORM 461 µs/iter (339 µs … 2'347 µs) 444 µs 1'892 µs 2'248 µs
DrizzleORM 401 µs/iter (317 µs … 1'866 µs) 390 µs 1'600 µs 1'837 µs
KnexJS 357 µs/iter (275 µs … 2'149 µs) 345 µs 1'633 µs 1'858 µs
Kysely 317 µs/iter (258 µs … 1'862 µs) 303 µs 1'412 µs 1'790 µs
MikroORM 362 µs/iter (15'499 ns … 2'567 µs) 501 µs 2'047 µs 2'542 µs
Pg 278 µs/iter (226 µs … 1'743 µs) 262 µs 1'337 µs 1'630 µs
PgTyped 316 µs/iter (244 µs … 2'251 µs) 304 µs 1'652 µs 2'126 µs
Postgres.js 191 µs/iter (144 µs … 1'954 µs) 189 µs 1'356 µs 1'721 µs
Prisma 532 µs/iter (413 µs … 3'054 µs) 479 µs 1'726 µs 2'660 µs
Sequelize 416 µs/iter (311 µs … 2'317 µs) 394 µs 1'923 µs 2'191 µs
TypeORM 471 µs/iter (340 µs … 2'617 µs) 451 µs 2'012 µs 2'247 µs

summary for PostgreSQL
Postgres.js
1.46x faster than Pg
1.6x faster than PgTyped
1.63x faster than Kysely
1.76x faster than KnexJS
2.02x faster than MikroORM
2.02x faster than DrizzleORM
2.09x faster than Sequelize
2.31x faster than TypeORM
2.5x faster than Prisma
1.65x faster than PgTyped
1.66x faster than Kysely
1.87x faster than KnexJS
1.9x faster than MikroORM
2.1x faster than DrizzleORM
2.18x faster than Sequelize
2.47x faster than TypeORM
2.78x faster than Prisma
Loading

0 comments on commit 22d822d

Please sign in to comment.