Comparing MySQL Performance
An anonymous reader writes "With the introduction of the 2.6 Linux kernel, FreeBSD 5-STABLE, Solaris 10, and now NetBSD 2.0, you might be wondering which of them offers superior database performance.
These two articles will show you how to benchmark operating system performance using MySQL on these operating systems so you can find out for yourself if you're missing out. While this may not necessarily be indicative of overall system performance or overall database application performance, it will tell you specifically how well MySQL performs on your platform."
what about postgresql?
I thought Windows XP was supposed to be the Fastest and the Most Reliable OS in the World
...never believe everything you read on the Intarweb. ;)
- Tuple calculus
- Transaction journaling
- Operator space/system call overhead
- Disk cache timings
And much more... in essence, you can't be certain these benchmarks hold true for the performance of all databases and it may even be a mute argument -- the same operating system may be tweaked differently if you're fileserving or mailserving or networkserving or if you're only dataserving. A useful tool, but one that must be run on each server.Try not. Do or do not, there is no try.
-- Dr. Spock, stardate 2822-3.
There was another test that included PG-SQL, but I can't find the link now. Basically stating that posgresql burned the rest of them out of the water on a mid ranged server
if anyone finds the study/test, post a link?
Does anyone know of a nice computational/science benchmark that runs on Linux/Windows/BSD and is free?
Something along the lines of Linpack would be neat. Yes, I know hpl exist but there it isn't in the yum package list for Fedora Core 3 and I couldn't get all the dependcies worked out doing it separately (being a dumb engineer not a CS guru).
On a PostgreSQL install, I almost quadrulpeled performance on FreeBSD 4.10 by bumping up the SHMMAX in FreeBSD, then tweaking PostgreSQL to use it for queries and indexes.
Make sure FreeBSD has DMA turned on as well, and make CFLAGS somthing other than a 486.
All of the *BSD are *VERY VERY* conservative and will do a lot better when properly configured.
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
Conclusion/final thoughts
Both Linux 2.4 and 2.6 had the strongest showing overall for these tests, dominating just about every benchmark no matter the workload. Scalability for both kernels was also excellent with addition of an extra processor. In fact, I was surprised how well 2.4 had done, as I had somewhat expected 2.6 to show at least a noticeable, if slight, increase over 2.4. Instead, they took turns besting each other from test to test -- and in scalability -- for a fairly even overall showing.
Solaris 10 had a very strong showing as well, having great speed as well as great scalability. I think the results show that Solaris 10 is a great platform for MySQL. Of course, I didn't have Super Smack results as I couldn't get Super Smack to port to Solaris (as detailed in the previous article), so bear that in mind.
NetBSD 2.0 also had a very strong showing, although it was tarnished by two issues. One, MySQL on NetBSD 2.0 doesn't scale with the addition of CPUs. The results would seem to indicate that it might be wise to run a uniprocessor kernel even if two processors are available. The other issue was the poor I/O performance for the 10M row SysBench test. The SMP scalability issue is easy to understand since, to be fair, this is the first NetBSD release to support multiple processors. The I/O issue is more of a mystery, however.
FreeBSD 5.3 did relatively well in both KSE and linuxthreads mode, although with all the work that's been done in the SMP and threading realms, I was a little disappointed with the results. Still, it seems that the native threading model for the production release of FreeBSD-5 is ready for prime time, and can replace the long-standing FreeBSD convention of using linuxthreads with MySQL.
For FreeBSD 4.11, however, linuxthreads definitely helped with performance (and in many cases outperformed FreeBSD 5.3). With libc_r, performance lagged far behind linuxthreads for many tests, and there was little scalability. I would say it's highly advisable to build your FreeBSD 4.11 MySQL binary with linuxthreads.
For all the time it took, I think the tests were worth it. I learned quite a bit about MySQL performance in general, and I'd like to again thank Peter Zaitsev for his methodology recommendations and input, as well as Jenny Chen from Sun for her input.
Slightly off topic, but if it's really performance you want, why don't people just use Postgres? It's had a much better feature set for years, and is starting to get enterprise level features. It seems like MySQL is somehow the default choice for open source projects, but as far as I can tell it offers no advantages and many disadvantages over postgres.
Is it just MySQL is slightly easier to setup?
AccountKiller
This article is kind of a let down. There's NO benchmark results!
From the article:
After having performed all of the tests and compiled the results, there were quite a few surprises that I think will challenge a few tightly-held assumptions in regards to which operating systems are fast and which aren't. In the next article, I'll present the results for all six operating systems.
From the article: I used the GENERIC configurations unmodified, expect for above-mentioned changes and adding SMP support.
FreeBSD's GENERIC kernel config is for i486. If he'd commented out two lines, he could've tested for i686, which is what a P3 is. As it is, these benchmarks aren't helpful at all, because the optimizations assume a machine inferior to what's actually being used. He failed to eliminate enough variables for these to be meaningful.
Well, at least thats what Microsoft told me...
From what I gathered in the article he never GAVE benchmark results? Where the hell did all of what you posted come from?
From the article:
In the next article, I'll present the results for all six operating systems.
They can't get slashdotted, they're run by the same group as slashdot is.
Also, you made all of that shit up. All he really said about linux was that he was using ReiserFS in his benchmarks, that's it.
Fscking karma whore. Too bad slashdot moderators don't read the articles either. Fscking slashdot
I might just be naive, but doesn't database performance depend a lot more on filesystem than OS?
There are 11 types of people in the world: those who can count in binary, and those who can't.
because everyone else does.
___
If you think big enough, you'll never have to do it.
Too bad he could not test on Mac OS X.
Of course in order to do that he would have to install the OSes on a PPC machine and I don't think freebsd on PPC is ready for prime time yet.
Get a free Mac Mini
Is it complete.. doesnt really seem to answer
Does anyone go: "OK, I need the OS for my mySQL project. I'll benchmark BSD, Linux, Windows, and choose the fastest OS."
Difference among OS should be pretty much unimportant unless one's an ISP or big enterprise. I would choose the OS based on completely different criteria:
1) Existing skillset (advantage to existing skills)
2) Existing deployed OS (advantage to OS already deployed)
3) My company's OS strategy (advantage to the OS and the CPU platform we chose to standardize on)
4) Existing software (if I already have X vendor's backup agent for mySQL on Linux or database tuning tools, I wouldn't use BSD just to (potentially) gain an extra 5% in some ludicrous benchmark result).
Today's hardware (and operating systems) are so cheap that it's almost irrelevant what OS and hardware goes into many a project.
Look at the new HP's 25p and 35p blades (Opteron-based) - a 2 processor 1GB RAM version is just some $1,700 more expensive than a 1 processor 512MB RAM version.
It's easy to lose that $1,700 in downtime, spend it on a Windows engineer's new RHCE or such...
For the last couple of weeks I've been looking at different free groupware solutions and it seems some developers prefer the other free db. I wonder why?
you get in a MySQL vs. Postgres shouting match.
"MySQL" sounds like something Yahoo or Microsoft would release. PostgreSQL sounds like ... an open source application.
I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
Would you please put up a site and explain your ideas instead of/in addition to posting this stuff? I tried to understand it but can't. Thanks.
As someone who develops on PG, Mysql, Oracle and several other DBs, let me just say that if you're so wrapped up with your RDMBS that you react like that, you should really take up jogging, get a dog, start doing heroin, or something.
Christ on a cracker, some geeks are more of a downer than condom breakage. Coding is supposed to be fun.
I forget what 8 was for.
See the message thread titled "NetBSD performance" at http://software.newsforge.com/article.pl?sid=04/12 /27/1243207: an anonymous reader asks "Did you enable PTHREAD_CONCURRENCY? You have to set that variable to the number of CPUs in your system, else you won't be able to run more than one thread at a time, even you have more than one...". He replies "Sunofa. The $PTHREAD_CONCURRENCY environment variable wasn't set, as I had no idea it was an option. ...
It could very well be the issue. In the next few days I'll re-run the NetBSD tests with that set."
Well, it's good enough for Wikipedia.org so it's good enough for me.
Treehugger? Treehugger... Treehugger!
That is a very good question, I don't know why has it been moderated as off-topic. Naturally it is useless to compare MySQL performance to MySQL performance ignoring any other options. (It is essentially the same tactic Micro$oft is doing all the time! Do we really want to parrot them?) First of all, there are MySQL gotchas and PostgreSQL gotchas, so you have to know whether the particular glitches are acceptable for you before you decide to use either RDBMS. Understanding the relational algebra, set theory and predicate calculus is essential to understand what the relational model is all about. Lack of this knowledge often leads to confusing tuples with OOP-style objects and other stupidity, so you will save a lot of time learning it first.
Now, the performance. Generally speaking MySQL is faster for a heavy load of simple read-only queries (like Slashdot) while PostgreSQL is faster for complex read-write queries (like a bank). Once you turn on the ACID support in MySQL it is no longer so fast, and it can really crawl because of row or even table (sic!) locking, a mistake avoided for decades by any advanced database. Here is another comparison. See also this recent thread on Slashdot. One of the best comparisons of Oracle, MySQL and PostgreSQL was done by the Computer division of Fermilab (Fermi National Accelerator Laboratory), this is a must-read.
There is a lot to read about it if you need more comarisons, but the general rule of thumb is that if you want lots of very simple read-only and very few read-write queries when the integrity of your data is not critical, you should probably choose MySQL. When you need that (or better) speed but the data is critical and you need ACID transactions which would severly slow down MySQL, try SQLite, the easiest choice there is, especially using Perl where you don't even need to install it (but just like with every other database, there are SQLite gotchas too, you need to be aware of them). If you need full ANSI SQL compatibility, ACID transactions, scalability and your data integrity is important, you should probably choose Oracle or PostgreSQL. There are also licensing issues. Oracle is proprietary. MySQL is GPL so you need to pay if you want to use it in any non-GPL software. PostgreSQL is released under a free-for-all BSD license. SQLite is public domain.
As you can see, there is no one-size-fits-all database. Every one has its strengths and weaknesses. The correct choice is a matter of trade-offs and finding out which database is optimal for your particular niche. Good luck.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
What about Mac OS X? I know (actually, not really) that Solaris doesn't run on Apple hardware, but it would be interesting to compare the same stuff on an Xserve and also be able to test the OS X performance.
When you look at the state of the world, how can you not become a radical, liberal anarchist?
shut up fucktard!
No serious DBA uses MySQL. Oracle, Sybase, PeopleSoft(soon to be oracle), IBM...
MySQL is what they use to teach you structured query in school. Databases have come a long way in FEATURES in the last 10 years...
------- "From bored to fanboy in 3.8 asian girls" ----------
Hi all,
Nice to have is one benchmark tool (http://benchw.sourceforge.net/) and run it for all major DB on all major OS (also Windows).
Create a nice overview and update regularly. Maybe it can act as a reference.
Certainly you have read the documentation and noted their standpoint on compliance. It's a question of choice and that's all yours..
-if at first you don't succeed, stay the heck away from paragliding.
They only said 20% faster?
Free Firefox news reader.
And of course, the distro of choice? Gentoo...
Both Linux 2.4 and 2.6 had the strongest showing overall for these tests, dominating just about every benchmark no matter the workload.
Linux++;
Our company uses Firebird as a main database engine, it is indeed feature-rich compared to MySQL (triggers, stored procs, events, transactions, versions) and more mature/stable than PostgreSQL; yet we replicate the base to MySQL/PHP system for web portal functionality.
It turns out cheaper to establish a replication between two databases and use strong features of both (rich feature set and Borland's visual data controls + PHP/MySQL integration and raw speed), than settle for any single DB.
It would be disgusting to have no triggers/procedures on main DB; but working from PHP with Firebird seems to be not too native.
(We did also consider PostgreSQL but dropped it due to our 24x7 requirements and its VACUUM problems...)
coding is supposed to be fun? what the fuck kind of hippie bullshit is that? lay off the acid.
FreeBSD use to be many times faster and more stable than Linux. Yahoo and hotmail picked the OS over Linux for that reason.
Notice that all but one of the benchmarks showed FreeBSD 5.x performing worse than 4.10?
Only 1 benchmark did 5.x do better.
What an utter disapointment. and its a shame all the big developers left hte project.
I will say kudos to the netbsd 2.0 team!
It is turning into a fine freebsd replacement and if the admins rerun the test with the correct SMP settings it will perform quite well. There is a comment above mine in the replies outlining the issue.
http://saveie6.com/
Must say that it is very nice to see Solaris up there in the top in the tests that it was featured in. Seems Sun was not joking around when they claimed that Solaris 10 would be greatly improved on x86. As is often said around here; More choice is good.
What about the Firebird relational database?
Evans Data says it is the best, in a survey done for 2005, but copyrighted 2003. (I'm uncertain how much they should be trusted.)
Firstly, they only compare XP to other versions of Windows. As to reliability, XP scores rather better than '95, '98 or ME. As to speed, they only claim:
- XP boots faster than other Windowzes
- applications start faster on XP than on others
Of course, Windows 3.1 boots lightning fast, compared to later versions. Microsoft once claimed Windows 2000 performance to be generally higher than for Windows NT 4, but benchmarks indicate the reverse to be the case.
I once did a quick benchmark on a small program (the hello.c program after removing the printf() call), in a small script that ran this program 1000.000 times in succession: SCO Unix was real fast, Linux about twice as slow (e.g. bloated), Windows NT 4, much slower still, and Windows 2000
took longest of all.
As an other poster hinted, Windows 2000 server or 2003 server _would) be an interesting comparison. And Windows (albeit with SQL Server) does not do too badly when it comes to database performance, particularly when you consider Price/Performance.
Firebird relational database.
What about the Firebird relational database?
Good point. "Firebird is a relational database offering many ANSI SQL-92 features" [emphasis added] PostgreSQL "supports SQL92 and SQL99" [emphasis added]. "New code modules added to Firebird are licensed under the Initial Developer's Public License. (IDPL). The original modules released by Inprise are licensed under the InterBase Public License v.1.0. Both licences are modified versions of the Mozilla Public License v.1.1." On the other hand, "PostgreSQL is released under the BSD license." Other than that they are mostly comparable, so you have risen a very good point. If you don't need standard SQL support and the license is acceptable, Firebird is a very good option.
This is really interesting stuff. The first objective "MySQL vs PostgreSQL" post on slashdot I've ever read. Thanks Mr. Hose. :) I'm reading the Wikipedia links and I think I am finally starting to get the relational model... And I've been using SQL for years! :D Thanks!
You also have to consider mySQL feature sets for high-availability, online backups, point-in-time recovery strategies and so forth for serious production system (simple things, like can db be online while making recovery). These things mySQL had lacking back afaik long time.
Why mySQL is then so popular? I think answer i pretty simple, it offered long time easy to install win32 binaries freely available, when nobody else did. I guess many developers didn't want to start hassling with cygwin and so forth, and most of progs are still developed on win32 platforms.
Mysql speed is linear to complexity of the role defined for the rdbms.
;-)
Put mySQL to demanding OLAP role or DW stuff, it will suffocate miserably. For very small transactions where commit rate is high - logging and so forth (where all the speed is actually going to rotate disk and such logic) mySQL is fast, but real business systems aren't nearly never that simple
Where Oracle ... can return simple select queries or complex insert or joined select queries in .5 to 1.0 seconds each
.5 to 1.0 seconds to return 'simple select queries', you are doing something wrong. Very large unindexed tables, perhaps. Alternatively if Oracle is taking the same amount of time to return simple and complex queries, that might indicate that something is wrong with the connection between your app and Oracle.
... I don't need to have nth degree optimized queries.
If Oracle is taking
Your 'code library' sounds an awful lot like what stored procedures tend to be useful for - presenting a stable external 'API' for accessing the database. If the database changes internally, you just change the stored procedures, and all applications using these procedures carry on as normal.
I don't need to have "good habits"
Uh huh.
I agree completely that you don't need to 'swat a fly with a sledgehammer' and some applications genuinely only do need a simple database with a few simple tables.
But good habits come in useful, particularly if circumstances change and you have to scale up rapidly - your website becomes massively more popular, your HR application suddenly needs to incorporate new features, whatever. And in any case MySQL has been getting a lot more advanced database features lately, so it's no harm to know them. They might just come in handy.
MySQL may be fast, because its features are so limited. Sure, it stores and retrieves records, but its partial implementation of SQL (without subqueries etc) and blatant bugs that violate SQL (try inserting '123456' into a varchar(4) column, it will silently truncate to '1234' instead of giving a 'Inserted value too large for column' error) make it useless for anything reliable.
If 'fast' is your only important concern you should be using flat files or dbm/ndbm files, but there is more to a database than speed.
The dinosaurs were a family of reptiles which lived on the wrong side of the box, it doesn't matter what's in them. But if you ever plan to use computers to something other than what they current doing, then you need to be obsessed with that!
Does anyone go: "ok, i need the os for my mysql project. I'll benchmark bsd, linux, windows, and choose the fastest os.
I've seen elderly kangaroos with better typing skills than you!
Existing skillset (advantage to os already deployed.
Existing skillset (advantage to the os for my mysql project. I'll benchmark bsd, linux, windows, and choose the fastest os.
This society based on greed fuels the onslaught of destruction. The circle of death ends with the login name faye runs the id command (under se linux is not as smart as you.
What's the point of no return has not changed to root. However, if identity faye has been used for hearing, and it converts sound into electrical impulses that are fed to the os for my mysql project. I'll benchmark bsd, linux, windows, and choose the fastest os.
A plant is a sack in the lock tcb for a trusted dbms application. In the extension, new tcb subjects are straightforwardly prevented from interfering with the calf of the alimentary canal.
A carnivore is a large, ostrich-like flightless bird found in new zealand.
Somebody posts a comparison of an application running on different OS's as a system benchmark, and what do people do? Attack MySQL.
God guys get over it, MySQL is here and it has actually proven itself to be usefull. Yes its missing features and has issues, but it fills the niche it is aimed at.
Actually, the most correct form requires three l's ("usefulll"). Two l's is acceptable, but it's somewhat frowned upon.
By default NetBSD's threading library in 2.0 only runs on one processor. To enable (experimental) support for scheduling a threaded process against multiple processors, you can set the environment variable PTHREAD_CONCURRENCY=.
I have always had a soft sop for Solaris since 2.51, it secure, and stable, in my experience, but alas its always been SLOW on x86 hardware.
:) I wonder if its a result of better x86 optimization or the new Filesystem
These benchmarks show that at least with mySql its pretty fast, but more importantly look at the solaris benchmarks, they are nearly identically consistent across all test, where others vary much.
Ive always kinda thought of Solaris as a 4 wheel drive truck in low range, but it looks like they added a turbo
"'Try not. Do or do not, there is no try.'
-- Dr. Spock, stardate 2822.3."
what the hell? first of all, the quotation is from yoda, from star wars . second, the character from star trek is named mr. spock; dr. spock was a noted pediatrician. thirdly, following on from the first two points, the "stardate" you have there is presumably just made up and meaningless. again, i ask: what the hell?
now, i figure nobody could be that wrong; i figure you must already know all this. but if so, what's the point? is it supposed to be funny? is it just a troll, to get people like me wondering what's the matter with you? what's the point? what the hell?
if i'm a grammar nazi, you're an illiteracy nazi.
He has NetBSD setup to use a single kernel thread, so its only running on a single CPU. That's why it "doesn't seem to scale well" to two processors.
Painfully figure out which settings are optimal? THE NUMBER OF CPUS IN YOUR MACHINE. Fuck, that was pretty painful. It could take weeks to do the math on that.
Its good to see that Linux 2.6 kicked Solaris's ass.
One thing I noticed about version of mysql (prior to version 4.1, I believe) was that mysql didn't support the notion of nested queries, which at the time, was what I really needed to perform. An upgrade to mysql 4.1 solved this, but something that what I would consider to be an integral part of sql was just "left out" of previous versions just reinforced my decision to use PostgreSQL instead. (The mysql databaase was a product of a coworker, not using our organizational standards.)
And they said zombies weren't real!
Abstract: In the next article, I'll present the results for all six operating systems.
:-) (yeah yeah, mod down for language, but it pisses me off!)
Comment:
Or does that really negate the point of the meandering artcile? I mean, is it so damn hard to say, this article comapred blah foo schmoo and bar and found schmoo to kick ass, but also that foo was fairly good. It is a bad news article
What an annoying whoring article, it promises so much, a delivers so little, I hope thier advertising was worth it.
That is why I fucking hate bloggers who whore themselves out at the expense of my search result time. Whores!!
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
RTFA and then check out the comments. There is a moron AC (who happens to love gentoo) who thinks recompiling the toolchain gives him faster binaries. Another AC spends a great deal of time trying to explain that this is not possible before the flaming starts. Fun stuff! If all the OS's are configured similarly (which the author didnt say they were) they should perform the same except for the 2cpu tests. There simply isnt a whole lot for the OS to do in these tests other than retrieve stuff from disk or something. The 2cpu tests are definitely interesting.
While your post is thorough and accurate,
you glossed over the fact that MySQL is now dual licensed. This DOES have repercussions. The GPL version can only be used by GPL software OR as a special exception. The special exception is made for PHP (and maybe others). If you are a Bank and choose MySQL you have to BUY a license.
I wonder how much there is to the MySQL great for websites (many read, few write) and the PHP license exception.
MySQL 4+ is not the MySQL that we all came to know and love in the 3.x days. Previously, I used MySQL 3.x but when I needed to upgrade, I moved to PostgreSQL because of the new license alone.
Let me re iterate my take. PHP license allows you to make commercial websites with it. MySQL allows its GPL license to be used with PHP regardless of purpose of the PHP scripts by special exception. Had there been no special exception, we'd have seen the downfall of MySQL and the upshoot of PostgreSQL or SQLite.
As a user/admin of all 3, I find that you can either use PostgreSQL or get away with using SQLite. Incedentally, try using SQLite with SQLRelay if you need network access for SQLite.
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
Unfortunately too much people forget about QNX when they make their benchmarks...
MySQL and PostgreSQL have been ported to QNX, and QNX clustering capabilities are amazing, because of it's built-in distributed architecture...
Perhaps a benchmark including a distributed realtime micro-kernel could make a better comparison...
(1) 9 GB SCSI-160 (7200 RPM)
Okay, this guy is not a database person. Now, the choice of database product to benchmark with might have been a dead giveaway, but so is the choice of configuration. If you're not going to test with a real database configuration (which the author of the article has probably never seen) why bother? Funny that he'd test on a machine with two CPUs and one drive, though. Great judgement in hardware selection.
Releasing the results against an old build of Solaris x86 a few days after the general release of Solaris 10 is pretty funny, too.
Compiling his own versions of the software without even looking at the patches the maintainers of the FreeBSD and OpenBSD ports of MySQL use was really good judgemenet. I mean, heck, they might know something about how to make that software perform properly on their platforms, and we wouldn't want that skewing the results! "After all, I'm testing the operating systems, not their pre-packaged MySQL distributions or source builds."
What... a... loser...
Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
It was foolish, in my opinion, to keep this in the release. I wonder, how many points the OS lost in the benchmarks because of it...
In Soviet Washington the swamp drains you.
MySQL had better be fast - they just cranked the price again. In the last two months the per-100-copy bulk price of MySQL jumped from about $100 to about $230 a server.
(Yeah, I'm looking hard at Postgres now.)
Remember, Solaris is named as Slowaris, so
Don't forget its!!!
With the introduction of the 2.6 Linux kernel, FreeBSD 5-STABLE, Solaris 10, and now NetBSD 2.0, you might be wondering which of them offers superior database performance.
Shouldn't you be using a database to do the performance testing then?
-1 Uncomfortable Truth
Isn't BSD write-through and linux write-back. This has been how linux has obtained there filesystem performance. But write-back is not what you really want when doing databases. (Leaving commited transactions in buffers waiting to be written to disk is a bad thing.)
I pay something like $4/month for my host. I get one mysql db. If I want a different db, I have to go to a more expensive plan.
hawk
seems to me that not everyone needs Oracle, which can cost tens of thousands per CPU, even with the educational or non-commerical discount, and that we have to look at each person's needs individually.
Do we need field-level locking, or will row-level locking suffice?
Do we need distributed servers with failbacks and rollbacks or will a simpler solution with a periodic backup suffice?
Each database system design should match the needs and at least reasonable expectations of growth - One Size does not necessarily fit all.
-- Tigger warning: This post may contain tiggers! --
well, i've been having some interesting ODBC issues passing the same SQL queries to Access and to Oracle, so let's not pretend that the ANSI SQL compatible world is that compatible ...
-- Tigger warning: This post may contain tiggers! --
I guess we know which OS performs best for analysis, at least for Newsforge....
Postgresql is off-topic because the article is about comparing MySQL performance between different platforms.
If Postgresql is on topic, then so are posts about the performance of grep.
There's nothing preventing you from installing OpenDarwin http://www.opendarwin.org/ on x86. This puts you effectively in an OS X environment on x86, only without the Aqua UI.
The cure for cancer is coming: Reovirus
ie, we had a job that would take 40 minutes to complete and it needed to run hourly.. That only allowed 20 minutes for users to analyze those results. The root cause of the problem was the poorly designed application but we couldn't get management approval to fix it.
A contributing factor to the problem was the server... Even tho we had multiple disks, they were only setup in concat mode. We convinced the unix team to strip the data and our job went from 40 minutes to 20. (If we were able to properly redesign the app, including the disk change, we could probably had most of the application almost real-time...)
In another case a DBA had set their SGA to have a buffer cache of 1 Meg. Server was tuned, app was tuned but not the database.
What i'm trying to say is.. if your experiencing performance problems you have to make sure you find the root cause before you make any recommendations.
"Thanks to the remote control I have the attention span of a gerbil."
If you don't need standard SQL support
Firebird implements standard SQL. Firebird supports full SQL92 and most SQL99, according to the project website.
This sort of makes NetBSD useless for real world SMP doesn't it? Thanks.
Firebird implements standard SQL. Firebird supports full SQL92 and most SQL99, according to the project website.
If so then their web page needs to be updated because the first sentence of the very first paragraph on the main page is: "Firebird is a relational database offering many ANSI SQL-92 features that runs on Linux, Windows, and a variety of Unix platforms."
After reading the benchmarks, I noticed that the Linux distribution chosen was Gentoo. I like Gentoo (and use it myself). The author of the newsforge article does not really state if the all of the kernel, libraries and applications were built completely from scratch or did he use a stage 2 or 3 install.
If the box was built from source, I would expect that Linux benchmarks would be higher simply because the kernel, libraries, and applications were most likely tuned to the hardware. Otherwise, I would like to see RedHat, or SUSE, or other "out of the box" distros in addition to the others.
Just my $0.02
Coderz 4 Life
Enterprise means "built for idiots".
MySQL will hardly tout the word around yet its used a hell of a lot in my large, IT driven company (Some people will call it an Enterprise).
Oracle is all voodoo, you need a procedure for everything, do not think for yourself the instructions say run this command. Please call an Oracle DBA to start that database.. OR ELSE!!
Remember you need to get an Oracle[tm] DBA, not just any DBA to run this Enterprise class database.
Your manager will buy the "RedHat, Dell, Oracle Gold Configuration" becuase it's Enterprise ready, no need to get your hired expert to look at the best platform to run the Oracles.
(RHEL AS 2.1 (Redhat 6.2 in disguise), OCFS 1.0.9 (buggy as hell ending in several cluster reboots)) BUT ITS GOLD!!!
Don't worry just build ANOTHER Oracle cluster so we (DBA's) can test OCFS 1.0.13 for 3 months before rolling it into production. You know RedHat, Dell and Oracle have not told us that its a gold supported configuration yet, we need to test it.
Look at how Harold Hunt just got a job working on a more "Enterprise" suitable X server because cygwin and x.org isn't suited.
Obviously Enterprise class admins or soe packagers need gui installers and none of that complicated cygwin.dll stuff. Too hard.
Cygwin/X.org looks exactly like exceed but the users much prefer the pretty spash screen. Cygwin was $20,000 cheaper to implement too.
Saving $20k was not smart for the Enterprise so they got Exceed too because it was recommeneded by the Enterprise applicaion vendor. Funny the same application bugs were aparent.
I can't think of how many more talented coders we could have hired if we used MySQL to write our financial system instead of the managers getting on their knees to suck up the goodness that is the Oracle e-Business suite.
MySQL* all the way. Don't be an Enterprise.
%s/Enterprise/Idiot/g
* Actually I prefer postgres. It'll run all yer pl/sql stuff too. MySQL rocks also.
Who cares? Its not a real database.
You know why there database is faster?
- it does not have transactions
- it does not validate data being inserted or updated. Dates, for example, are not checked to see if the date is a valid date. It will glady accept '02/32/2004' for example.
It does other "shortcuts" to gain speed. Yes, years later programmers are puzzled why all their data is wrong.
PostgreSQL or Firebird is a real database.
.
However, as a professional programmer (hah. even my cousin's dog is a professional programmer these days.) I find this kind of quasi-implementation of perfectly good if vague and previously ill-implemented standards with the excuse of "code quality" and "implementation efficiency" reprehensible when the excuses speak more of the implementors' ability to manage their own code and to pay attention to the things that actually matter efficiency-wise, than real issues. No one is going to care whether your database does a "SELECT 1+1 FROM implicit_temporary" in a microsecond or one and a half. What people actually care about, and what they get angry about, are things like those listed on the MySQL Gotchas page.
And don't get me started on the "sorry, we don't support subselects or IN joins or EXISTS clauses and our LEFT JOINs behave in a deviant manner; perhaps you should do the join inside the application!" garbage.
Sorry to vent my spleen on an unsuspecting target like this. I'm mostly just frustrated with people who refuse to think things through before jumping headfirst into implementation, as evidenced by the longstanding MySQL policy with regard to transactions, atomicity and locking policy.
I don't think it would be out of the question at all to compare benchmarks of an Apple machine with a street price comparable to the Intel machine used. After all, if you're going to buy a machine to run MySQL on and you have budget XX, why wouldn't you consider a Mac if it turned out to be faster?
Breakfast served all day!
MySQL ships with the InnoDB database engine as a standard part. InnoDB will write to its log with every completed transaction, flushing that to the hardware. If you lose power, it'll reapply the transactions from that log automatically, without hassle, when the database server is restarted. The log writes are sequential so you can get both excellent write caching (into dirty database pages in RAM) and transaction durability (via those immediate flushes of the log to disk). InnoDB is also the database engine which offers transaction support, so if you want the normal transaction guarantees like durability, you're going to be using it anyway. This isn't a theoretical capability - I've had production Wikipedia servers go down with tens of thousaands of dirty database pages in RAM and come back up with all data, while I was asleep.
Alternatively, though it's still in alpha, there's the choice to use the Cluster engine to spread the load over many redundant servers via mirroring in the database storage engine. Very interesting technology for me, though still too early for Wikipedia to use.
For those with high read load or worries about single machine failure, replication is also standard and it's easy to set up a web server or two to do replication in the background to get the last bits of data saved before a disaster hit the master. On the Wikipedia technical to do list is a replicating slave in Paris, so the building falling down on the main site will still leave even very recent updates available.
The combination of InnoDB and replication makes it easy for me to sleep well. The one thing it doesn't yet do as a standard part of the package to complete the picture is automatic failover to the best slave if the master dies and stays dead. I think the failover bit is on the to do list for the 5.n series. Cluster does, though - one of the reasons why I'm watching it with interest.
None of this means PostreSQL is bad. Just different.
I think they only used lc_r on the 4.11 release test. For 5.3 they used the new KSE and the older LinuxThreads.
I did expect KSE to do better against LT, though. KSE has been sold as being lighter weight and faster than LT.
Jerry
http://www.syslog.org/
I recently picked up the official MySQL manuals, and they say InnoDB (the ACID-compliant storage) never does table locks because the rowlocks are so lightweight....which impressed me, since we use MS SQL at work and that *does* do tablelocks, if you hit enough of the table. It also said Slashdot has converted now to InnoDB.
There is a difference between the possibility and the reality of significant differences in whether the toolchain was compiled for a platform. Similarly there is a difference between theory and reality. However, there is no difference than a Gentoo-ricer and a anti-gentoo zealot.
ARGHH!! This is worse than the cliff hanger cowboy thrillers I saw every Saturday afternoon at the old State Theatre on the East Side of Waterloo, Iowa. I had to wait a week to find out how the hero survived going over the cliff. How long will I have to wait this time???