
MySQL 4 Declared Production-Ready 332
Simprini writes "After absolute ages of testing MySQL 4.0.x in various versions of BETA through GAMMA it looks like MySQL AB finally released MySQL 4.0.12 as ready for prime-time production use. I know my company has been waiting for a long time for this because our customers absolutely refused to use beta releases of this product. Query caching here we come."
Uh oh (Score:5, Funny)
MySQL 4.0.x in various versions of BETA through GAMMA
Uh oh.. I flat out refuse to use code that isn't ALPHA... well at least as an OS on my Windows machine.
Alpha Beta Gamma (Score:5, Funny)
beta through gamma? (Score:2)
now if it had gone through test releases beta through omikron...
Re:Uh oh (Score:4, Interesting)
Re:Uh oh (Score:3, Informative)
select a.cusip, a.description
from security_master a
where
a.cusip in (select b.cusip from new_issues b)
order by a.cusip;
When MySQL can do that simple contrived query I'll take it out of the toy box.
Excellent... (Score:2)
Now to start some benchmarking...
Not much to compete in... (Score:2)
MySQL, even with 4, still lacks numerous features found in Postgres. Looking at MySQL's site, it won't have most of these features until 5.1 comes out.
Someone brought this up in the last MySQL thread, but there really haven't been any *recent* MySQL vs. Postgres comparisons.
I'm excited for 4.0, we'll probably make our slave a 4.0 box today.
Re:Not much to compete in... (Score:3, Informative)
Perhaps you believed the benchmark that only the MySQL team has been able to come up with. Every other benchmark I've seen that simulated multiple users always showed Pg to be better even on very simple queries.
Beware benchmarks that show only one thread or from mysql's developers themselves.
Faster than PostreSQL? (Score:5, Interesting)
If the difference isn't significant then there is no reason to choose MySQL over PostreSQL for applications requiring high levels of data integrity. Especially when PostreSQL also brings you stored procedures, views and so on.
from the hardly-any-data-loss dept ? (Score:5, Funny)
Re:from the hardly-any-data-loss dept ? (Score:3, Informative)
Uh, postgres? (Score:4, Interesting)
Re:Uh, postgres? (Score:5, Informative)
http://www.mysql.com/doc/en/SEC458.html
Re:Uh, postgres? (Score:3, Informative)
Re:Uh, postgres? (Score:2, Informative)
I hope the MD5, SHA, etc. functions are default now... they seem to be absent from the 3.23.55 build that comes with the Debian distribution.
Re:Uh, postgres? (Score:5, Informative)
Re:Uh, postgres? (Score:2, Informative)
Just now? (Score:2, Informative)
Re:Just now? (Score:4, Informative)
--
Evan
Excellent. (Score:2, Funny)
Solaris 2.5.1 (Score:2)
Now if I could just get MySQL 4.Anything to compile and run correctly on Solaris 2.5.1..
Most attempts thus far have ended in failure of libraries to link correctly or binaries that segfault...
Re:Solaris 2.5.1 (Score:2)
Re:Solaris 2.5.1 (Score:2, Interesting)
This may of course not apply to your version of Solaris...but I can't make any qualified comments on this, really, as I have never even seen Solaris from up close.
Its Stable (Score:5, Informative)
Re:Its Stable (Score:3, Funny)
Re:Its Stable (Score:2)
Re:Its Stable (Score:3, Informative)
This is what I have for Slashdot:
query_cache_size = 100M
To be honest that number is overkill even for us. I find that tuning the Innodb pool size for more memory has better gain for memory used. Slashdot's is 1548 megs at the moment.
Simply powerful or powerfully simple? (Score:5, Informative)
What other features [mysql.com] might there be?
Re:Simply powerful or powerfully simple? (Score:4, Interesting)
What about integrity constraints, foreign keys, interval datatypes, full outer joins, subqueries, set operations, VIEWS for god's sake, and triggers? Too hard?
For cryin' out loud, half of these missing features put the "relational" in "relational database"!
Re:Simply powerful or powerfully simple? (Score:2)
Re:Simply powerful or powerfully simple? (Score:2, Interesting)
But of course it's probably just another thing mysqlers will claim that "90% of people would never use anyhow". Well, 100% of mysqler's, anyhow.
They don't know what they're missing.
Apparently 90% don't need those features.......yet (Score:5, Interesting)
For cryin' out loud, half of these missing features put the "relational" in "relational database"!
First of all, kudos to the MySQL team for atleast getting as far as they have. Just because I'm not fond of thier product, doesn't mean they don't deserve credit.
I've been banging my head a little on this one too trying to figure out why so many people are pushing MySQL and not something stable and complete like PostgreSQL? After all, PostgreSQL has triggers, stored-procedures, functions, referential integrity, and tons of other features to make your life easier. You may not need all of these features now, but can you honestly say your app won't expand and require advanced features?
Is it the MySQL marketing engine? Does PostgreSQL sound intimidating? Are there actually technical advantages that MySQL have over PostgreSQL? If so, what are they?
The most common argument I've heard in defense of MySQLs lack of basic features is: "It's good enough for 90% of the problems out there." However, everytime they implement a basic feature that every other RDBMS has had for decades (like UNION), people respond as if MySQL is getting close to be taken seriously.
Secondly, In my experience, I've found that 90% of the applications I've worked on end up using those advanced features sooner or later. Those features usually save a tremendous amount of time I would have otherwise had to spend writing code to make my database jump through hoops. In addition to saving time, there a lot of features which simply allow me to make my applications more useful or intuitive to the end user, which is the whole point.
Am I missing something here, or is the Emperor not wearing any clothes?
Re:Apparently 90% don't need those features....... (Score:5, Insightful)
Nope the speed thing is still an issue (Score:5, Informative)
PostgreSQL name change? (Score:3, Interesting)
Maybe PostgreSQL justs a name change and a new PR department. Many people don't even know how to pronounce PostgreSQL. Consider the name's awkward evolution: Ingres --> Postgres --> PostgreSQL. They've already got a decent logo (the blue elephant [postgresql.org]). Presumably, the elephant never forgets your data?
Looks like the PostgreSQL team is taking an active role to update their PR: A Call for PostgreSQL Case Study Participants [postgresql.org]
Re:Apparently 90% don't need those features....... (Score:2, Insightful)
Re:Apparently 90% don't need those features....... (Score:3, Interesting)
Re:Apparently 90% don't need those features....... (Score:5, Interesting)
We run postgres and we're doing our damndest to get rid of it. We have some databases that get 50-100% data turnover rate daily, making hourly vacuums essential to not having the Ever Expanding Database problem. Not to mention that vacuum doesn't clean up indexes, so you'll also have to re-index periodically if you don't want those to grow to thousands of times their optimal size.
I should probably say that such reindexes require full table locks, so you could get contention issues under heavy load when reindexing your database. Mysql gets by this by making indexes in a temporary space, and switching when the index is done. This means I can select from a table, with full benefit of an existing index, even while I change an index, or even redo the index. Not that I have to... mysql doesn't require vacuum or reindex to avoid continuous linear bloat.
So... we don't like having to babysit our database to get good performance out of it. We're willing to work around lack of foreign keys to avoid having to do full database import/exports on a weekly basis, and multiple hourly cron jobs to make sure we don't randomly fill our disks. Faster? Slower? Who cares. Postgres is just too annoying to use in production.
Re:Apparently 90% don't need those features....... (Score:3, Informative)
Vacuuming is just a side effect of MVCC -- the expired rows have to be kept around so that other open transactions can see the
Re:Apparently 90% don't need those features....... (Score:5, Funny)
Gimmie a break dude. I'm sick of hearing all this stuff about triggers, sub selects, and stored procedures. I can honestly say that no database really needs these things.
In my 6 months of professional development at a 3 man shop I think I'm perfectly well qualified to say that no RDBMS will ever need these futures. I can't possibly imagine a design so fubar that it would EVER have to rely on the RDBMS to enforce such rules. That's what application level code is for! Sheesh!
Well, maybe such things would be useful if you had more than one application pointing at the same database... or if you planned to maintain the DB's integrity over any length of time. But that kind of shit never happens in the real world. It's a made up story of Slashdot posts and database classes.
Given that text doesn't relay voice inflection very well: The above is sarcasim.
Re:Apparently 90% don't need those features....... (Score:3, Insightful)
FreeBSD back then had a better VM( still does), better tcp/ip stack( still does), better package management( still does except gentoo), better scsi support, raid card support, volume mana
Why "real DBAs" whine... (Score:3, Insightful)
MySQL - Fast, Well Supported, Good for Simplier Problems
PostgreSQL - Limited Support, Needs more Attention, Suited for Complex Problems
Why "real DBAs" whine
I think the problem is that many DBAs and developers have really come to rely on JOINS, stored-procedures, triggers, etc. I've been using these features very actively for the past 4 years and wondered what I did without them all these years.
In the past year alone, I've written almost 300 sto
Re:Simply powerful or powerfully simple? (Score:5, Funny)
Triggers? They are for people who like mysterious things to happen to their data.
Foreign Keys? They are for people who don't like to delete their data.
Interval Datatypes? They are for people who are iffy.
Full Outer Joins? They are for people who like lots of data.
Subqueries? They are for people who can't program simple loops.
Set operations? They are for people who can't relate.
shall I add???
Programming Languages They are for people who can't read machine code in hex.
(I realize you're kidding, but there are some people who might take you seriously)
Re:Simply powerful or powerfully simple? (Score:4, Informative)
from people
where person_id in (select person_id from slashdot_users)
This one can be rewritten to use a join instead (MySQL's excuse for a workaround). However, there's another concept of "correlated subquery" (google for it) that cannot be rewritten in SQL, and instead requires some degree of procedural manipulation to simulate.
MySQL Query (Score:2, Funny)
Is it worth the switch? (Score:3, Informative)
Re:Is it worth the switch? (Score:2, Informative)
We're using it in production since gamma. Our site delivers over 2.5 mln pageviews per day. Database size is about 25GB.
Major differences compared to 3.x:
- Row level locking - no more glitches on big updates
- Instant crash recovery thanks to InnoDB
- Hot backup ($400)
- Query cache:
Queries Avg/Sec: 388.45
Cache Hits Avg/Sec: 108.04 Ratio: 27.81%
Slash (Score:3, Interesting)
Having had experience with Oracle, MySQL is still lacking a lot of the plush features that Oracle has. But, having run it for about 3+ years on my own slash type sites, the thing is ROCK solid. The feature set in MySQL increases with every version.
Now, look at the costs. Oracle - an Arm, leg, and your children. MySQL - Free. Gee, that is a no brainer.....
Re:Slash (Score:3, Informative)
SELECT version FROM mysql WHERE ready='true'; (Score:5, Funny)
VIEWS! I said VIEWS, son! (Score:4, Insightful)
Re:VIEWS! I said VIEWS, son! (Score:4, Informative)
It's easy to complain. It's easy to preach. I'd rather see you pull out your (or your bosses') wallet.
As for myself, while I'd love the convenience of views, I'm not constrained by legacy code and I don't mind the mild programming burden their absence puts on me.
paying for features? (Score:2)
Re:VIEWS! I said VIEWS, son! (Score:5, Informative)
They can really only do two things: hide columns for security reasons and simplify queries by hiding part of that query.
In general, the first applcation is usually better served by planning, data seperation, and implementing a good security policy. There are times when views are a legitimate solution to problems of this type, and a database is definately better for supporting them in such cases.
The second case, however, is commonly misunderstood by developers, who think a view is some magic incarnation of a snapshot. I frequently see views based on views based upon views, frequently each of which is a poorly-optimized sql statement. The developers seem surprised that performance is abysmal in such cases. A view is a just a convenience, a means to "store" a query, and run that query each time the view is accessed, nothing more.
Since I spend a fair bit of time trying to fix performance problems reusulting from the many myths and rumors about views and their ubiquitous misapplication, I'm not sure that I would consider their omission a bad thing -- it might teach developers better coding habits. . .
Re:VIEWS! I said VIEWS, son! (Score:2)
Waiting for maturity (Score:5, Interesting)
We have initially created Komplete - http://komplete.interakt.ro/ [interakt.ro] only for PostgreSQL, and our users attitude indicated us that MySQL should have been supported. So we are releasing now the Komplete Lite version (GPL), for MySQL - but it's a real pain to simulate subselects, real unions (emulated with temporary tables now), cascaded deletes and stored procedures.
The speed is quite similar, but PostgreSQL is still much better for complex web applications.
Re:Waiting for maturity (Score:3, Interesting)
Waiting for PHP users to wisen up (Score:2, Informative)
I've written multiple CMS-like applications, and seen several commercial systems which do fine without the features you listed...the key thing is that they are written in Java or even Perl so they can figure things out on their own.
Look in the mirror before throwing stones.
Re:Waiting for PHP users to wisen up (Score:2)
Hmm, funny. For one you (rightly, IMO) criticize MySQL for lacking some nice features of "real" SQL servers, but OTOH you product is written in something as cumbersome as php.
Use something transaction aware like zope (I know there are others, but I use zope), and get out of the ugly $dbh->commit(), $dbh->rollback() business. It's total nonsense to b
Re:Waiting for maturity (Score:5, Insightful)
Of course, if properly implemented, stored procedures don't slow down the database at all. In fact, stored procedures could easily increase your performance. Proper implementation should include compiling the sql code into something that's more efficient internally for the server. Also, you'll no longer be sending free-form query text to the server, so you're both safer (you can be more strict with what you allow in your strings) and faster (fewer trips to the server and less data sent to the server each time). Not only that, but sprocs let you keep your SQL code separate from your client code, and can allow you to make changes to your business logic without having to touch your client code at all. In short, sprocs are much more useful than just being used for triggers, but unfortunately many MySQLers don't realize what they're missing.
Woho! (Score:5, Interesting)
What I've heard from MySQL officials in person is that MySQL 5.0 is set to be released late Q4 this year. Then stored procedures, sub selects (4.1) and constraints should be ready for primetime, then we talk real heavy enterprise applications. Hope they keep the schedule! =)
Well, Monty and the rest, Good Job! Keep it up!
Uhm, PostgreSQL (Score:2, Insightful)
Re:Uhm, PostgreSQL (Score:3, Insightful)
MySQL is easier to install on a Windows machine is my guess. I know thats the reason my group went with mysql on a project last year. We could not require that our customer installed a Linux (or similar) server.
PostgreSQL installs fine on Windows... (Score:2)
Re:Uhm, PostgreSQL (Score:2, Insightful)
Maybe i'm dumb but dumb people need databases too
Re:Woho! (Score:3, Insightful)
Triggers? (Score:4, Interesting)
Replication -- Pass
Triggers -- FAIL
SO close.....
Re:Triggers? (Score:2)
Re:Triggers? (Score:4, Informative)
So whichever happens first -- postgres gets _good_ replication, or mysql gets stored procedures/triggers -- will probably determine which one leaps ahead of the other in terms of wide-spread adoption, especially as companies migrate from costly proprietary systems.
Re:Triggers? (Score:2)
But yeah, not supported, not official, and definitely not out of the box.
Re:Triggers? (Score:5, Insightful)
Re:Triggers? (Score:2, Interesting)
The lack of foreign keys, triggers and stored procedures (among other things) are serious problems with mySQL, regardless of its capabilities as a low to medium-range/load database, and regardless of statements by NewsForge to the tune of "mySQL is ready to overtake SQL Server and Oracle
Re:Triggers? (Score:5, Interesting)
The point of triggers is not to handle every possible database interaction, but to maintain your data integrity and business rules, as far as possible, at the database level.
This is important so that people writing client/web applications don't accidentally weaken the data integrity. Database users (including applications) should never be able to accidentally or maliciously break things. Only the DBA gets to do that. ;-)
If you find your triggers blowing up, it's usually because the database is poorly designed.
If you started with something good and the boss is always changing the business rules on you and forcing you to use application code where you should use triggers, that's a tough situation. But if it's your policy, you would do well to learn a bit more about databases.
BTW, Postgres can do triggers in Perl, for what it's worth.
Multi-table deletes (Score:5, Interesting)
IMO, the very best new feature of MySQL 4 is multi-table deletes. No more having to query/for each in/delete type constructs across many-to-many relationship tables.
I've been using MySQL 4.0.5/PHP4 on RH8.0 without problems to date. Granted, only on a non-critical intranet for our small (70) office, but still, no problems.
Re:Multi-table deletes (Score:3, Interesting)
> across many-to-many relationship tables.
Re:ON DELETE CASCADE (Score:2, Funny)
welcome to real *relational* databases
Easy there, you'll scare the puppy.
File mirror on Freenet (Score:3, Informative)
sub selects (Score:5, Interesting)
Re:sub selects (Score:5, Informative)
mysql-max 3.23 v. mysql 4.0 (Score:2)
Yes! (Score:5, Informative)
I've seen some posts here about instability and data loss, but I assume this is from the Postgres 'but WE have the better database - everybody look over here' crowd. I've done some pretty stupid things to our MySQL box - like running Imagemagick's 'convert' on over 200MB of images and running the box out of virtual memory, which made the kernel start killing processes - starting with MySQL. When it came back up - no data loss at all. InnoDB recovers VERY well from this sort of thing.
MySQL also handles multiple MS Access clients far better than MS SQL Server. We have over 10 tables now which basically can't be accessed if placed on SQL Server because of the way MS Access grabs record locks willy nilly. If I place the tables in MySQL as MyISAM tables, I get a little bit (3 or 4 months) use out of them. Then record locking issues start up again. So then I put them in MySQL's InnoDB tables with row-level locking, and I've never had any further issues with those tables. Quite impressive.
And as well as being 100% stable for me, MySQL is so incredibly fast... When we convert standard Acccess queries to pass-through queries we get up to 15x speed increases. We actually use pass-through queries as substitues for views. Works nicely.
The tech support it great. When I was having type-conversion issues with our pass-through queries I got responses from the developers on the same day - often in the same hour. And we haven't paid for any support - just downloaded the source.
The lead-up to MySQL-4.0.x being stable has felt like the lead up to Mozilla-1.0; everyone using it felt it was ready, but the developers insisted on thoroughly testing everything to make sure they could stand by their decision to declare it stable.
Congrats to the MySQL team. I will be compiling 4.0.12 when I get to work...
Why not PostgreSQL? (Score:2, Interesting)
Re:Why not PostgreSQL? (Score:4, Insightful)
A few projects NEED the advanced features PostgreSQL has. Most projects COULD USE the advanced features PostgreSQL has. If you have rockstar programmers who know the difference between saving keystrokes and saving cpu time, and know that shifting logic load to your DB server is generally a BAD thing, you're going to find that you can almost always do things faster (often much faster) in MySQL. Stability is a tough one as its so subjective its hard to compare. I know we use dozens of MySQL servers collectively running tens of thousands of queries per second 24/7 and we haven't had a major issue or lost any data in years.
If performance is key and you aren't into using fancy stuff just because its fancy, you'll want MySQL. If you don't really care about performance, you might like the additional features PostgreSQL offers.
Re:Why not PostgreSQL? (Score:2)
I hope your "rockstar" programmers are more discriminating in deciding what tasks are best offloaded to clients. If a task requires manipulation of a large amount of data to produce a small result set, it's faster (for the end users
Re:Why not PostgreSQL? (Score:4, Interesting)
While on the other hand, permissions for PostgreSQL are scattered everywhere. Half of it is config files for who gets allowed in and what type of authentication to what tables, triggers, etc, some are in special PostgreSQL tables that aren't immediately obvious even how to access if you wanted to edit them directly. It's all very confusing.
PostgreSQL is nice, they just need to go that extra mile to make sure user permissions are easy to understand, etc. Do other little things here and there to make the learning curve is not quite as steep.
Intuitive applications are the ones that succeed.
Re:Why not PostgreSQL? (Score:2, Insightful)
When I went looking for Postgress for Windows all I could find was instructions that involve cygwin.
Re:Why not PostgreSQL? (Score:2)
this whole story is a groaner for me because I just installed mysql yesyterday. they could have mentioned something...
Project Stats (Score:4, Informative)
Number of listed NYSE symbols: ~3200
Number of listed NASDAQ symbols: ~4000
Number of total stock quotes from 1980 to today, each including open, close, high, low, and volume: 6.2 Million
Time to fully index those 6.2M records on SQL Server: 0:42:33
Time to fully index those 6.2M records on MySQL: 2:12:27
And using Python...
SQL Server time to pull all quotes within a given date range (no indices): 1min, 28sec.
MySQL time to pull all quotes within a given date range (no indices): 7min, 18sec.
Has SQL Server used implicit indices I am not aware of?
Re:Project Stats (Score:2, Interesting)
Same goes for unindexed select: avoid it, and give us indexed benchmarks.
zm
just curious (Score:2)
Increased FULLTEXT support (Score:2, Interesting)
including boolean searches. Also, additional FULLTEXT Configure [mysql.com] options.
See also 4.1 [mysql.com]
MySQL 4 is good (Score:5, Interesting)
It has actually always been faster and more solid than the 3.23.x series.
I only had some small issues with InnoDB (the same issues were in 3.23.x as well). But the InnoDB maintainer, Heiki Turri, is someone that really cares about bug reports. All reported bugs were immediately fixed.
The query cache is efficient, and the fulltext indexing was greatly enhanced (if only it worked with InnoDB tables...)
I've not installed any 3.23.x version for a while, and I'll never go back.
Probably a lot of system administrators will wait. They will read that MySQL AB blessed 4.x as production-ready, but they will wait, as if it was an 1.0 version that still needs some maturity.
It's not. MySQL 4.x has already received a lot of testing, and it is already being used on large production sites. Just read the MySQL mailing-lists.
Upgrading from MySQL 3.x is also easy. You only need to run a little script to upgrade the grant tables (and even if you don't, everything will work). No need to export/reimport the databases. So upgrading is straight forward.
Just how much faster than Postgresql is it really? (Score:5, Informative)
I'd love to use Postgresql, but with mysql adding all these features plus being so much faster, it's hard to move that way, as the fancy features are things I'd use but don't really need. (Previously foreign keys were a reason for me to switch)
Or is there a way to make postgresql keep up to mysql so I can justify using it and right away get access to those cool things like views, triggers, functions, etc ?
Maybe this will get as much acceptance as Apache2! (Score:2)
What the MySQLer's dont understand (Score:5, Insightful)
Postgresql has the *intellegence* built in. You can write all sorts of georgous functions to do stuff, especially if, like us, your shop uses several languages... PHP, Perl, Java, Python, C++, etc. Why replicate your data related logic in every client language?
Transaction support and file/record locking are the least of your problems. If you do serious database stuff, at some point, you are *going* to want VIEWS, TRIGGERS, RULES, and STORED PROCEDURES (functions). Having this functionality in the database engine, instead of in your code makes a heck of a lot of difference when the time comes to scale.
Coming from a MySQL backgroud in a multi-language shop, we clearly saw the limitations, and decided to switch the entire database platform over to Postgresql a year ago. We haven't looked back since.
Also, I dont think the developers will be able to make MySQL into an *ACTIVE* database anytime soon, simply because of the current architecture of the system as it is now. They are going to need a heck of a lot of system tables and new code, to accomplish even the simplest stored procedure functionality.
I can see VIEWS being a quick hack, but going beyond that with MySQL as it is, will be quite a stretch, and I don't believe they will finish those features until perhaps the end of next year, as it will require almost a complete rewrite of the base engine IMHO.
What the PostgreSQLer's dont understand (Score:3, Insightful)
However, having coded in C both for MySQL and PostgreSQL, I have to say that the MySQL docs are clearly better, and that their client library is more feature-rich than PostgrSQL. The MySQL database may lack features, but on the client side it is much easier to get simple things running.
We are currently playing with MySQL... (Score:3, Interesting)
Any gurus (or detractors) want to list the downsides?
- no subqueries yet. Ok. Not the end of the world
- are multi-column primary keys still a performance dog?
- how is stability? That's probably what you hear most about w/regards to MySQL
- triggers and stored procs; back-end-logic==bad IMHO
I just ordered Mastering MySQL 4 to speed the jump between Oracle and MySQL. Anyone used that book?
I'd be really interested in hearing some frank and honest appraisals.
Re:We are currently playing with MySQL... (Score:3, Informative)
Re:3.2x to 4.0 (Score:3, Informative)
Re:Why is the Windows download 20 megabytes when (Score:3, Flamebait)