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 Jun 24, 2024
1 parent 7902340 commit 77dd261
Show file tree
Hide file tree
Showing 18 changed files with 300 additions and 300 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 @@ -17,7 +17,7 @@
"@mikro-orm/mysql": "^6.2.9",
"@mikro-orm/postgresql": "^6.2.9",
"@pgtyped/runtime": "^2.3.0",
"@prisma/client": "^5.15.0",
"@prisma/client": "^5.15.1",
"drizzle-orm": "^0.31.2",
"knex": "^3.1.0",
"kysely": "^0.27.3",
Expand Down
34 changes: 17 additions & 17 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 403 µs/iter (286 µs … 1'644 µs) 402 µs 1'400 µs 1'594 µs
KnexJS 307 µs/iter (237 µs … 1'489 µs) 304 µs 1'237 µs 1'473 µs
Kysely 295 µs/iter (234 µs … 1'726 µs) 288 µs 1'230 µs 1'666 µs
Mariadb 223 µs/iter (157 µs … 1'425 µs) 229 µs 1'153 µs 1'319 µs
MikroORM 346 µs/iter (15'930 ns … 2'282 µs) 486 µs 1'745 µs 2'241 µs
MySQL2 242 µs/iter (181 µs … 1'416 µs) 241 µs 1'257 µs 1'386 µs
Prisma 492 µs/iter (400 µs … 1'602 µs) 480 µs 1'475 µs 1'571 µs
Sequelize 450 µs/iter (341 µs … 2'409 µs) 431 µs 1'771 µs 2'332 µs
TypeORM 377 µs/iter (277 µs … 1'790 µs) 373 µs 1'460 µs 1'702 µs
DrizzleORM 439 µs/iter (330 µs … 1'973 µs) 426 µs 1'669 µs 1'892 µs
KnexJS 339 µs/iter (264 µs … 1'816 µs) 335 µs 1'507 µs 1'739 µs
Kysely 301 µs/iter (246 µs … 1'647 µs) 290 µs 1'423 µs 1'607 µs
Mariadb 239 µs/iter (175 µs … 1'640 µs) 235 µs 1'400 µs 1'599 µs
MikroORM 391 µs/iter (16'722 ns … 3'164 µs) 525 µs 2'149 µs 3'017 µs
MySQL2 258 µs/iter (193 µs … 1'745 µs) 251 µs 1'541 µs 1'713 µs
Prisma 521 µs/iter (410 µs … 2'099 µs) 496 µs 1'853 µs 1'959 µs
Sequelize 466 µs/iter (346 µs … 2'718 µs) 438 µs 2'072 µs 2'501 µs
TypeORM 408 µs/iter (302 µs … 2'300 µs) 389 µs 1'884 µs 2'131 µs

summary for MySQL
Mariadb
1.08x faster than MySQL2
1.32x faster than Kysely
1.37x faster than KnexJS
1.55x faster than MikroORM
1.69x faster than TypeORM
1.8x faster than DrizzleORM
2.02x faster than Sequelize
2.2x faster than Prisma
1.26x faster than Kysely
1.42x faster than KnexJS
1.64x faster than MikroORM
1.71x faster than TypeORM
1.84x faster than DrizzleORM
1.95x faster than Sequelize
2.18x 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 410 µs/iter (319 µs … 1'974 µs) 402 µs 1'395 µs 1'904 µs
KnexJS 315 µs/iter (254 µs … 1'798 µs) 312 µs 1'237 µs 1'529 µs
Kysely 295 µs/iter (229 µs … 1'560 µs) 289 µs 1'235 µs 1'376 µs
Mariadb 227 µs/iter (168 µs … 1'532 µs) 228 µs 1'147 µs 1'272 µs
MikroORM 349 µs/iter (16'440 ns … 2'266 µs) 493 µs 1'792 µs 2'185 µs
MySQL2 249 µs/iter (191 µs … 1'622 µs) 249 µs 1'233 µs 1'413 µs
Prisma 491 µs/iter (399 µs … 1'601 µs) 474 µs 1'458 µs 1'584 µs
Sequelize 434 µs/iter (335 µs … 1'965 µs) 420 µs 1'660 µs 1'845 µs
TypeORM 383 µs/iter (276 µs … 2'275 µs) 374 µs 1'556 µs 2'096 µs
DrizzleORM 432 µs/iter (331 µs … 1'918 µs) 421 µs 1'673 µs 1'847 µs
KnexJS 334 µs/iter (261 µs … 1'752 µs) 331 µs 1'491 µs 1'644 µs
Kysely 303 µs/iter (244 µs … 1'642 µs) 294 µs 1'437 µs 1'636 µs
Mariadb 245 µs/iter (174 µs … 1'894 µs) 241 µs 1'378 µs 1'676 µs
MikroORM 398 µs/iter (17'603 ns … 2'873 µs) 535 µs 2'231 µs 2'611 µs
MySQL2 265 µs/iter (193 µs … 2'114 µs) 256 µs 1'516 µs 1'838 µs
Prisma 526 µs/iter (419 µs … 2'255 µs) 498 µs 1'825 µs 2'183 µs
Sequelize 475 µs/iter (348 µs … 2'684 µs) 449 µs 2'128 µs 2'510 µs
TypeORM 412 µs/iter (308 µs … 2'133 µs) 392 µs 1'866 µs 2'088 µs

summary for MySQL
Mariadb
1.1x faster than MySQL2
1.3x faster than Kysely
1.39x faster than KnexJS
1.54x faster than MikroORM
1.69x faster than TypeORM
1.8x faster than DrizzleORM
1.91x faster than Sequelize
2.16x faster than Prisma
1.08x faster than MySQL2
1.24x faster than Kysely
1.36x faster than KnexJS
1.63x faster than MikroORM
1.68x faster than TypeORM
1.77x faster than DrizzleORM
1.94x faster than Sequelize
2.15x faster than Prisma
32 changes: 16 additions & 16 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 449 µs/iter (307 µs … 2'941 µs) 453 µs 1'708 µs 2'493 µs
KnexJS 321 µs/iter (257 µs … 1'692 µs) 316 µs 1'315 µs 1'689 µs
Kysely 288 µs/iter (227 µs … 1'517 µs) 279 µs 1'249 µs 1'332 µs
Mariadb 248 µs/iter (186 µs … 1'751 µs) 243 µs 1'305 µs 1'522 µs
MikroORM 348 µs/iter (15'880 ns … 2'291 µs) 503 µs 1'870 µs 2'268 µs
MySQL2 239 µs/iter (180 µs … 1'494 µs) 233 µs 1'248 µs 1'427 µs
Prisma 482 µs/iter (383 µs … 1'570 µs) 468 µs 1'473 µs 1'563 µs
Sequelize 437 µs/iter (306 µs … 2'070 µs) 423 µs 1'716 µs 2'047 µs
TypeORM 386 µs/iter (286 µs … 2'243 µs) 376 µs 1'683 µs 2'087 µs
DrizzleORM 478 µs/iter (332 µs … 2'872 µs) 474 µs 2'047 µs 2'830 µs
KnexJS 342 µs/iter (262 µs … 2'034 µs) 331 µs 1'655 µs 1'945 µs
Kysely 309 µs/iter (239 µs … 2'025 µs) 295 µs 1'628 µs 1'943 µs
Mariadb 277 µs/iter (196 µs … 4'394 µs) 259 µs 1'739 µs 2'192 µs
MikroORM 405 µs/iter (18'245 ns … 3'267 µs) 531 µs 2'308 µs 3'215 µs
MySQL2 266 µs/iter (197 µs … 1'875 µs) 258 µs 1'613 µs 1'755 µs
Prisma 523 µs/iter (430 µs … 1'966 µs) 493 µs 1'849 µs 1'964 µs
Sequelize 474 µs/iter (350 µs … 2'894 µs) 450 µs 2'130 µs 2'622 µs
TypeORM 431 µs/iter (313 µs … 2'458 µs) 403 µs 2'218 µs 2'384 µs

summary for MySQL
MySQL2
1.04x faster than Mariadb
1.21x faster than Kysely
1.34x faster than KnexJS
1.46x faster than MikroORM
1.16x faster than Kysely
1.29x faster than KnexJS
1.52x faster than MikroORM
1.62x faster than TypeORM
1.83x faster than Sequelize
1.88x faster than DrizzleORM
2.02x faster than Prisma
1.78x faster than Sequelize
1.79x faster than DrizzleORM
1.96x 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
-------------------------------------------------- -----------------------------
• MySQL
-------------------------------------------------- -----------------------------
DrizzleORM 403 µs/iter (297 µs … 1'650 µs) 401 µs 1'375 µs 1'559 µs
KnexJS 316 µs/iter (243 µs … 1'829 µs) 314 µs 1'227 µs 1'527 µs
Kysely 288 µs/iter (238 µs … 1'364 µs) 284 µs 1'214 µs 1'344 µs
Mariadb 226 µs/iter (160 µs … 1'402 µs) 233 µs 1'129 µs 1'343 µs
MikroORM 350 µs/iter (15'659 ns … 2'590 µs) 497 µs 1'793 µs 2'454 µs
MySQL2 250 µs/iter (186 µs … 1'396 µs) 251 µs 1'242 µs 1'346 µs
Prisma 493 µs/iter (380 µs … 2'039 µs) 484 µs 1'461 µs 1'902 µs
Sequelize 449 µs/iter (333 µs … 2'611 µs) 435 µs 1'720 µs 2'240 µs
TypeORM 384 µs/iter (281 µs … 1'714 µs) 377 µs 1'452 µs 1'661 µs
DrizzleORM 437 µs/iter (334 µs … 2'098 µs) 421 µs 1'657 µs 2'046 µs
KnexJS 340 µs/iter (262 µs … 1'862 µs) 332 µs 1'628 µs 1'748 µs
Kysely 307 µs/iter (241 µs … 1'710 µs) 292 µs 1'555 µs 1'701 µs
Mariadb 234 µs/iter (170 µs … 1'994 µs) 232 µs 1'419 µs 1'735 µs
MikroORM 400 µs/iter (17'874 ns … 2'940 µs) 534 µs 2'343 µs 2'939 µs
MySQL2 257 µs/iter (188 µs … 1'876 µs) 251 µs 1'569 µs 1'762 µs
Prisma 515 µs/iter (417 µs … 1'990 µs) 495 µs 1'858 µs 1'964 µs
Sequelize 470 µs/iter (343 µs … 2'513 µs) 446 µs 2'170 µs 2'415 µs
TypeORM 417 µs/iter (314 µs … 2'340 µs) 401 µs 1'923 µs 2'263 µs

summary for MySQL
Mariadb
1.11x faster than MySQL2
1.27x faster than Kysely
1.4x faster than KnexJS
1.55x faster than MikroORM
1.7x faster than TypeORM
1.78x faster than DrizzleORM
1.99x faster than Sequelize
2.18x faster than Prisma
1.1x faster than MySQL2
1.31x faster than Kysely
1.45x faster than KnexJS
1.71x faster than MikroORM
1.78x faster than TypeORM
1.87x faster than DrizzleORM
2.01x faster than Sequelize
2.2x faster than Prisma
38 changes: 19 additions & 19 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 376 µs/iter (281 µs … 1'562 µs) 370 µs 1'367 µs 1'473 µs
KnexJS 326 µs/iter (262 µs … 1'548 µs) 321 µs 1'279 µs 1'505 µs
Kysely 301 µs/iter (228 µs … 1'855 µs) 294 µs 1'267 µs 1'543 µs
MikroORM 343 µs/iter (15'930 ns … 2'966 µs) 486 µs 1'784 µs 2'184 µs
Pg 259 µs/iter (200 µs … 1'445 µs) 249 µs 1'253 µs 1'414 µs
PgTyped 288 µs/iter (219 µs … 1'511 µs) 284 µs 1'380 µs 1'490 µs
Postgres.js 191 µs/iter (143 µs … 1'484 µs) 190 µs 1'162 µs 1'326 µs
Prisma 497 µs/iter (400 µs … 2'243 µs) 480 µs 1'504 µs 1'989 µs
Sequelize 384 µs/iter (280 µs … 1'975 µs) 372 µs 1'590 µs 1'783 µs
TypeORM 425 µs/iter (324 µs … 1'856 µs) 415 µs 1'679 µs 1'841 µs
DrizzleORM 402 µs/iter (304 µs … 1'975 µs) 391 µs 1'607 µs 1'922 µs
KnexJS 342 µs/iter (268 µs … 1'807 µs) 332 µs 1'523 µs 1'788 µs
Kysely 319 µs/iter (255 µs … 1'772 µs) 306 µs 1'609 µs 1'742 µs
MikroORM 372 µs/iter (16'932 ns … 2'853 µs) 501 µs 2'188 µs 2'683 µs
Pg 276 µs/iter (219 µs … 1'812 µs) 259 µs 1'619 µs 1'769 µs
PgTyped 302 µs/iter (229 µs … 1'986 µs) 287 µs 1'739 µs 1'972 µs
Postgres.js 197 µs/iter (144 µs … 1'712 µs) 194 µs 1'476 µs 1'665 µs
Prisma 513 µs/iter (415 µs … 1'992 µs) 489 µs 1'856 µs 1'972 µs
Sequelize 419 µs/iter (316 µs … 2'883 µs) 394 µs 2'093 µs 2'697 µs
TypeORM 460 µs/iter (336 µs … 2'476 µs) 441 µs 2'144 µs 2'461 µs

summary for PostgreSQL
Postgres.js
1.36x faster than Pg
1.51x faster than PgTyped
1.58x faster than Kysely
1.71x faster than KnexJS
1.8x faster than MikroORM
1.97x faster than DrizzleORM
2.01x faster than Sequelize
2.23x faster than TypeORM
1.4x faster than Pg
1.53x faster than PgTyped
1.62x faster than Kysely
1.74x faster than KnexJS
1.89x faster than MikroORM
2.04x faster than DrizzleORM
2.13x faster than Sequelize
2.34x faster than TypeORM
2.6x 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 415 µs/iter (299 µs … 2'843 µs) 410 µs 1'544 µs 2'817 µs
KnexJS 319 µs/iter (245 µs … 1'576 µs) 312 µs 1'247 µs 1'540 µs
Kysely 296 µs/iter (229 µs … 1'352 µs) 290 µs 1'228 µs 1'297 µs
MikroORM 321 µs/iter (14'697 ns … 2'578 µs) 475 µs 1'838 µs 2'133 µs
Pg 255 µs/iter (203 µs … 1'340 µs) 247 µs 1'247 µs 1'318 µs
PgTyped 280 µs/iter (211 µs … 1'607 µs) 270 µs 1'348 µs 1'542 µs
Postgres.js 191 µs/iter (133 µs … 1'328 µs) 194 µs 1'182 µs 1'297 µs
Prisma 483 µs/iter (381 µs … 1'887 µs) 462 µs 1'474 µs 1'726 µs
Sequelize 389 µs/iter (293 µs … 1'895 µs) 379 µs 1'606 µs 1'875 µs
TypeORM 419 µs/iter (311 µs … 2'026 µs) 414 µs 1'688 µs 1'952 µs
DrizzleORM 410 µs/iter (307 µs … 2'280 µs) 392 µs 1'738 µs 2'132 µs
KnexJS 349 µs/iter (267 µs … 1'770 µs) 340 µs 1'573 µs 1'756 µs
Kysely 326 µs/iter (253 µs … 2'103 µs) 313 µs 1'619 µs 1'911 µs
MikroORM 384 µs/iter (18'414 ns … 2'673 µs) 512 µs 2'214 µs 2'581 µs
Pg 280 µs/iter (222 µs … 1'816 µs) 261 µs 1'643 µs 1'787 µs
PgTyped 308 µs/iter (234 µs … 2'393 µs) 292 µs 1'629 µs 2'272 µs
Postgres.js 201 µs/iter (147 µs … 1'955 µs) 197 µs 1'489 µs 1'777 µs
Prisma 519 µs/iter (419 µs … 2'303 µs) 486 µs 1'842 µs 2'211 µs
Sequelize 421 µs/iter (315 µs … 2'583 µs) 393 µs 2'012 µs 2'413 µs
TypeORM 463 µs/iter (341 µs … 2'490 µs) 440 µs 2'152 µs 2'452 µs

summary for PostgreSQL
Postgres.js
1.34x faster than Pg
1.47x faster than PgTyped
1.55x faster than Kysely
1.67x faster than KnexJS
1.69x faster than MikroORM
2.04x faster than Sequelize
2.18x faster than DrizzleORM
2.19x faster than TypeORM
2.53x faster than Prisma
1.39x faster than Pg
1.53x faster than PgTyped
1.62x faster than Kysely
1.74x faster than KnexJS
1.91x faster than MikroORM
2.04x faster than DrizzleORM
2.09x faster than Sequelize
2.3x faster than TypeORM
2.58x 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.13 (x64-linux)
runtime: bun 1.1.16 (x64-linux)

benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------- -----------------------------
• PostgreSQL
--------------------------------------------------- -----------------------------
DrizzleORM 381 µs/iter (300 µs … 1'797 µs) 375 µs 1'354 µs 1'584 µs
KnexJS 321 µs/iter (249 µs … 1'671 µs) 313 µs 1'278 µs 1'667 µs
Kysely 300 µs/iter (239 µs … 1'435 µs) 295 µs 1'260 µs 1'416 µs
MikroORM 337 µs/iter (15'469 ns … 2'535 µs) 479 µs 1'888 µs 2'416 µs
Pg 257 µs/iter (197 µs … 1'502 µs) 250 µs 1'255 µs 1'361 µs
PgTyped 284 µs/iter (225 µs … 1'560 µs) 273 µs 1'380 µs 1'505 µs
Postgres.js 185 µs/iter (132 µs … 1'402 µs) 188 µs 1'153 µs 1'324 µs
Prisma 480 µs/iter (388 µs … 1'571 µs) 465 µs 1'494 µs 1'569 µs
Sequelize 380 µs/iter (288 µs … 2'005 µs) 366 µs 1'607 µs 1'949 µs
TypeORM 425 µs/iter (327 µs … 1'990 µs) 415 µs 1'681 µs 1'876 µs
DrizzleORM 399 µs/iter (306 µs … 2'047 µs) 386 µs 1'598 µs 2'022 µs
KnexJS 345 µs/iter (265 µs … 1'959 µs) 337 µs 1'540 µs 1'952 µs
Kysely 317 µs/iter (252 µs … 1'779 µs) 304 µs 1'568 µs 1'744 µs
MikroORM 380 µs/iter (16'972 ns … 3'043 µs) 515 µs 2'357 µs 2'873 µs
Pg 279 µs/iter (218 µs … 1'814 µs) 260 µs 1'692 µs 1'806 µs
PgTyped 311 µs/iter (233 µs … 4'771 µs) 292 µs 1'767 µs 2'213 µs
Postgres.js 199 µs/iter (143 µs … 1'834 µs) 197 µs 1'545 µs 1'750 µs
Prisma 527 µs/iter (433 µs … 2'419 µs) 491 µs 1'946 µs 2'114 µs
Sequelize 436 µs/iter (310 µs … 2'817 µs) 407 µs 2'124 µs 2'769 µs
TypeORM 457 µs/iter (335 µs … 2'330 µs) 435 µs 2'078 µs 2'304 µs

summary for PostgreSQL
Postgres.js
1.39x faster than Pg
1.53x faster than PgTyped
1.62x faster than Kysely
1.74x faster than KnexJS
1.82x faster than MikroORM
2.06x faster than Sequelize
2.06x faster than DrizzleORM
2.3x faster than TypeORM
2.6x faster than Prisma
1.4x faster than Pg
1.56x faster than PgTyped
1.59x faster than Kysely
1.73x faster than KnexJS
1.91x faster than MikroORM
2.01x faster than DrizzleORM
2.19x faster than Sequelize
2.29x faster than TypeORM
2.65x faster than Prisma
Loading

0 comments on commit 77dd261

Please sign in to comment.