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 Mar 25, 2024
1 parent ecbef31 commit b17215b
Show file tree
Hide file tree
Showing 18 changed files with 298 additions and 298 deletions.
Binary file modified bun.lockb
Binary file not shown.
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
},
"dependencies": {
"@faker-js/faker": "^8.4.1",
"@mikro-orm/core": "^6.1.11",
"@mikro-orm/mysql": "^6.1.11",
"@mikro-orm/postgresql": "^6.1.11",
"@mikro-orm/core": "^6.1.12",
"@mikro-orm/mysql": "^6.1.12",
"@mikro-orm/postgresql": "^6.1.12",
"@pgtyped/runtime": "^2.3.0",
"@prisma/client": "^5.11.0",
"drizzle-orm": "^0.30.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
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p9
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 425 µs/iter (314 µs … 2'032 µs) 415 µs 1'783 µs 1'999 µs
KnexJS 336 µs/iter (263 µs … 1'757 µs) 327 µs 1'432 µs 1'745 µs
Kysely 297 µs/iter (241 µs … 1'464 µs) 289 µs 1'361 µs 1'457 µs
Mariadb 244 µs/iter (177 µs … 2'172 µs) 242 µs 1'284 µs 1'648 µs
MikroORM 421 µs/iter (18'054 ns … 2'622 µs) 546 µs 2'112 µs 2'525 µs
MySQL 445 µs/iter (345 µs … 2'392 µs) 423 µs 1'818 µs 2'308 µs
MySQL2 266 µs/iter (201 µs … 2'014 µs) 258 µs 1'359 µs 1'745 µs
Prisma 502 µs/iter (418 µs … 1'690 µs) 482 µs 1'570 µs 1'681 µs
Sequelize 470 µs/iter (348 µs … 2'327 µs) 460 µs 1'785 µs 2'277 µs
TypeORM 583 µs/iter (464 µs … 2'035 µs) 565 µs 1'854 µs 2'020 µs
DrizzleORM 401 µs/iter (306 µs … 1'677 µs) 403 µs 1'402 µs 1'586 µs
KnexJS 330 µs/iter (239 µs … 1'513 µs) 336 µs 1'250 µs 1'468 µs
Kysely 292 µs/iter (219 µs … 1'811 µs) 287 µs 1'210 µs 1'461 µs
Mariadb 227 µs/iter (167 µs … 1'342 µs) 234 µs 1'060 µs 1'320 µs
MikroORM 353 µs/iter (15'489 ns … 2'131 µs) 509 µs 1'780 µs 2'113 µs
MySQL 416 µs/iter (313 µs … 2'232 µs) 415 µs 1'435 µs 2'130 µs
MySQL2 237 µs/iter (176 µs … 1'300 µs) 239 µs 1'113 µs 1'271 µs
Prisma 464 µs/iter (366 µs … 1'468 µs) 457 µs 1'393 µs 1'467 µs
Sequelize 432 µs/iter (336 µs … 1'641 µs) 422 µs 1'442 µs 1'638 µs
TypeORM 565 µs/iter (447 µs … 1'867 µs) 552 µs 1'696 µs 1'754 µs

summary for MySQL
Mariadb
1.09x faster than MySQL2
1.22x faster than Kysely
1.38x faster than KnexJS
1.72x faster than MikroORM
1.74x faster than DrizzleORM
1.04x faster than MySQL2
1.28x faster than Kysely
1.45x faster than KnexJS
1.55x faster than MikroORM
1.76x faster than DrizzleORM
1.83x faster than MySQL
1.92x faster than Sequelize
2.06x faster than Prisma
2.39x faster than TypeORM
1.9x faster than Sequelize
2.04x faster than Prisma
2.49x faster than TypeORM
36 changes: 18 additions & 18 deletions results/bun-mysql-default.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p9
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 424 µs/iter (312 µs … 2'169 µs) 420 µs 1'642 µs 2'140 µs
KnexJS 345 µs/iter (267 µs … 1'927 µs) 336 µs 1'448 µs 1'793 µs
Kysely 301 µs/iter (244 µs … 1'578 µs) 292 µs 1'385 µs 1'576 µs
Mariadb 243 µs/iter (180 µs … 1'602 µs) 239 µs 1'371 µs 1'532 µs
MikroORM 393 µs/iter (17'011 ns … 2'960 µs) 523 µs 1'999 µs 2'690 µs
MySQL 436 µs/iter (343 µs … 2'185 µs) 426 µs 1'682 µs 1'981 µs
MySQL2 258 µs/iter (197 µs … 1'604 µs) 253 µs 1'375 µs 1'562 µs
Prisma 517 µs/iter (420 µs … 2'454 µs) 484 µs 1'709 µs 2'393 µs
Sequelize 475 µs/iter (360 µs … 2'275 µs) 456 µs 1'937 µs 2'139 µs
TypeORM 590 µs/iter (449 µs … 2'251 µs) 563 µs 1'960 µs 2'236 µs
DrizzleORM 402 µs/iter (300 µs … 2'123 µs) 404 µs 1'381 µs 1'716 µs
KnexJS 322 µs/iter (236 µs … 1'440 µs) 323 µs 1'215 µs 1'424 µs
Kysely 288 µs/iter (219 µs … 1'330 µs) 292 µs 1'207 µs 1'318 µs
Mariadb 226 µs/iter (162 µs … 1'310 µs) 230 µs 1'089 µs 1'234 µs
MikroORM 339 µs/iter (15'690 ns … 2'224 µs) 489 µs 1'733 µs 2'174 µs
MySQL 428 µs/iter (342 µs … 1'589 µs) 421 µs 1'439 µs 1'534 µs
MySQL2 246 µs/iter (189 µs … 1'289 µs) 249 µs 1'178 µs 1'251 µs
Prisma 486 µs/iter (400 µs … 1'521 µs) 467 µs 1'408 µs 1'501 µs
Sequelize 439 µs/iter (347 µs … 1'785 µs) 432 µs 1'547 µs 1'690 µs
TypeORM 557 µs/iter (445 µs … 1'984 µs) 542 µs 1'664 µs 1'939 µs

summary for MySQL
Mariadb
1.06x faster than MySQL2
1.24x faster than Kysely
1.09x faster than MySQL2
1.27x faster than Kysely
1.42x faster than KnexJS
1.62x faster than MikroORM
1.75x faster than DrizzleORM
1.8x faster than MySQL
1.96x faster than Sequelize
2.13x faster than Prisma
2.43x faster than TypeORM
1.5x faster than MikroORM
1.77x faster than DrizzleORM
1.89x faster than MySQL
1.94x faster than Sequelize
2.14x faster than Prisma
2.46x faster than TypeORM
36 changes: 18 additions & 18 deletions results/bun-mysql-max.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p9
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 465 µs/iter (324 µs … 2'768 µs) 470 µs 2'022 µs 2'605 µs
KnexJS 349 µs/iter (274 µs … 1'873 µs) 335 µs 1'526 µs 1'866 µs
Kysely 304 µs/iter (238 µs … 2'016 µs) 290 µs 1'526 µs 1'775 µs
Mariadb 279 µs/iter (204 µs … 2'066 µs) 266 µs 1'597 µs 1'835 µs
MikroORM 395 µs/iter (16'982 ns … 2'584 µs) 522 µs 2'119 µs 2'474 µs
MySQL 441 µs/iter (351 µs … 2'636 µs) 432 µs 1'750 µs 2'178 µs
MySQL2 259 µs/iter (202 µs … 1'586 µs) 255 µs 1'373 µs 1'555 µs
Prisma 502 µs/iter (417 µs … 1'809 µs) 481 µs 1'648 µs 1'741 µs
Sequelize 470 µs/iter (354 µs … 2'370 µs) 453 µs 1'907 µs 2'178 µs
TypeORM 585 µs/iter (451 µs … 2'478 µs) 554 µs 2'076 µs 2'388 µs
DrizzleORM 442 µs/iter (316 µs … 2'564 µs) 444 µs 1'589 µs 1'986 µs
KnexJS 334 µs/iter (244 µs … 1'782 µs) 333 µs 1'314 µs 1'604 µs
Kysely 292 µs/iter (227 µs … 1'413 µs) 289 µs 1'239 µs 1'354 µs
Mariadb 255 µs/iter (184 µs … 1'600 µs) 251 µs 1'283 µs 1'522 µs
MikroORM 366 µs/iter (15'359 ns … 2'251 µs) 516 µs 1'868 µs 2'135 µs
MySQL 433 µs/iter (345 µs … 1'707 µs) 431 µs 1'497 µs 1'638 µs
MySQL2 249 µs/iter (180 µs … 1'393 µs) 248 µs 1'236 µs 1'373 µs
Prisma 479 µs/iter (382 µs … 1'529 µs) 465 µs 1'427 µs 1'508 µs
Sequelize 449 µs/iter (326 µs … 1'980 µs) 439 µs 1'644 µs 1'833 µs
TypeORM 561 µs/iter (444 µs … 2'171 µs) 546 µs 1'746 µs 1'946 µs

summary for MySQL
MySQL2
1.08x faster than Mariadb
1.02x faster than Mariadb
1.17x faster than Kysely
1.35x faster than KnexJS
1.52x faster than MikroORM
1.7x faster than MySQL
1.8x faster than DrizzleORM
1.82x faster than Sequelize
1.94x faster than Prisma
2.26x faster than TypeORM
1.34x faster than KnexJS
1.47x faster than MikroORM
1.74x faster than MySQL
1.77x faster than DrizzleORM
1.8x faster than Sequelize
1.92x faster than Prisma
2.25x faster than TypeORM
34 changes: 17 additions & 17 deletions results/bun-mysql-single.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p9
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 426 µs/iter (325 µs … 1'866 µs) 415 µs 1'614 µs 1'862 µs
KnexJS 335 µs/iter (268 µs … 1'717 µs) 325 µs 1'390 µs 1'696 µs
Kysely 299 µs/iter (241 µs … 1'526 µs) 291 µs 1'337 µs 1'493 µs
Mariadb 236 µs/iter (177 µs … 1'531 µs) 235 µs 1'266 µs 1'494 µs
MikroORM 396 µs/iter (17'262 ns … 2'599 µs) 534 µs 2'045 µs 2'502 µs
MySQL 447 µs/iter (355 µs … 1'762 µs) 435 µs 1'638 µs 1'751 µs
MySQL2 261 µs/iter (198 µs … 1'829 µs) 258 µs 1'350 µs 1'737 µs
Prisma 503 µs/iter (425 µs … 1'691 µs) 483 µs 1'568 µs 1'686 µs
Sequelize 466 µs/iter (350 µs … 2'269 µs) 447 µs 1'848 µs 2'246 µs
TypeORM 579 µs/iter (463 µs … 2'129 µs) 559 µs 1'871 µs 2'128 µs
DrizzleORM 389 µs/iter (296 µs … 1'697 µs) 386 µs 1'351 µs 1'621 µs
KnexJS 316 µs/iter (242 µs … 1'627 µs) 312 µs 1'223 µs 1'615 µs
Kysely 274 µs/iter (217 µs … 1'305 µs) 271 µs 1'137 µs 1'256 µs
Mariadb 228 µs/iter (173 µs … 1'319 µs) 234 µs 1'109 µs 1'265 µs
MikroORM 370 µs/iter (15'959 ns … 2'299 µs) 514 µs 1'778 µs 2'224 µs
MySQL 436 µs/iter (330 µs … 2'647 µs) 417 µs 1'469 µs 2'441 µs
MySQL2 242 µs/iter (183 µs … 1'358 µs) 236 µs 1'188 µs 1'258 µs
Prisma 485 µs/iter (412 µs … 1'484 µs) 468 µs 1'380 µs 1'471 µs
Sequelize 450 µs/iter (347 µs … 2'302 µs) 436 µs 1'539 µs 2'025 µs
TypeORM 562 µs/iter (446 µs … 1'817 µs) 559 µs 1'659 µs 1'809 µs

summary for MySQL
Mariadb
1.11x faster than MySQL2
1.27x faster than Kysely
1.42x faster than KnexJS
1.68x faster than MikroORM
1.81x faster than DrizzleORM
1.9x faster than MySQL
1.06x faster than MySQL2
1.2x faster than Kysely
1.38x faster than KnexJS
1.62x faster than MikroORM
1.71x faster than DrizzleORM
1.91x faster than MySQL
1.97x faster than Sequelize
2.13x faster than Prisma
2.12x faster than Prisma
2.46x faster than TypeORM
38 changes: 19 additions & 19 deletions results/bun-postgres-cpu-count.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 420 µs/iter (299 µs … 2'504 µs) 408 µs 1'709 µs 2'331 µs
KnexJS 360 µs/iter (277 µs … 1'962 µs) 346 µs 1'660 µs 1'947 µs
Kysely 340 µs/iter (262 µs … 2'120 µs) 339 µs 1'452 µs 2'044 µs
MikroORM 357 µs/iter (16'431 ns … 2'549 µs) 503 µs 2'002 µs 2'499 µs
Pg 280 µs/iter (225 µs … 1'532 µs) 265 µs 1'339 µs 1'474 µs
PgTyped 310 µs/iter (248 µs … 1'558 µs) 298 µs 1'418 µs 1'539 µs
Postgres.js 189 µs/iter (141 µs … 1'700 µs) 188 µs 1'157 µs 1'472 µs
Prisma 488 µs/iter (410 µs … 1'772 µs) 467 µs 1'538 µs 1'672 µs
Sequelize 427 µs/iter (324 µs … 2'172 µs) 401 µs 1'843 µs 2'040 µs
TypeORM 460 µs/iter (341 µs … 2'305 µs) 451 µs 1'827 µs 2'207 µs
DrizzleORM 378 µs/iter (282 µs … 2'125 µs) 375 µs 1'337 µs 1'571 µs
KnexJS 332 µs/iter (260 µs … 1'602 µs) 326 µs 1'263 µs 1'551 µs
Kysely 310 µs/iter (240 µs … 2'096 µs) 304 µs 1'199 µs 1'521 µs
MikroORM 323 µs/iter (14'147 ns … 2'139 µs) 482 µs 1'708 µs 2'072 µs
Pg 265 µs/iter (209 µs … 1'260 µs) 258 µs 1'186 µs 1'245 µs
PgTyped 292 µs/iter (222 µs … 1'493 µs) 290 µs 1'226 µs 1'384 µs
Postgres.js 182 µs/iter (136 µs … 1'324 µs) 184 µs 1'085 µs 1'269 µs
Prisma 459 µs/iter (375 µs … 1'468 µs) 452 µs 1'365 µs 1'440 µs
Sequelize 376 µs/iter (288 µs … 1'861 µs) 370 µs 1'479 µs 1'846 µs
TypeORM 420 µs/iter (308 µs … 1'868 µs) 413 µs 1'543 µs 1'822 µs

summary for PostgreSQL
Postgres.js
1.48x faster than Pg
1.64x faster than PgTyped
1.8x faster than Kysely
1.89x faster than MikroORM
1.91x faster than KnexJS
2.22x faster than DrizzleORM
2.26x faster than Sequelize
2.44x faster than TypeORM
2.58x faster than Prisma
1.45x faster than Pg
1.6x faster than PgTyped
1.7x faster than Kysely
1.77x faster than MikroORM
1.82x faster than KnexJS
2.06x faster than Sequelize
2.07x faster than DrizzleORM
2.3x faster than TypeORM
2.52x faster than Prisma
38 changes: 19 additions & 19 deletions results/bun-postgres-default.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 387 µs/iter (301 µs … 1'743 µs) 382 µs 1'491 µs 1'706 µs
KnexJS 354 µs/iter (280 µs … 2'046 µs) 343 µs 1'496 µs 1'904 µs
Kysely 323 µs/iter (258 µs … 1'718 µs) 312 µs 1'380 µs 1'554 µs
MikroORM 372 µs/iter (16'130 ns … 2'763 µs) 507 µs 2'082 µs 2'657 µs
Pg 280 µs/iter (226 µs … 1'439 µs) 267 µs 1'326 µs 1'423 µs
PgTyped 306 µs/iter (243 µs … 1'727 µs) 294 µs 1'417 µs 1'622 µs
Postgres.js 189 µs/iter (146 µs … 1'606 µs) 191 µs 1'210 µs 1'374 µs
Prisma 500 µs/iter (417 µs … 1'686 µs) 479 µs 1'545 µs 1'626 µs
Sequelize 429 µs/iter (323 µs … 2'256 µs) 411 µs 1'884 µs 2'241 µs
TypeORM 459 µs/iter (348 µs … 2'149 µs) 444 µs 1'865 µs 2'146 µs
DrizzleORM 387 µs/iter (305 µs … 1'622 µs) 380 µs 1'375 µs 1'537 µs
KnexJS 344 µs/iter (274 µs … 1'687 µs) 336 µs 1'310 µs 1'463 µs
Kysely 319 µs/iter (246 µs … 1'378 µs) 312 µs 1'261 µs 1'370 µs
MikroORM 343 µs/iter (14'918 ns … 2'525 µs) 483 µs 1'715 µs 2'353 µs
Pg 273 µs/iter (215 µs … 1'275 µs) 267 µs 1'210 µs 1'256 µs
PgTyped 293 µs/iter (228 µs … 1'392 µs) 286 µs 1'231 µs 1'328 µs
Postgres.js 189 µs/iter (143 µs … 1'385 µs) 192 µs 1'080 µs 1'240 µs
Prisma 476 µs/iter (385 µs … 1'588 µs) 464 µs 1'392 µs 1'545 µs
Sequelize 403 µs/iter (313 µs … 1'772 µs) 386 µs 1'611 µs 1'718 µs
TypeORM 441 µs/iter (316 µs … 2'013 µs) 436 µs 1'577 µs 1'810 µs

summary for PostgreSQL
Postgres.js
1.48x faster than Pg
1.62x faster than PgTyped
1.71x faster than Kysely
1.87x faster than KnexJS
1.96x faster than MikroORM
2.04x faster than DrizzleORM
2.27x faster than Sequelize
2.43x faster than TypeORM
2.64x faster than Prisma
1.45x faster than Pg
1.56x faster than PgTyped
1.69x faster than Kysely
1.82x faster than MikroORM
1.82x faster than KnexJS
2.05x faster than DrizzleORM
2.14x faster than Sequelize
2.34x faster than TypeORM
2.53x faster than Prisma
36 changes: 18 additions & 18 deletions results/bun-postgres-max.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ benchmark time (avg) (min … max) p75 p99 p
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 396 µs/iter (308 µs … 2'215 µs) 385 µs 1'559 µs 1'953 µs
KnexJS 354 µs/iter (279 µs … 1'850 µs) 345 µs 1'505 µs 1'770 µs
Kysely 328 µs/iter (267 µs … 1'601 µs) 316 µs 1'380 µs 1'586 µs
MikroORM 360 µs/iter (15'629 ns … 2'456 µs) 511 µs 2'001 µs 2'428 µs
Pg 288 µs/iter (231 µs … 1'769 µs) 269 µs 1'533 µs 1'724 µs
PgTyped 311 µs/iter (248 µs … 1'764 µs) 300 µs 1'466 µs 1'759 µs
Postgres.js 192 µs/iter (148 µs … 1'577 µs) 188 µs 1'199 µs 1'450 µs
Prisma 492 µs/iter (415 µs … 1'761 µs) 471 µs 1'559 µs 1'721 µs
Sequelize 418 µs/iter (315 µs … 2'443 µs) 399 µs 1'821 µs 2'430 µs
TypeORM 463 µs/iter (342 µs … 2'418 µs) 453 µs 1'903 µs 2'309 µs
DrizzleORM 379 µs/iter (301 µs … 1'681 µs) 374 µs 1'351 µs 1'582 µs
KnexJS 337 µs/iter (258 µs … 1'630 µs) 332 µs 1'337 µs 1'519 µs
Kysely 306 µs/iter (244 µs … 1'299 µs) 301 µs 1'223 µs 1'296 µs
MikroORM 332 µs/iter (13'726 ns … 2'311 µs) 462 µs 1'661 µs 2'279 µs
Pg 282 µs/iter (227 µs … 1'399 µs) 269 µs 1'219 µs 1'335 µs
PgTyped 300 µs/iter (242 µs … 1'378 µs) 291 µs 1'271 µs 1'377 µs
Postgres.js 188 µs/iter (138 µs … 1'381 µs) 194 µs 1'117 µs 1'313 µs
Prisma 497 µs/iter (403 µs … 1'792 µs) 480 µs 1'450 µs 1'787 µs
Sequelize 403 µs/iter (313 µs … 1'825 µs) 388 µs 1'559 µs 1'722 µs
TypeORM 439 µs/iter (323 µs … 2'128 µs) 437 µs 1'621 µs 1'902 µs

summary for PostgreSQL
Postgres.js
1.5x faster than Pg
1.62x faster than PgTyped
1.71x faster than Kysely
1.85x faster than KnexJS
1.88x faster than MikroORM
2.07x faster than DrizzleORM
2.18x faster than Sequelize
2.42x faster than TypeORM
2.56x faster than Prisma
1.59x faster than PgTyped
1.63x faster than Kysely
1.76x faster than MikroORM
1.79x faster than KnexJS
2.01x faster than DrizzleORM
2.14x faster than Sequelize
2.33x faster than TypeORM
2.64x faster than Prisma
Loading

0 comments on commit b17215b

Please sign in to comment.