upvote
We were building a payments system in the early 2000s and got a diktat to not use Oracle. The amount of things we had to build to satisfy the availability and durability requirements were so huge it consumed the first few years of work. We didn’t get to the business side of things until much later. Funny thing is we ended up giving up on MySQL and went back to oracle after all that work. The whole thing was scraped after a couple of years.

To get to the level of scale that oracle can handle we had to build sharding and cluster replication from scratch. It still didn’t get to even 1/10th of a single oracle node. Obviously we made a lot of poor architecture decisions as well - in hindsight, of course.

reply
We should really be more thankful for the existence of PostgreSQL
reply
Yes, although a lot of the most advanced PostgreSQL features that would bear comparison in this discussion are relatively recent. PostgreSQL didn't have them in the 2000s, either, and where it did, the ergonomics were much worse than they are today.
reply
There was also DB2. DB2 was (still is) an excellent database that IBM has completely fumbled.
reply
There are three different Db2 databases.

I believe the mainframe version was first.

There is a version baked into the os/400 operating system (i series).

Then unix/windows Db2 came last, if memory serves.

https://en.wikipedia.org/wiki/IBM_Db2

reply
I only ever worked with the Linux/Windows variant. I can’t believe I am saying this about an IBM product, but I found it to be actually rather pleasant to work with.
reply
It’s def got 80’s hacker movie vibes, typing “Iniate log rotation sequence;” etc just screams out for a green terminal emulator.
reply
You’d never say that if you’ve been on the inside of a mainframe DB2. shudders
reply
It's very amusing to me that you bring up IBM in a discussion of the value of Oracle.

I came here to say that if you want to understand Oracle's value, think IBM with less history.

reply
Kind of, but there are some subtle differences in my opinion. Oracle is top-to-bottom evil, whose business model basically boils down to screwing over their clients and everyone else at every possible opportunity, comparable to the likes of McKinsey or Accenture.

IBM is a bit more nuanced. My wife grew up in an IBM town and a lot of her family and her friends’ families used to work there in the 70s and 80s. People, especially the engineers, used to take pride in their work there.

reply
I think of IBM and GE as being cut from the same cloth back then- they treated their people well and dominated their markets.
reply
Didn't they famously help both the Nazis and Apartheid South Africa?
reply
"At the time, MySQL existed ..."

You had to be careful with MySQL back then as constraints were syntactic sugar but not enforced. PostgreSQL was indeed much tougher to manage but more full-featured.

reply
Really, you've always had to be careful with MySQL. It really was the PHP of RDBMSs.

The silent "SHOW WARNINGS" system, nonsense dates like Feb 31, implicit type conversions like converting strings to 0s, non-deterministic group by enabled by default, index corruption, etc.

reply
Not just constraints, transactions were also a no-op. The MyISAM engine is still available in modern versions if you want to experience this, it's just not default anymore.
reply
I love Postgres in 2026, but it really was not a viable enterprise option before 2010. MySQL had decent binlog replication starting in 2000 which made up for a lot of the horrible warts it had.
reply
mysql was great in 2000 if you knew all the foot guns to avoid and set it up correctly (and not just what sounded correct).
reply
SQL Server was pretty good until they went the Oracle way with their licensing shenanigans, but even with that they were a lot cheaper than Oracle. In fact SQL server was one of the few great products that came out of MS.
reply
Having written a rust client for it, even their documentation is absolutely stellar. You just read how the protocol works from the PDF and implement it.

Can't say the same about Oracle.

reply
IIRC they also had the first native (100% Java) JDBC driver, so you could run from any platform and without weird JNI locking issues when using threads.
reply
What's about DB2? I have no experience with it but I guess IBM specifically designed it for enterprise-scale transaction processing workloads...
reply
DB2 was crazy good for certain use cases but very weird. For one, the pattern for DB2 efficiency was pretty much the exact opposite of every other database. Every other database would say "Normalize your tables, use BCNF, blah blah, small reference tables, special indices etc".

DB2, the pattern was "denormalize everything into one gigantic wide table". If you did that it was insanely fast for the time and could handle very large datasets.

reply
DB2 had/has excellent data compression capabilities, achieving ratios for OLTP that would only be equaled by later OLAP columnar systems.

For raw performance needs, many financial services schema were going to be denormalized anyway. Compression was a great way to claw some of the resulting inefficient storage back.

reply
I have not had much experience with DB2, but given that the relational data model and normalization was invented at IBM (Codd) and IBM's implemenation of those concepts was DB2, DB2 performing poorly with a normalized data model seems strange.

My recollection was that DB2 did not support multi version concurrency control like Oracle and Postgres did. The result was a lot of lock contention with DB2 if you were not careful. MVCC was eventually added to DB2, but by then it was too late.

reply
That sounds oddly similar to how people recommend using Dynamo. It's super hard to do coming from SQL because everything just feels wrong.
reply
So it was an early version of mongoDB?
reply
> DB2, the pattern was "denormalize everything into one gigantic wide table". If you did that it was insanely fast for the time and could handle very large datasets.

Nobody got fired for buying IBM^W NoSQL

reply
Just curious, how was SQL Server perceived at the time compared to Sybase and Oracle? I know it originated as a port of Sybase.
reply
SQL Server 2000 was well received in the segments that mattered as a challenger. Oracle was in first place running on Unix. However, it was viewed as expensive and the procurement experience was regarded as unpleasant. People wanted competition even if they didn't think SQL Server, or another alternative, could unseat Oracle for the most important stuff.

Windows was really picking up steam and there was a move to web development in the Windows-based developer space. Visual Basic and Delphi were popular but desktop development had peaked. ASP was for building your apps and SQL Server was the natural backend. SQL Server fed off this wave. It wasn't dislodging Oracle, but rather than every app being built on Oracle, more apps started to use SQL Server as the backend.

Then ASP.NET appeared on the scene and demand grew even more. It was a well-integrated combo that appealed to a lot of shops. I started my career in a global pharma and there was a split between tech budget. IT was a Windows shop for many reasons and ran as much on SQL Server as possible. R&D was Unix/Linux with Oracle. There was a real battle going on in the .NET vs Java (how about some EJB 1) and the databases followed the growth curves of both rather than competing against each other.

The SQL Slammer worm brought a lot of attention to the product. There were instances running everywhere and IT didn't expect so much adoption. Back then you had a lot more servers running inside offices than you do today. My office was much like my homelab today. This validated the need so the patches got applies, IT got involved in the upkeep, and adoption continued to grow.

Oracle's sales folk and lawyers were horrible to deal with. I had some experience of this directly as they tried pushing Java-related products and my boss dragged me into the evals. One of my in-laws was outside counsel in the IT space doing work with enterprise-sized companies. He claims they are the worst company he's ever had to deal with and wouldn't delegate any decision-making locally which endlessly dragged out deals. They had a good product but felt they could get away with anything. Over time he saw customers run lots of taskforces to chip away Oracle usage. This accelerated with SaaS because you could eliminate the app AND Oracle in one swoop.

reply
I remember talking to one tech leader at the time who described it as "surprisingly good, for a microsoft product" which sort of summed it up. But it had similar characteristics to sybase except more so because you had to run it on an NT server (iirc) and so there was an even harder cap on the scale of hardware you could run it on, whereas you could run oracle on really top-end sparc hardware that was way more powerful than anything that ran windows.
reply
Depends if the director or VP liked Microsoft or not. I’ve worked at places that loved SQL Server and Microsoft server products in general. Others did not use them anywhere in their datacenter and wouldn’t have considered them. Oracle, IBM, and Microsoft were very dependent on if the people in charged liked them. Not so much technical merits.
reply
SQL Server was very good and used in a lot of enterprises. ime the decision between Oracle and SQL Server tended to be down to whether the IT department or company was a "Microsoft Shop" or not. There were a lot of things that came free with SQL Server licenses and it had really nice integrations with other Microsoft enterprise systems software and desktop software.

Oracle was definitely seen as the more mature and resilient (and expensive!) RDBMS in all the years I worked in that space. It also ran on Unix/Linux whereas SQL Server was windows only. Many enterprises didn't like running Microsoft servers, for lots of (usually good) reasons.

reply
MS SQL Server was forked from Sybase in 1993. Not sure how much the code had diverged by 2000. Informix was also a contender back then.
reply
we still have an informix db for an old early 2000s application we have to support. shit runs on centos5 lmao. it's actually not too bad, around v12 there's cdc capabilities (requires you to build your own agent service to consume the data) that made the exercise of real time replicating the app db in our edw a cakewalk. which ironically has greatly extended the lifespan of the application since no one has to query informix anymore directly.

ibms docs and help sites suck butt tho.

reply
7 was a rewrite, from c to c++, also went from 2k pages to 8k pages
reply
SQL Server was Sybase until (I think) version 4.9, just rebranded as Microsoft SQL Server.

Then the two versions split and I don't think that any of the Sybase source code remains in what is SQL Server today.

That said, a lot of the concepts (like a significant number of system stored procedures) and also TSQL remain almost the same, with small differences (except for system functions, which SQL Server has a lot more functionality).

When you come from the Sybase world getting a start on SQL Server is quite straight forward when it comes to handling the database.

Internals and other low level nuts and bolts differ nowadays, of course.

reply
SQL Server's claim to fame was GUI admin tools making life easier for many who bore DBA responsibilities only in anger.

It remains one of the most reliable Microsoft products, but few would claim that is a high bar.

reply
TOAD was fantastic for Oracle, though. I liked it better than SQL’s stuff.
reply
I can't really speak to 3rd party utilities, I think Management Studio was sufficient to keep most competition from ever starting.
reply
This is a very short comment on SQL Server's code improvements (post-Sybase).

https://news.ycombinator.com/item?id=18464429

The top comment in the post is a long complaint about the code quality of the Oracle database (worth a read).

reply
My experience at the time was that it was perceived as not serious enough and lacking important features. If my memory isn't very bad, I believe as late as 2000 SQL Server still only supported AFTER triggers.

In my experience in the late 90s and early 00s, besides Oracle and Sybase, DB/2 and Informix were also regarded as good. Oracle was considered the best though.

reply
2000 for sure had instead of triggers.. I used them :-)
reply
I keep landing into projects with Oracle, SQL Server, DB 2.

Naturally our customers aren't companies that care about HN audience.

reply
deleted
reply
I disagree as I was running clustered sql server 6.5 and 7 in 1998 for hundreds of concurrent users doing millions of reads per hour on NT basically commodity boxes. Replaced it with Oracle for 100x cost and lost performance.

I think even back then you were usually better off with distributed databases running mysql or postgres over Oracle. Although people liked to think a giant Oracle db was better.

reply
For others like me who might be skeptical to hear throughput in any metric other than seconds (and is used to large numbers in hours/days being used to inflate), I think millions per hour is actually quite high for 1998.

Assume that means 5_000_000/hour. 5M/hr => 83k/min => 1400/s. That is impressive for late 90s. I was generous on what "millions per hour" meant, but even if its 2.5M/hr that would be 700/s, which is still quite good.

reply
Those are big numbers especially for non-enterprise DBs in the 90s.

MySQL's big breakthrough(not specifically talking about perf) was innodb in 2010.

Just 15+ years ago Postgres had major issues with concurrency as we think about it today.

And just 10+ years ago a LOT of DB drivers weren't thread safe and had their own issues dealing with concurrency.

So nearly 30 years ago? Fuhgeddaboudit.

reply
Java and VirtualBox. But both are free.
reply
Sort of. The VirtualBox Extension Pack is free for personal or educational use. It is explicitly not free for work use[0]. You can download it for free, but accepting the license to do so obligates you to pay them for it.

[0]https://www.virtualbox.org/wiki/Licensing_FAQ

reply
> A very long time ago (circa 2000) there were basically 2 databases that worked for use cases where you needed high availability and vertical scalability

... and both of them were Postgres.

I used it in the late 90s for the backend for websites written in PHP3, but everyone said this was ridiculous and silly and don't you know that everyone's using the MySQL thing.

So I used this MySQL thing, but by about 2005 I'd gone back to powering my lawnmower with a 500bhp Scania V8 because I just preferred having that level of ridiculous overkill in an engine.

Nowadays? Key/Value store in RAM is probably fine for testing -> Sqlite is often Good Enough -> Ah sod it, fire Postgres into a docker container and warn the neighbours, we're going down the Scanny V8 route yet again.

reply
I was around back then and I call Bullshit on everything you claim. There were more database options in 2000 than there were in 1996. Even before that there was FoxPro… c’mon man. Oracle’s only value was they built a NO EXIT clause into their contracts…
reply
Oracle was the ONLY game in town if you were serious. It was like buying IBM in the 80s. Source: programmed PL/SQL and embedded SQL at the Toronto Stock Exchange in the early 90s, on SCO Unix and Oracle.
reply
it was soooooo the only game in town that they were like NVDA now, yea you got alternatives but you really don't and hence you charge insane prices and everyone is paying up with a grin on their faces. oracle was the only game in town 100% if you were serious!
reply
Nobody was building WoW on FoxPro, c'mon.

You'd have to assume businesses were insane/stupid to go with Oracle to the tune of billions and billions of dollars if you believe that they had zero value to sell.

reply