► What should I test next? ► AWS is expensive - Infra Support Fund: buymeacoffee.com/antonputra ► Benchmarks: kzitem.info/door/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn&si=p-UOaVM_6_SFx52H
@radumihaidiaconu
Күн бұрын
surrealdb vs other databases
@yannick5099
Күн бұрын
SQLite/libSQL vs Postgres, the in-process nature should make a difference for many use-cases.
@Justsomeguy492
Күн бұрын
Spring boot with virtual threads
@vivaanrao2252
Күн бұрын
timescale db vs clickhouse db
@suriyaprakashg7007
Күн бұрын
Javalin vs go
@Takatou__Yogiri
Күн бұрын
That's the most advanced open source database for you. I love postgresql.
@austinisakson
Күн бұрын
This is shocking. I never knew that Postgres was such a clear winner for most of the time.
@Kingromstar
Күн бұрын
I knew it, that's why I hate using tech stacks that are "bad"
@shubhamkukrety6355
Күн бұрын
@Kingromstar Same. I'm a relative newbie to the tech world. But I've known postgresql is perhaps the best generic DBs out there. At some point, you'd want to move to self-hosted ScyllaDB, especially if you need sub-millisecond ops at scale. But, if you're building something at that scale, you'd know the details (if and when). For most starter projects, postgresql is the best choice. What I've also learnt is that it's equally important to vacate your cloud provider timely, otherwise you'll be paying through your nose to do so later.
@Gigasharik5
Күн бұрын
Frankly speaking it is not shocking, knowing what kind of test coverage and query optimizations postgres has
@mileselam641
Күн бұрын
@@shubhamkukrety6355ScyllaDB should NOT be your go-to at scale. Nothing wrong with it per se, but once you get to the scale where something like Postgres hits its limits-which is a bigger scale than 99.9% of projects ever reach-you should not be blindly reaching for any one off-the-shelf solution. At high scale you should be choosing the niche solution that most closely fits your requirements, and those requirements will NOT be what you expected at the start. Be flexible and bend to where the numbers lead you.
@shubhamkukrety6355
Күн бұрын
@@mileselam641 True. This is the caveat of "if" I didn't delve much into. Pardon my ignorance.
@jesusruiz4073
Күн бұрын
Testing SQLite against any of those would be very interesting. I know that SQLite is a different "animal", and it does not scale horizontally, but I found in most of my use cases that it provides more than enough performance (actually much more), and it is incredibly easy to operate and maintain (less moving pieces). In addition, there are already solutions for availability and replication which are simple. So, I am using most of the time SQLite in production.
@boot-strapper
Күн бұрын
There are many tools that let you horizontally scale it now.
@jesusruiz4073
9 сағат бұрын
@@boot-strapper Yes, it is becoming a very attractive proposition. However, given that for "typical" applications (e.g. web with a db backend) the performance for writes with SQLite is limited by the disk (no network hop between the application an the DB), I do not normally require horizontal scaling for performance reasons. Below 100 tx/sec (writes), SQLite blows away the "traditional" DBs, and if I hardly need more than that. Availability is another thing, but it is also relatively simple to achieve with SQLite these days.
@fabio.antunes
2 сағат бұрын
I'm also curious.
@uis246
Сағат бұрын
Also it would be great to test different "flavours" of SQLite. For example SQLite with LMDB backend.
@boot-strapper
58 минут бұрын
@@jesusruiz4073 oh yeah I agree. I wrote a mock data service that generated mock data. It was able to generate 3million records and insert them into SQLite in
@roccociccone597
Күн бұрын
I think one that would interest me a lot is MS-SQL vs PostgreSQL. I personall have worked with both but I vastly prefer PostgreSQL
@MikhailAksenovV
19 сағат бұрын
It is tricky, because in reality you should utilize all db features (extensions in pg, OTLP tables in Azure SQL and whatnot). And realistic benchmark is challenging to make :)
@matejmiljko8264
18 сағат бұрын
@@MikhailAksenovV and MSSQL EULA stating you cannot do so without M$'s written approval
@Robert-G
18 сағат бұрын
mssql (or sybase) must be the only DBMS with a worse dialect than mysql. which is hard, the one of mysql is already really bad…
@brian1kb
Күн бұрын
MariaDB v PostgreSQL would be a great comparison I think, not many opting to run MySQL over MariaDB these days, and I imagine it should be a bit of a closer race.
@denisoko8494
19 сағат бұрын
It would be more correct to compare MariaDB vs open source Citus Data(PostgreSQL + extension) or its commercial version Azure Cosmos DB for PostgreSQL.
@jonnyso1
3 сағат бұрын
Is MariaDB that different from MySql though ?
@fabio.antunes
2 сағат бұрын
I'm also curious to know.
@fabio.antunes
2 сағат бұрын
I'm also curious to know.
@yannick5099
Күн бұрын
Already commented about some technical stuff, now about the design: for testing SQL databases I would like to see a slightly more complex set of operations, UPDATE and DELETE are missing, having more JOINs would be more realistic, where clauses that don't use an index or different types, sorting and aggregation would also help to highlight different strength and weaknesses. Maybe something like a simplified online shop with shopping cards (adding/removing items, changing amounts), orders and reports like the top 100 customers or articles in a given time frame. And also very important: transactions. In other words some kind of CRUD app that does everything in SQL. A lot of work and preparation though.
@hidayathidayat4469
Күн бұрын
like the idea, would be nice if it can be implemented
@shellderp
16 сағат бұрын
there are plenty of standard workloads for these tests like TPC-C
@spieles21
Күн бұрын
Pls also tests MySQL vs MariaDB. The Results should be pretty simular but it would be interesting to see
@sashapekh8885
Күн бұрын
and maybe percona
@MelroyvandenBerg
17 сағат бұрын
Agree!!
@ibnurasikh
16 сағат бұрын
up! this is something that bothered me when i was still using WordPress
@krshock
Күн бұрын
love your benchmarks, queep the good work!
@AntonPutra
Күн бұрын
thank you!
@PavelTimofeev
18 сағат бұрын
Am I the only one who didn't see MySQL config? What is the table engine for MySQL? Not sure if this is still the case nowadays, but MySQL used to come with really tiny default parameters for INNODB engine. And the first thing you do with MySQL is to set those params like innodb_buffer_pool_size, etc. (there are a bunch of them) I. e. nobody uses MySQL out of the box. You have to set those params to reflect your load. The easiest way were running tuning-primer or MySQLTuner script after running the workload. You had to do this several times.
@Winnetou17
14 сағат бұрын
I was looking for this. Well spotted
@michalszalapski
8 сағат бұрын
Exacly. Also if he use right engine mariadb instead of mysql. And enable query_cache it would crush postgress.
@neothermic1
6 сағат бұрын
@@michalszalapski The query cache not only wouldn't help here, but it got removed in MySQL 8 because it was terrible. It's been disabled by default since MySQL 5.6 anyway, for that same reason. It would not be a thing in MySQL 9.
@michalszalapski
3 сағат бұрын
@@neothermic1 It would help here and ye, thats why Im not using mysql since 5.6. Never though ppl still use mysql... Mariadb query_cache works very well and is mandatory for high load clusters(unless u have no clue how to maintain it).
@neothermic1
Сағат бұрын
@@michalszalapski From mariadb's docs: "It does not scale well in environments with high throughput on multi-core machines, so it is disabled by default." - It would then raise the question as to if it can help here; these are about the same reasons it was disabled and removed from mysql itself. But I think we're in agreement that without seeing the config of the mysql server, it's being tested at a huge disadvantage as the defaults are awful.
@marknefedov
Күн бұрын
The test seems a bit too one sided, the main architectural difference in MySQL vs Postgres is MySQL write operations (write, update, delete) are amortized so data is always "balanced", while Postgres postpones it until VACUUM and it is prone to degradation, when vacuum starts under load. It would be nice to show how these databases will compare under mixed workload, when records are inserted, updated and deleted at the same time, and data that is being changed should be in the index to test tuple bloating. Also can you publish schemas for databases?
@opensourcedev22
Күн бұрын
That can be seen in the IO/s in the graph on right side, second from the bottom. MySQL is doing a hard fsync to disk or something along the lines. PGsql doing 1/3 of the disk write, and you can't cant cheat on disk writes. They either happen or not. So PGsql is running with a less durable data model in this test
@EzequielRegaldo
Күн бұрын
Don't forget hot updates, are 10 times faster than regular in pg, MySQL time is over
@BosonCollider
23 сағат бұрын
@@opensourcedev22 Not true. Postgres writes to disk on each commit. It uses a copy on write model that lets it write asynchronously to disk before committing, but the commit step at the end of the transaction is synchronous and atomic. The default isolation level in postgres is much stronger than the default in mysql, since Postgres read committed is Monotonic Atomic views + causal consistency, while mysql repeatable read does not actually fulfill the ISO sql read committed standard in all situations while still being able to deadlock
@opensourcedev22
22 сағат бұрын
@@BosonCollider No need to copy paste chatGPT into here brother, just look at the 3:40 mark. He's running 290 Q/s, and pgsql is doing 309 IO/s... And MySQL is at 1.4k I admit that personally, I am unsure what low level pgsql is doing in this specific teat, but disk IO can't be cheated unless it's not being used. So, are you honestly willing to admit pgsql does 300 Q/s and with ONLY 309 IO/s ? I think a database configuration is needed here with all settings posted to be sure
@LtdJorge
19 сағат бұрын
@@opensourcedev22 There is no way Postgres is not fsyncing after every write. They may be doing vectored IO, batches or whatever.
@kornexd
Күн бұрын
In my experience with MySQL, charsets have a huge impact in database size and performance if not correctly specified. i.e utf8mb4 vs latin1 will show a big difference in database size, also in performance if the client is using different charsets than the server, it slow down every operation involving text because it needs a "translation".
@kornexd
Күн бұрын
So just check if database / table / row charset and collation is the same as the go client.
@lolilollolilol7773
18 сағат бұрын
That's because UTF8 uses 2 bytes/character vs 1 byte/character for Latin1.
@marcsfeh
15 сағат бұрын
UTF8 is variable length. It only uses 1 byte per ASCII codepoint
@AlexanderBorshak
Күн бұрын
I'm not DBA at all. But there were stand many times (not by me, of course), that MySQL optimized more for reads and for OLTP operations when Postgres for OLAP ones. In addition, MySQL is better for horizontal scaling; and Postgres for vertical scaling. It looks like the real difference between these DBs will be clear when we'll have a huge amount of data, loaded in DB (so we already apply some scaling, i.e. replicating, sharding, etc.), as well as mixed requests (i.e. SELECT/INSERT/UPDATE/DELETE at the same time). For such scenarios as in the test (store for analytics records) choosing either of these two bases looks the same and is equally wrong - something like MongoDB or Cassandra looks more preferable since it would scale for used operations much better.
@dgtemp
Күн бұрын
Thank you for the colors. This is very clear to see the graph.
@MelroyvandenBerg
17 сағат бұрын
Did you also consider fine tuning the database configs, since the default configurations are not optimized at all. Think about innodb_buffer_pool_size for Mysql. And shared_buffers in PostgreSQL.
@antonkuranov
19 сағат бұрын
This is not 100% clean benchmark as in Ubuntu packages these DBs has default settings optimized not for performance, but for low resource consumption. Playing with the configuration may significantly change the result.
@quangtung2912
21 сағат бұрын
How the MySQL is configured? How big the buffer pool size and redo log size you used for your test? These two are the most important config for high perf innodb instance. The default values are very low for production usage. When running mysql instance, the buffer pool should be accounted for as much of RAM as possible. From 60% to 80% of the RAM (bigger RAM the percentage should be bigger).
@neothermic1
6 сағат бұрын
This! I see no mention of the configuration that's been done to either database server. There's a few more too, such as what was innodb_write_io_threads set to? Did you set innodb_io_capacity and innodb_io_capacity_max to roughly match what your storage medium is? What *is* your storage medium? (HDD? 2.5" SSD? M2 NMVE? Enterprise U2 drive? these differ drastically!) The defaults are terrible, but the defaults are run-everywhere defaults. You ALWAYS want to configure a mysql config to where you're deploying the server to.
@az6876
Күн бұрын
Please check postgres vs sql server.
@apidas
Күн бұрын
lol
@viniciusmorgado9722
Күн бұрын
Oracle will be cool as well
@hypnoticlizard9693
20 сағат бұрын
I want this as well. Forced to use sqlserver at work and wanna hate my life even more by seeing the comparison lol
@markhenderson5283
16 сағат бұрын
I'd love to see this benchmark too. I've had people tell me MsSQL is faster than PostgreSQL but I have my doubts.
@mr.nobody4494
22 сағат бұрын
I love this channel. Great work my friend 👌
@davidriveros5422
Күн бұрын
These videos are always so clean. Thanks for sharing this, it's really valuable information for scaling projects.
@ggcc3261
Күн бұрын
chill, I was already sold on Postgres lol
@Thassalocracy
23 сағат бұрын
Thank u for this comparison, even though most of us probably already knew postgres was going to win. I'm not sure if u already did this but I'd love to see how Postgres compares to MongoDB, the two GOATs of the DB world. 😀
@andytroo
5 сағат бұрын
something funny is goin on with MySQL - the downward curve in iops while the inserts/second is increasing - implying inserts got easier as the inserts/second increased. The downward curve coincides roughly with capping out the connection count and the cpu spike at 21:50. Towards the end, the MySQL cpu also decreased, even though that was the highest QPS achieved.
@PonyMa-i9q
Күн бұрын
Really love your benchmark series.
@AntonPutra
Күн бұрын
thank you!
@apidas
Күн бұрын
thank you, makes me feel better with my postgres preference
@wadyn95
Күн бұрын
How about postgres jsonb vs mongodb?)
@qizott6442
Күн бұрын
Those are 2 completely different databases with different usecases. Try doing complicated joins in mongodb or any relational data stuff, you simply shouldn't do that.
@19Draco96
Күн бұрын
@@qizott6442 Not really. The question is not 'how good mongodb can do relational stuff', it's 'can postgres handle JSON as good as mongodb'. PG is very flexible and it's interesting to see how it compares to mongo.
@yoloopen
22 сағат бұрын
@@qizott6442 relational stuff is completely doable with mongo aggregates, shouldn't !== cannot, and a lot of projects that have picked mongo initially, because it's somehow easier, end up with complex "joins" in mongo. It's well known that mongo's performance is terrible at this. But it's interesting to see how postgres can beat mongo in mongo's game.
@antonkuranov
19 сағат бұрын
I've seen a benchmark from PG developers where they demonstrated that their db beats mongo on JSON operations. That was a response to a benchmark published by mongo where they run PG installed from Ubuntu with its default settings.
@19Draco96
3 сағат бұрын
@@antonkuranov I guess that's why benchmark from 3rd party on this would be interesting. Truth being told I wouldn't be surprised if PG really did beat mongodb at it's own game ;P
@milendenev4935
Күн бұрын
You are awesome!!! Please make a between PostgreSQL and Microsoft SQL Server!! I wasn't expected that.
@williamclark4143
16 сағат бұрын
I'd love to see that, however its unlikely, microsofts EULA states benchmarking results can't be disclosed without their approval
@qtxsystems
14 сағат бұрын
@@williamclark4143 True, but "Miachelsoft Sea Kwell DB "is a unknown database just leaving beta **wink wink**
@ihnatmikhalkovich2538
Күн бұрын
Thank you for the video! You've picked great databases for comparison since both MySQL and PostgreSQL are CA in the CAP theorem, meaning they're typically used for the same goals. However, the tests in the video focus only on select and insert throughput, which doesn't reflect real-world use cases. In production, CA databases are rarely chosen just for these operations alone-if that were the case, you'd probably use Cassandra. For high insert and select throughput with a CA database, you'd also want to use Read Uncommitted isolation instead of the default Repeatable Read, as it offers better performance. I suggest adding tests for update and delete operations, as well as mixed workloads where, for example, 4 threads perform CRUD operations in parallel. This would be insightful, especially since both databases have different optimizations (like PostgreSQL’s JIT compiler) and distinct Repeatable Read implementations.
@AntonPutra
Күн бұрын
valid point! i'll add update and delete operations in the future
@RomanBarczynski
Күн бұрын
Why postgres at 4:05 had negative value in disk usage?
@jricardoprog
Күн бұрын
Must be freeing up space
@PsychEngel
Күн бұрын
@@jricardoprog No, that's not possible. It's clearly labels as "Database size", so it's not possible to say, that space was freed up...
@RomanBarczynski
Күн бұрын
I suppose it is calculated from VPS free space, like current_disk_usage - predefined_disk_usage at start of tests, so maybe rotating some large logs caused this or postgres autovacuum of some previous data? although postgres autovacuum does not free disk space by default, right?
@zahir2342
23 сағат бұрын
I guess he takes a baseline and calculates size by subtracting base from current value. Around 7:35 we can see the graph goes low and then goes up. It means the baseline may be wrong. But the minimum value was around -110 MB but end value was 4.9 GB which makes it 5 GB - postgres vs 18.7 GB - mysql
@Milan____
23 сағат бұрын
Flow of the benchmark environment set up. The graph jumps to negative few hundred megabytes for postgres, so clearly it wasn't doing `df` on the $PGDATA directory, but used a constant value subtracted from the current free space. Thus it could have been anything on the server affecting the results, or postgres log rotation, or dirty postgres data folder having some leftover data in pg_wal/ that got removed naturally. As others said, autovacuum doesn't reclaim free space.
@GabrielPozo
17 сағат бұрын
I liked this comparison between databases! I like the idea of seeing more databases on these videos.
@EckyPutrady
Күн бұрын
Thanks for doing this! I would have guessed that Postgres would take more space due to MVCC. Weird.
@Milan____
23 сағат бұрын
It could have, except MVCC wasn't really used if it was just 80M individual inserts on autocommit. Until tuples are updated or deleted, or fillfactor is configured for a table, MVCC has near zero overhead costs. (The longer answer is that ever tuple has around 16+8B of invisible metadata in table heap, another I think 26B for page header (one page by default = 8kB) and some more in the visibility map file.)
@baxiry.
17 сағат бұрын
A fair comparison between databases and storage engines cannot be made without recalibrating durability, as each database has different settings. For example, PostgreSQL flushes the database to disk periodically every 200 milliseconds. Good durability. But if the operating system crashes before that, we will lose the data that was written during that, and this setting is different from writing to disk immediately after each input. But writing to disk immediately after each input slows down the database a lot. The data is delayed in memory, which explains the memory consumption. Writing to disk is also different from writing to memory... Storage engines write data page by page (to fit sectors on the disk). The page size is usually 4 KB (sector size). If the input data is 1 KB, it is counted as 4 KB, and the storage engine fills the remaining space with empty bytes, until it overwrites real data, so writing periodically reduces the number of disk accesses, and thus the amount of additional empty data. Hence the amount of disk consumption, not the actual data. Something I don't understand about this benchmark is those negative numbers for disk usage in the PostgreSQL benchmark. Is the reading from the disc considered a negative number?
@DanielBos
Күн бұрын
Why did PostgreSQL disk usage go negative for a while?
@spicepirate
Күн бұрын
I never thought there's that huge difference between PostgreSQL and MySQL
@adam_ordway
Күн бұрын
MongoDB vs PostgreSQL. It would be really cool to see two different tests where first mongo tries to work with relational data by running joins, and then second model the data for PostgreSQL to be used as a document database with bson.
@lolilollolilol7773
18 сағат бұрын
You didn't say anything about the tuning of the database servers. Tuning it well is primordial for performance ! You need to tune memory, and disk buffering among other things.Also you said nothing about the indexes that were used for the tests. Without those details, the comparison is pretty meaningless because default tunings usually aren't production tunings but development tunings. They are very conservative and limit the performance greatly. In general, you should ask for advice from the general public before performing your benchmarks, because sometimes, you make very naive assumptions that are simply incorrect and completely distort the results.
@marcsfeh
15 сағат бұрын
He literally asks for suggestions mid video.
@flamingspinach
9 сағат бұрын
@@marcsfeh OP's point was that he should ask for advice before releasing a video with potentially mis-analyzed data in it.
@dextrowim
3 сағат бұрын
@@flamingspinach Well no...even untuned, the test is relevant ! It means that you if you can't or won't put the effort in "tuning" go for Postgres it gives you best likelihood for best performance with out-of-the-box config
@tudorhulban2817
19 сағат бұрын
Hi, Test should use full capabilities of the db, therefore postgres procedures and functions should be used to reflect the maturity levels of the used databases. To decrease the time of tests would recommend ram disk. Would be nice to see oracle xe vs postgres, with both using db objects.
@mileselam641
Күн бұрын
I love seeing benchmarks between databases. We need more of them. Folks should keep in mind that schema design and use cases make a bigger difference than engine in most cases, just like data structures and algorithm choice makes a bigger difference than the programming language. There are also so many "shortcuts" that each engine implements for different scenarios. It's still good to see comparisons with apples-to-apples. It's a shame the proprietary db vendors don't allow performance comparisons like the open source DBs allow.
@JaydeepMaddipati
23 сағат бұрын
mysql uses repeatable read isolation level by default and postgres uses read committed.we might need to re evaluate this once again!The go sql client and infact postgres client would be using autocommit mode by default which is a transaction at the db level!So even for same query read or write mysql would need to do more work theoretically compared to postgres
@JaydeepMaddipati
23 сағат бұрын
So postgres allows more concurrency out of the box compared to mysql
@JaydeepMaddipati
23 сағат бұрын
@AntonPutra you might need to re evaluate this using same isolation level for both
@snooks5607
Күн бұрын
I'm assuming mysql was using InnoDB engine? MyISAM is practically deprecated but it'd still be interesting to see this comparison using it and also vs Aria engine from mariadb
@AntonPutra
Күн бұрын
i used default settings
@quangtung2912
21 сағат бұрын
I think you should be careful with default configs. InnoDB by default has very conservative configs. Good for testing but not sure its good for production. @@AntonPutra
@Akkadius
Күн бұрын
Be good to know if this is Mariadb, regular oracle mysql or percona MySQL. All makes a difference. Great job on these videos !
@imranhussain8700
9 сағат бұрын
Thank you for sharing these insights really helpful. Appreciate your efforts in making this vedio. Why Disk Reads IOps was O for postgres SQL?
@iddqd2048
Күн бұрын
Test is worthless. What is the configuration? Postgresql configuration is way faster with default configuration. Postgresql has huge problems with updates ...
@EzequielRegaldo
Күн бұрын
Seriusly loved this bench
@AntonPutra
Күн бұрын
thank you!
@Adanos36
Күн бұрын
i like the visualization you do, it's a great job. but i think the load scenario is too simple to judge the DBMS performance. pay attention to tpc-c testing and hammerdb.
@MelroyvandenBerg
17 сағат бұрын
Small follow-up question: What about PostgreSQL vs MySQL vs MariaDB? Yes, MariaDB is used a lot now (including myself).. So it would be nice to include it in the test.
@piotrbielski9624
Күн бұрын
Hey Anton, I have been watching your benchmarking series from the start and love them! I might have an idea back on the language performace... it would be interesting to see the power of fully-fledged JVM vs something like Go or Node? Last comparison was using Java compiled to binary without the JVM. The memory usage will be massive but I wonder if the JVM at peak performance (after warm up) can outperform other GC languages in terms on Number of Requests before failure and the Response Time. Something like Amazon Corretto or even OpenJDK would be interesting
@krissukoco9294
Күн бұрын
I guess I'm addicted to this channel now...
@darksoldader
Күн бұрын
Gran trabajo! Gracias por todos los aportes!
@georgehelyar
21 сағат бұрын
My current hell at work now is trying to get postgres to be fast doing large queries at scale (5k req/s) Postgres is great for small things but when you get to reasonably large sets of data running a lot of queries per second, and the queries contain joins, it's such a pain to try to trick postgres into using a sane query plan, with a mess of ctes to make it do things in the right order. You can make it fast but it's a lot of work. The biggest problem is one slow query (run a lot of times) can 100% the CPU on the server and take the whole thing down. pgbouncer is also essential because postgres does one process per connection. Would have used nosql but data is very relational with a lot of many to many relationships.
@laundmo
55 минут бұрын
Have you considered or proposed sidestepping the problem partially with a materialized view as a cache? you probably have, but i thought i'd put it out there.
@Robert-G
18 сағат бұрын
using a binary copy with pgx will allow you to insert jaw dropping numbers of rows per second. and it only re-evaluates indexes once when you say complete. it’s slightly slower cousin allows you to stream csv directly into or out of the psql cli client.
@TroelsArvin
21 сағат бұрын
Interresting, thanks. I'm interested in knowing how Postgres was configured with regards to random_page_cost and shared_buffers. And did you change defaults for values like checkpoint_completion_target file synchronization related parameters?
@abc_cba
Күн бұрын
Wow!! Thanks for this comparison.
@arozhik
4 сағат бұрын
2 Years ago i was tested on bare metal mysql vs postgresql using 0.9 TB file with real events. Nodejs was used, both databases used default configs. There was ~90% of selects, rest was IUD. With low level of concurrency mysql was winner, with > 30 workers postgre on a top. I played with database structure and other things, and found, than there is no clear winner or loser. Summary: both mysql and postgre have own advantages/and disadvantages, and database selection is depends on many factors.
@tomasprochazka6198
21 сағат бұрын
The language is called Go, people call it incorrectly golang because of its former web domain. It's even in the language's FAQ section. People also don't call Rust Rust-lang.
@lolilollolilol7773
18 сағат бұрын
You gotta leave it to Google to name their language with a name that is impossible to google.
@mhmmdshaz98
6 сағат бұрын
😂@@lolilollolilol7773
@laundmo
57 минут бұрын
people definitely do say Rustlang - in fact its the preferred social media hashtag since just Rust has many conflicting uses.
@ryanc312
20 сағат бұрын
@AntonPutra could you upload the ddl for both mysql and postgres into the github repo? I did a similar benchmark on my own about 6 months ago, but focused on larger batches of operations and our results are wildly different.
@mahmoudmousa2405
16 сағат бұрын
Serious question: could you try Posgres Vs Sqlite? I would be very keen to watch that
@alexfilus
20 сағат бұрын
Add tests for reading by secondary index. Postgres and MySQL do it in a different way. And updates. It will trigger Postgres vacuum.
@sherifalaa5
Күн бұрын
amazing insights, thank you
@AntonPutra
Күн бұрын
my pleasure
@javohirmirzo
Сағат бұрын
another great comparison. thanks for the effort. btw, what happened to insert latency of postgres right at the end? it looked like there was a steep increase. cpu usage and disk write iops also looks degraded at the end
@sinterusde8869
19 сағат бұрын
Thanks for your effort!
@michl49m
18 сағат бұрын
I would love to see the comparison between Timescale and Influx.
@MolinaNilson
Күн бұрын
I would love to learn how to setup this kind of tracking for my test apps. I’m assuming this is Prometheus and Grafana? Would love a tutorial video on these!
@AntonPutra
Күн бұрын
yes, prom + grafana in k8s. i'll make a tutorial soon
@nishadvadgama
Күн бұрын
@@AntonPutra I would love to learn it as well to setup this on k8s as I am beginner starting to learn k8s
@karim-gb5nx
19 сағат бұрын
Thank you for these tests really great!! can you consider benchmarking cassandra with any nosql database please?
@lovol2
Сағат бұрын
Wow. Fantastic. Can you please do SQLExpress (latest version?) Vs postgress?
@VampireSilence
Сағат бұрын
How about a comparison between MySQL vs. MariaDB?
@МихаилШелков-п7н
22 сағат бұрын
@AntonPutra Hi, it will be nice to see the impact of indexes in future tests. Because i know that Postgres has also incredibly good indexes, so it will be very interesting to compare it with other implementations
@sarveshpandey1485
9 сағат бұрын
This is a good comparison! How about postgres vs Oracle DB? Can you do similar testing for them.
@dimaserbenyuk9638
Күн бұрын
Great, thanks for the info. =)
@TWFsecurity
Күн бұрын
We need PostgreSQL VS SQL Server from "Microsoft" Thumbs up if you agree
@AntonPutra
Күн бұрын
it's been a while since I touched with windows server 😊
@nothingisreal6345
23 сағат бұрын
@@AntonPutra sql server can now run on Linux and also in Docker containers.
@FoXSnoW1
Күн бұрын
pls scylladb vs mongo vs postgre
@AntonPutra
Күн бұрын
noted!
@laundmo
Сағат бұрын
i really want to see MariaDB vs Postgres especially with the Aria storage engine in MariaDB
@bigl9527
5 сағат бұрын
This may be out of the topic, but you seriously need to use de-esser. The "S" sound is really hurting my ears. I advice you use some OBS plugin if u use OBS. Or something similar when editing the video
@dasten123
18 сағат бұрын
I'd love to see the same test with MySQL vs MariaDB
@isnimshchikov
18 сағат бұрын
Well, in the first scenario, clickhouse will be the fastest by a very big margin. Because it was optimised to deal with such data
@Robin-uh7zz
22 сағат бұрын
How about MS SQL vs. Oracle vs. IBM DB2 vs. Postgres vs. MySQL MS SQL (Express) should be free and Oracle and IBM might also have some free "testing" things. The first three are the typical corporate DBs... But afaik Microsoft forbids publishing benchmarks in there ToS.
@SteffenF
20 сағат бұрын
a compariso between db2, oracle and mssql would be fun. with InsertOrUpdate joins and stuff like that. stored procedures and so on. would be nice
@amaraag9435
23 сағат бұрын
Deno 2.0 has released now. Please compare bun and deno 2.0
@carlosaugustorj
13 сағат бұрын
Nice comparison
@startappguy
Күн бұрын
POGO FIRE Tech Stack still holds the crown. PostgreSQL as I always say is the best SQL database even in its list of features. Golang is also one of the best if not the best network programming languages. Fiber just go brrrr! But this could be Chi or Echo. Then for frontend React is just the most popular frontend framework. Can be either Vue, Svelte or Solid. PO - PostgreSQL GO - Golang FI - Fiber RE - React
@AntonPutra
Күн бұрын
😊
@michalszalapski
8 сағат бұрын
Thanks for comparasion. But MySQL performance wins when u scale it, because it support master/master/master(pg cannot) and connect with proxysql, also single node with query_cache, it will crush pg. 10k req/s for that sql is very poor performance.
@svrls0619
5 сағат бұрын
Suggestions: MariaDB vs MySQL vs PostgreSQL
@jm-alan
21 сағат бұрын
PostgreSQL is the PostBestQL
@philipm1896
3 сағат бұрын
Tests should have been run one at a time, then results layered. I wonder who wins if the primary key is a UUID v4 or v7 instead of an integer. Good work though.
@ayder
8 сағат бұрын
Which MySQL and Postgresql versions are you running? Can you share the startup configuration for both databases? There are many options which could effect this test design. I doubt this test have significance unless both databases had a proper setup.
@framegrace1
5 сағат бұрын
MySQL is a fossil of a bygone era. It has a lot of legacy design of the ISAM times that burdens it inmenselly. It played a role for the long time postgresql was in development, with big feature gaps and more management effort. Postgresql, had to win at the end. Is just better designed from the start with a sound academic foundation.
@deniial00
23 сағат бұрын
Now do Postgres vs Sql server - make sure to also test spatial functions
@danielt8880
Күн бұрын
Do you have a video on how you setup everything from scratch, and how you collect metrics
@vladimir_v_it
8 сағат бұрын
Great video!) How can I start this test on my Virtual Machine with docker installed? Try to observe your repo. Doesn't clear for me now. Could you, please, clarify this moment? Really want to touch it by myself.
@rign_
Күн бұрын
MySquel... ThePrimegen would be proud.
@spicynoodle7419
Күн бұрын
The only correct way to pronounce SQL is to *round_robin(['S.Q.L', 'Sequel', 'Squeal'])*
@TsillALevi
Күн бұрын
Really surprised about disk usage. I don't know how it could be that different.
@limplash
20 сағат бұрын
can you please also compare Timescale DB VS regular Postgres .. and make use of the hyper tables timescale offers for the event table. Also i will assume if you have more clients with new connection with Postgres you will have more CPU usage on postgres
@sromankov6102
Күн бұрын
Can you record a video describing how do you configure monitoring setting agents configuring graphs?
@MinhazurSarker
Күн бұрын
PostgreSQL vs MongoDB please
@bibahbibah5108
22 сағат бұрын
a very good subject, for me one of the best, with a good conclusion, this video will be my ref in debate 😂
@voltexripper8367
Күн бұрын
Bravooo, well done , keep the good work really makes a difference when taking decisions which RDBMS to use
@ionutale1950
Күн бұрын
Nice job
@AntonPutra
Күн бұрын
thanks!
@gabrielmartinez2455
Күн бұрын
I would loved to see PostgreSQL vs NoSql (dynamodb, scylladb)
@AntonPutra
Күн бұрын
soon
@vivekchaudhary5728
Күн бұрын
Same test but instead of deploying it on Kubernetes, please use AWS managed services without AURORA...and try at different CPU level, like first try with AWS free tier Postgres and MySQL and then increase the CPU size
@wedding_photography
8 сағат бұрын
The problem with testing databases is that you really really have to understand their configurations. What if one is slower, because it's configured to flush data to disk more often, so it loses less data when the server goes down? You're basically testing default configurations, not actually databases. Another problem is how little data you've inserted. It probably fits into RAM. So again, not a realistic test. You have to insert gigabytes to make it meaningful.
Пікірлер: 327