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 4, 2024
1 parent 15be36b commit 9e933ec
Show file tree
Hide file tree
Showing 18 changed files with 307 additions and 307 deletions.
Binary file modified bun.lockb
Binary file not shown.
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"devDependencies": {
"@pgtyped/cli": "^2.3.0",
"@types/mysql": "^2.15.25",
"@types/pg": "^8.11.1",
"@types/pg": "^8.11.2",
"@types/pg-pool": "^2.0.6",
"bun-types": "latest"
},
Expand All @@ -14,9 +14,9 @@
},
"dependencies": {
"@faker-js/faker": "^8.4.1",
"@mikro-orm/core": "^6.1.5",
"@mikro-orm/mysql": "^6.1.5",
"@mikro-orm/postgresql": "^6.1.5",
"@mikro-orm/core": "^6.1.6",
"@mikro-orm/mysql": "^6.1.6",
"@mikro-orm/postgresql": "^6.1.6",
"@pgtyped/runtime": "^2.3.0",
"@prisma/client": "^5.10.2",
"drizzle-orm": "^0.29.4",
Expand All @@ -25,7 +25,7 @@
"mariadb": "^3.2.3",
"mitata": "^0.1.11",
"mysql": "^2.18.1",
"mysql2": "^3.9.1",
"mysql2": "^3.9.2",
"pg": "^8.11.3",
"pg-pool": "^3.6.1",
"postgres": "~3.4.3",
Expand Down
38 changes: 19 additions & 19 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 433 µs/iter (323 µs … 2'020 µs) 422 µs 1'736 µs 2'008 µs
KnexJS 350 µs/iter (267 µs … 1'969 µs) 337 µs 1'609 µs 1'902 µs
Kysely 309 µs/iter (245 µs … 1'724 µs) 298 µs 1'526 µs 1'674 µs
Mariadb 243 µs/iter (184 µs … 1'696 µs) 247 µs 1'421 µs 1'619 µs
MikroORM 409 µs/iter (17'443 ns … 2'825 µs) 548 µs 2'151 µs 2'748 µs
MySQL 451 µs/iter (358 µs … 1'970 µs) 434 µs 1'787 µs 1'962 µs
MySQL2 262 µs/iter (205 µs … 1'646 µs) 249 µs 1'494 µs 1'600 µs
Prisma 520 µs/iter (422 µs … 1'971 µs) 492 µs 1'750 µs 1'935 µs
Sequelize 486 µs/iter (362 µs … 2'514 µs) 459 µs 2'005 µs 2'307 µs
TypeORM 607 µs/iter (467 µs … 2'597 µs) 584 µs 2'116 µs 2'597 µs
DrizzleORM 406 µs/iter (290 µs … 1'684 µs) 400 µs 1'372 µs 1'606 µs
KnexJS 322 µs/iter (245 µs … 1'573 µs) 324 µs 1'204 µs 1'441 µs
Kysely 280 µs/iter (220 µs … 1'265 µs) 276 µs 1'145 µs 1'245 µs
Mariadb 226 µs/iter (163 µs … 1'312 µs) 233 µs 1'074 µs 1'270 µs
MikroORM 339 µs/iter (14'497 ns … 2'185 µs) 494 µs 1'706 µs 2'150 µs
MySQL 398 µs/iter (309 µs … 1'463 µs) 398 µs 1'313 µs 1'447 µs
MySQL2 248 µs/iter (181 µs … 1'410 µs) 253 µs 1'148 µs 1'362 µs
Prisma 481 µs/iter (376 µs … 1'436 µs) 471 µs 1'349 µs 1'432 µs
Sequelize 443 µs/iter (345 µs … 2'984 µs) 422 µs 1'550 µs 2'487 µs
TypeORM 550 µs/iter (445 µs … 1'784 µs) 542 µs 1'584 µs 1'728 µs

summary for MySQL
Mariadb
1.08x faster than MySQL2
1.27x faster than Kysely
1.44x faster than KnexJS
1.68x faster than MikroORM
1.78x faster than DrizzleORM
1.85x faster than MySQL
1.99x faster than Sequelize
2.14x faster than Prisma
2.5x faster than TypeORM
1.1x faster than MySQL2
1.24x faster than Kysely
1.42x faster than KnexJS
1.5x faster than MikroORM
1.76x faster than MySQL
1.79x faster than DrizzleORM
1.96x faster than Sequelize
2.13x faster than Prisma
2.43x faster than TypeORM
38 changes: 19 additions & 19 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 446 µs/iter (325 µs … 2'402 µs) 435 µs 1'773 µs 2'370 µs
KnexJS 360 µs/iter (276 µs … 1'849 µs) 349 µs 1'590 µs 1'785 µs
Kysely 313 µs/iter (244 µs … 1'747 µs) 304 µs 1'554 µs 1'728 µs
Mariadb 256 µs/iter (185 µs … 1'919 µs) 249 µs 1'545 µs 1'707 µs
MikroORM 426 µs/iter (18'695 ns … 2'619 µs) 557 µs 2'187 µs 2'597 µs
MySQL 469 µs/iter (357 µs … 2'573 µs) 449 µs 1'937 µs 2'384 µs
MySQL2 268 µs/iter (206 µs … 2'208 µs) 258 µs 1'481 µs 2'070 µs
Prisma 520 µs/iter (421 µs … 2'037 µs) 492 µs 1'754 µs 1'940 µs
Sequelize 484 µs/iter (362 µs … 2'461 µs) 463 µs 1'951 µs 2'330 µs
TypeORM 605 µs/iter (473 µs … 2'308 µs) 582 µs 2'121 µs 2'308 µs
DrizzleORM 404 µs/iter (312 µs … 1'811 µs) 400 µs 1'369 µs 1'707 µs
KnexJS 316 µs/iter (246 µs … 1'676 µs) 314 µs 1'235 µs 1'656 µs
Kysely 281 µs/iter (218 µs … 1'349 µs) 282 µs 1'172 µs 1'249 µs
Mariadb 226 µs/iter (162 µs … 1'313 µs) 232 µs 1'077 µs 1'287 µs
MikroORM 351 µs/iter (14'106 ns … 2'110 µs) 510 µs 1'681 µs 2'078 µs
MySQL 408 µs/iter (301 µs … 1'588 µs) 412 µs 1'363 µs 1'490 µs
MySQL2 240 µs/iter (180 µs … 1'261 µs) 237 µs 1'150 µs 1'245 µs
Prisma 479 µs/iter (400 µs … 1'498 µs) 467 µs 1'363 µs 1'492 µs
Sequelize 444 µs/iter (321 µs … 2'260 µs) 442 µs 1'476 µs 1'856 µs
TypeORM 552 µs/iter (410 µs … 2'020 µs) 545 µs 1'664 µs 1'937 µs

summary for MySQL
Mariadb
1.05x faster than MySQL2
1.22x faster than Kysely
1.41x faster than KnexJS
1.67x faster than MikroORM
1.74x faster than DrizzleORM
1.83x faster than MySQL
1.89x faster than Sequelize
2.03x faster than Prisma
2.37x faster than TypeORM
1.06x faster than MySQL2
1.24x faster than Kysely
1.4x faster than KnexJS
1.55x faster than MikroORM
1.79x faster than DrizzleORM
1.81x faster than MySQL
1.97x faster than Sequelize
2.12x faster than Prisma
2.44x faster than TypeORM
38 changes: 19 additions & 19 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 537 µs/iter (325 µs … 3'440 µs) 549 µs 2'443 µs 2'820 µs
KnexJS 357 µs/iter (277 µs … 1'965 µs) 342 µs 1'712 µs 1'873 µs
Kysely 312 µs/iter (245 µs … 1'974 µs) 300 µs 1'604 µs 1'938 µs
Mariadb 289 µs/iter (209 µs … 2'193 µs) 276 µs 1'677 µs 1'943 µs
MikroORM 413 µs/iter (18'034 ns … 2'811 µs) 535 µs 2'231 µs 2'645 µs
MySQL 464 µs/iter (357 µs … 2'523 µs) 450 µs 1'916 µs 2'267 µs
MySQL2 268 µs/iter (205 µs … 1'841 µs) 257 µs 1'618 µs 1'748 µs
Prisma 530 µs/iter (432 µs … 2'195 µs) 497 µs 1'942 µs 2'034 µs
Sequelize 493 µs/iter (363 µs … 2'873 µs) 456 µs 2'157 µs 2'866 µs
TypeORM 632 µs/iter (465 µs … 2'699 µs) 602 µs 2'373 µs 2'699 µs
DrizzleORM 452 µs/iter (315 µs … 2'258 µs) 462 µs 1'810 µs 2'182 µs
KnexJS 330 µs/iter (242 µs … 1'864 µs) 325 µs 1'261 µs 1'584 µs
Kysely 290 µs/iter (227 µs … 1'358 µs) 282 µs 1'220 µs 1'308 µs
Mariadb 260 µs/iter (185 µs … 1'927 µs) 254 µs 1'292 µs 1'817 µs
MikroORM 341 µs/iter (14'728 ns … 2'299 µs) 487 µs 1'671 µs 2'194 µs
MySQL 409 µs/iter (307 µs … 1'516 µs) 405 µs 1'423 µs 1'505 µs
MySQL2 233 µs/iter (174 µs … 1'260 µs) 232 µs 1'145 µs 1'247 µs
Prisma 482 µs/iter (394 µs … 1'472 µs) 467 µs 1'383 µs 1'464 µs
Sequelize 435 µs/iter (322 µs … 1'935 µs) 428 µs 1'567 µs 1'849 µs
TypeORM 552 µs/iter (403 µs … 1'870 µs) 551 µs 1'686 µs 1'862 µs

summary for MySQL
MySQL2
1.08x faster than Mariadb
1.16x faster than Kysely
1.33x faster than KnexJS
1.54x faster than MikroORM
1.73x faster than MySQL
1.84x faster than Sequelize
1.98x faster than Prisma
2x faster than DrizzleORM
2.36x faster than TypeORM
1.11x faster than Mariadb
1.24x faster than Kysely
1.42x faster than KnexJS
1.46x faster than MikroORM
1.76x faster than MySQL
1.87x faster than Sequelize
1.94x faster than DrizzleORM
2.07x faster than Prisma
2.37x faster than TypeORM
38 changes: 19 additions & 19 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 440 µs/iter (327 µs … 2'288 µs) 426 µs 1'733 µs 1'999 µs
KnexJS 356 µs/iter (264 µs … 2'154 µs) 344 µs 1'679 µs 1'941 µs
Kysely 311 µs/iter (243 µs … 1'714 µs) 302 µs 1'533 µs 1'677 µs
Mariadb 245 µs/iter (182 µs … 1'746 µs) 241 µs 1'436 µs 1'738 µs
MikroORM 425 µs/iter (17'213 ns … 2'640 µs) 551 µs 2'226 µs 2'640 µs
MySQL 454 µs/iter (355 µs … 2'111 µs) 440 µs 1'828 µs 2'009 µs
MySQL2 268 µs/iter (203 µs … 1'861 µs) 261 µs 1'524 µs 1'689 µs
Prisma 522 µs/iter (417 µs … 1'893 µs) 495 µs 1'786 µs 1'878 µs
Sequelize 487 µs/iter (366 µs … 2'514 µs) 460 µs 2'082 µs 2'273 µs
TypeORM 614 µs/iter (476 µs … 2'422 µs) 584 µs 2'143 µs 2'422 µs
DrizzleORM 399 µs/iter (285 µs … 1'590 µs) 398 µs 1'350 µs 1'576 µs
KnexJS 311 µs/iter (239 µs … 1'536 µs) 314 µs 1'182 µs 1'404 µs
Kysely 274 µs/iter (210 µs … 1'364 µs) 271 µs 1'135 µs 1'292 µs
Mariadb 218 µs/iter (162 µs … 1'331 µs) 223 µs 1'014 µs 1'254 µs
MikroORM 351 µs/iter (13'556 ns … 2'200 µs) 507 µs 1'698 µs 2'028 µs
MySQL 397 µs/iter (306 µs … 1'422 µs) 395 µs 1'326 µs 1'408 µs
MySQL2 233 µs/iter (178 µs … 1'200 µs) 230 µs 1'088 µs 1'195 µs
Prisma 465 µs/iter (365 µs … 1'818 µs) 462 µs 1'353 µs 1'413 µs
Sequelize 431 µs/iter (317 µs … 2'766 µs) 427 µs 1'579 µs 2'233 µs
TypeORM 536 µs/iter (408 µs … 1'928 µs) 538 µs 1'565 µs 1'718 µs

summary for MySQL
Mariadb
1.09x faster than MySQL2
1.27x faster than Kysely
1.45x faster than KnexJS
1.74x faster than MikroORM
1.79x faster than DrizzleORM
1.85x faster than MySQL
1.99x faster than Sequelize
2.13x faster than Prisma
2.5x faster than TypeORM
1.07x faster than MySQL2
1.26x faster than Kysely
1.43x faster than KnexJS
1.61x faster than MikroORM
1.82x faster than MySQL
1.83x faster than DrizzleORM
1.98x faster than Sequelize
2.14x 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 415 µs/iter (310 µs … 2'030 µs) 408 µs 1'711 µs 2'025 µs
KnexJS 374 µs/iter (285 µs … 2'159 µs) 357 µs 1'694 µs 2'116 µs
Kysely 336 µs/iter (265 µs … 1'765 µs) 319 µs 1'599 µs 1'755 µs
MikroORM 401 µs/iter (16'711 ns … 2'607 µs) 544 µs 2'239 µs 2'588 µs
Pg 292 µs/iter (235 µs … 1'675 µs) 275 µs 1'524 µs 1'647 µs
PgTyped 328 µs/iter (255 µs … 2'102 µs) 312 µs 1'641 µs 2'055 µs
Postgres.js 199 µs/iter (149 µs … 1'623 µs) 196 µs 1'363 µs 1'562 µs
Prisma 522 µs/iter (417 µs … 2'627 µs) 497 µs 1'707 µs 2'347 µs
Sequelize 440 µs/iter (330 µs … 2'400 µs) 419 µs 1'911 µs 2'247 µs
TypeORM 483 µs/iter (355 µs … 3'117 µs) 465 µs 2'072 µs 2'620 µs
DrizzleORM 377 µs/iter (286 µs … 1'755 µs) 371 µs 1'329 µs 1'584 µs
KnexJS 335 µs/iter (256 µs … 1'472 µs) 332 µs 1'276 µs 1'421 µs
Kysely 320 µs/iter (240 µs … 1'839 µs) 315 µs 1'211 µs 1'582 µs
MikroORM 334 µs/iter (13'956 ns … 2'222 µs) 481 µs 1'712 µs 2'167 µs
Pg 263 µs/iter (204 µs … 1'631 µs) 257 µs 1'146 µs 1'347 µs
PgTyped 297 µs/iter (227 µs … 1'366 µs) 289 µs 1'210 µs 1'333 µs
Postgres.js 181 µs/iter (134 µs … 1'239 µs) 183 µs 1'014 µs 1'182 µs
Prisma 465 µs/iter (370 µs … 1'421 µs) 458 µs 1'347 µs 1'411 µs
Sequelize 395 µs/iter (292 µs … 1'767 µs) 387 µs 1'489 µs 1'759 µs
TypeORM 425 µs/iter (310 µs … 2'022 µs) 425 µs 1'540 µs 1'903 µs

summary for PostgreSQL
Postgres.js
1.47x faster than Pg
1.65x faster than PgTyped
1.69x faster than Kysely
1.88x faster than KnexJS
2.02x faster than MikroORM
2.09x faster than DrizzleORM
2.21x faster than Sequelize
2.43x faster than TypeORM
2.63x faster than Prisma
1.45x faster than Pg
1.64x faster than PgTyped
1.76x faster than Kysely
1.84x faster than MikroORM
1.84x faster than KnexJS
2.08x faster than DrizzleORM
2.17x faster than Sequelize
2.34x faster than TypeORM
2.56x faster than Prisma
36 changes: 18 additions & 18 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 421 µs/iter (310 µs … 2'272 µs) 406 µs 1'674 µs 2'106 µs
KnexJS 362 µs/iter (277 µs … 1'893 µs) 351 µs 1'598 µs 1'860 µs
Kysely 334 µs/iter (269 µs … 1'767 µs) 318 µs 1'568 µs 1'718 µs
MikroORM 422 µs/iter (17'913 ns … 2'785 µs) 551 µs 2'362 µs 2'747 µs
Pg 293 µs/iter (232 µs … 1'813 µs) 277 µs 1'493 µs 1'623 µs
PgTyped 322 µs/iter (253 µs … 1'730 µs) 306 µs 1'632 µs 1'718 µs
Postgres.js 206 µs/iter (153 µs … 1'829 µs) 203 µs 1'443 µs 1'654 µs
Prisma 519 µs/iter (420 µs … 1'970 µs) 490 µs 1'806 µs 1'968 µs
Sequelize 446 µs/iter (323 µs … 2'555 µs) 425 µs 2'056 µs 2'486 µs
TypeORM 479 µs/iter (365 µs … 2'274 µs) 454 µs 2'075 µs 2'271 µs
DrizzleORM 374 µs/iter (296 µs … 1'698 µs) 370 µs 1'285 µs 1'533 µs
KnexJS 322 µs/iter (249 µs … 1'438 µs) 321 µs 1'207 µs 1'419 µs
Kysely 304 µs/iter (243 µs … 1'415 µs) 296 µs 1'190 µs 1'343 µs
MikroORM 340 µs/iter (14'266 ns … 2'219 µs) 496 µs 1'650 µs 2'072 µs
Pg 264 µs/iter (206 µs … 1'222 µs) 260 µs 1'151 µs 1'215 µs
PgTyped 293 µs/iter (214 µs … 2'706 µs) 289 µs 1'211 µs 1'407 µs
Postgres.js 185 µs/iter (139 µs … 1'266 µs) 187 µs 1'032 µs 1'178 µs
Prisma 466 µs/iter (383 µs … 1'430 µs) 457 µs 1'349 µs 1'399 µs
Sequelize 394 µs/iter (286 µs … 1'796 µs) 386 µs 1'491 µs 1'751 µs
TypeORM 423 µs/iter (314 µs … 1'870 µs) 413 µs 1'581 µs 1'768 µs

summary for PostgreSQL
Postgres.js
1.42x faster than Pg
1.56x faster than PgTyped
1.62x faster than Kysely
1.76x faster than KnexJS
2.04x faster than DrizzleORM
2.05x faster than MikroORM
2.16x faster than Sequelize
2.33x faster than TypeORM
1.43x faster than Pg
1.59x faster than PgTyped
1.64x faster than Kysely
1.74x faster than KnexJS
1.84x faster than MikroORM
2.02x faster than DrizzleORM
2.13x faster than Sequelize
2.29x faster than TypeORM
2.52x 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 409 µs/iter (317 µs … 2'058 µs) 398 µs 1'684 µs 2'012 µs
KnexJS 369 µs/iter (285 µs … 2'115 µs) 353 µs 1'693 µs 2'000 µs
Kysely 336 µs/iter (268 µs … 1'710 µs) 320 µs 1'569 µs 1'700 µs
MikroORM 416 µs/iter (17'783 ns … 3'046 µs) 552 µs 2'315 µs 2'724 µs
Pg 300 µs/iter (234 µs … 2'052 µs) 282 µs 1'534 µs 1'703 µs
PgTyped 321 µs/iter (249 µs … 1'718 µs) 305 µs 1'562 µs 1'681 µs
Postgres.js 209 µs/iter (148 µs … 1'891 µs) 204 µs 1'455 µs 1'757 µs
Prisma 517 µs/iter (428 µs … 1'934 µs) 487 µs 1'787 µs 1'879 µs
Sequelize 444 µs/iter (329 µs … 2'635 µs) 424 µs 2'007 µs 2'563 µs
TypeORM 479 µs/iter (347 µs … 2'578 µs) 458 µs 2'091 µs 2'412 µs
DrizzleORM 382 µs/iter (297 µs … 1'877 µs) 375 µs 1'339 µs 1'612 µs
KnexJS 327 µs/iter (253 µs … 1'684 µs) 319 µs 1'236 µs 1'517 µs
Kysely 305 µs/iter (245 µs … 1'330 µs) 298 µs 1'190 µs 1'323 µs
MikroORM 332 µs/iter (14'247 ns … 5'111 µs) 478 µs 1'635 µs 2'530 µs
Pg 261 µs/iter (203 µs … 1'301 µs) 257 µs 1'173 µs 1'271 µs
PgTyped 297 µs/iter (237 µs … 1'543 µs) 291 µs 1'210 µs 1'351 µs
Postgres.js 182 µs/iter (132 µs … 1'344 µs) 184 µs 1'044 µs 1'235 µs
Prisma 464 µs/iter (371 µs … 1'434 µs) 454 µs 1'365 µs 1'416 µs
Sequelize 399 µs/iter (306 µs … 1'986 µs) 392 µs 1'564 µs 1'944 µs
TypeORM 434 µs/iter (312 µs … 2'035 µs) 431 µs 1'567 µs 2'031 µs

summary for PostgreSQL
Postgres.js
1.43x faster than Pg
1.54x faster than PgTyped
1.61x faster than Kysely
1.77x faster than KnexJS
1.96x faster than DrizzleORM
1.99x faster than MikroORM
2.12x faster than Sequelize
2.29x faster than TypeORM
2.48x faster than Prisma
1.63x faster than PgTyped
1.68x faster than Kysely
1.8x faster than KnexJS
1.83x faster than MikroORM
2.1x faster than DrizzleORM
2.2x faster than Sequelize
2.39x faster than TypeORM
2.55x faster than Prisma
Loading

0 comments on commit 9e933ec

Please sign in to comment.