On 11/1/07, Kevin Hunter <hunteke@xxxxxxxxxxx> wrote: > Hiya list, > > A friend recently told me that, among other things, the institutions for > which he works tend to choose MySQL or MSSQL over Postgres because the > latter requires a dedicated DBA while the former do not. When they do > spring for a DBA, they go with Oracle. As a developer/end-user in/of > the MySQL/Postgres/Oracle environments, I can say hands down that I > prefer Postgres and I have a list of reasons why to which I can readily > refer. Anyone who thinks MSSQL server doesn't need a DBA is an idiot. Period. I've worked with it in the past, and it needed at least as much DBA hand holding as PostgreSQL 7.4 did. Now, as to the difference between PostgreSQL and MySQL re: DBA being needed. The main difference between the two databases is one of behavior which has trained people to think MySQL is so simple you don't need a DBA. But MySQL will gladly corrupt your data silently until it's far too late to get any of it back. This is true of myisam files getting corrupted and is also true of it's rather poorly behaved out of the box replication, which is documented, even on the MySQL site, as quietly failing and losing sync. Main server fails, you switch to the backup, find it's 8 weeks out of date, or missing 1 in 100 rows, and it never told you. PostgreSQL, OTOH, throws fits the second anything goes wrong and often refuses to come up or keep running until you fix it. It lets you know something is wrong before you lose data. Neither one will run particularly fast or well without SOMEONE who knows how to keep them happy. Neither one takes backups automatically at midnight and ships them offsite for safe keeping. Neither one automatically finds slow running queries and analyzes them to find out what you need to do to make them run faster. The fact is that you can hire a part time DBA from one of the wonderful PostgreSQL support companies that frequent this list who will come in once a month or so and make sure your db is running smooth. And Oracle does NOT require a DBA. Oracle requires an entire entourage of DBAs to keep happy. It is a ravenous beast filled with arcane switches which requires a lot of manual labor to keep it running smooth. And not just for big transactional sites. For damned near anything you throw at it. Admittedly, when properly tuned and maintained it's an impressive database. So, in my opinion, MySQL is good for data you don't care about or can recreate or can lose a days worth of with no big loss. Like bulletin board systems, or content management. Take a backup every night or too, use rdiff-backup on it, and you're set for when it eats your data one day. which is will if you're running isam tables. MSSQL server is good for fast Windows based development, because it integrates well with .net et. al. PostgreSQL is good if you need to save money on licensing and want a DB that can rival Oracle for the 80/20 split. It's still not in the same realm for really really big transactional sites, but man is it geting close fast. Faster than Oracle is improving in that realm. Oracle is one of the big ticket DBs and needs big ticket budget and hardware to perform. They ALL NEED A DBA. Just for different things. ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match