


Major Changes To MySQL Coming Soon 301
Meltr writes: "This ZDNET article details some of the coming changes to the MySQL database server. In 4.0, to be released in mid-October: 'support for the Unicode character set, the SSL (Secure Sockets Layer) protocol, embedded database links and multitable updates' and in 4.1, to be released in December: 'nested queries and stored procedures'."
FULLTEXT search (Score:3, Informative)
Re:FULLTEXT search (Score:2)
Reporting Tools (Score:2, Insightful)
MySQL other database comparison (Score:4, Informative)
You can have a look to these comparison between Mysql-PostgreSQL and other open source databases [geocities.com].
Stored Procedures! Yay (Score:2, Interesting)
Re:Stored Procedures! Yay (Score:2)
there's no way we can go back now either...we're an IBM strategic partner (but the upside of that is we get nice hardware to play with for free...where's the Regatta?)
You should have gone to PostgreSQL (Score:2, Informative)
Re:You should have gone to PostgreSQL (Score:2)
Re:You should have gone to PostgreSQL (Score:2)
Yup, there's no doubt about it.A major sticking point in the adoption of truly enterprise-wide free software like PostgreSQL (or mySQL) is the fact that there is *any* risk factor involved in the support arrangements. IBM, like it or not, is just not going to go away. I don't think that, say, Red Hat will go away either, but their support for PostgreSQL in its incarnation as the official Red Hat Database system is more questionable. After all, Great Bridge was (alas) unable to stay in business by doing PostgreSQL development and support contracts.
It is a wonderful thing that Open Source products do provide you with the source, but in situations where you have a major league database system that controls all your customer accounts, and you have a problem that has to get solved *today*...this isn't really a niche that is well covered yet for all Open Source products.
Re:You should have gone to PostgreSQL (Score:2)
Also, if linux is super-important to you, be aware that DB2 on linux isn't up to production quality yet (unless you throw massive amounts of hardware at it, and even then it's marginal). It appears IBM is still learning the linux ropes. Support for DB2 on linux also isn't as good as on other OS's, from what I've heard. (It's certainly not as good as on AIX, which is what we now run DB2 on, but that's no surprise
Also, while I haven't looked at PostgresSQL, they'd be very hard pressed to do a worse job on documentation than DB2.
Decent comparison of mysql and pgsql (Score:5, Interesting)
What I'd like to see is a profound comparison of mysql and postgresql. I'm a happy user of both, and I currently have pgsql serving a 8 million pageviews/month site, and handling load gracefully. AFAICare, pgsql is at least fast enough. I also never had any reliability/data loss problems with mysql, despite heavy concurrent access. AFAICare, mysql is robust enough. I'd really like to find out what are the core differences in both designs to get a grasp of how fast they may evolve.
Re:Decent comparison of mysql and pgsql (Score:3, Informative)
Re:Decent comparison of mysql and pgsql (Score:2, Informative)
-http://www.mysql.com/doc/M/y/MySQL-PostgreSQL_fe
-http://www.geocities.com/mailsoftware42/db/
-http://www.mmlabx.ua.es/mysql-postgres.html (Spanish)
-http://openacs.org/philosophy/why-not-mysql.html
-http://phd.pp.ru/Software/SQL/PostgreSQL-vs-MySQ
-http://www.mysql.com/information/crash-me.php
Re:Decent comparison of mysql and pgsql (Score:2, Informative)
Um, transactions anyone? (Score:2, Informative)
Go ahead, flame away, I can take it.
Re:Um, transactions anyone? (Score:2, Insightful)
With the introduction of the Berkely DB table type, MySQL gained transactional support. It'd be nice to have native transactions for all table types, but at least this is better than nothing at all. Of course, if you want to complain about useful-but-missing features, complain about decent stored procedure support (coming, but the keyword here is "decent" -- if they only support one language, like perl, then it becomes useless), foreign keys, subselects (apparently coming in 4.1), and triggers. Of course, the way the MySQL project seems to be going, they're going to end up reinventing the wheel originally designed by Oracle 20+ years ago, while steadfastly denying that the missing functionality is useful up until the point where they announce that they'll be adding said functionality.
Re:Um, transactions anyone? (Score:3, Informative)
Exactly! Take a look at http://www.mysql.com/doc/B/r/Broken_Foreign_KEY.ht ml [mysql.com] and see why they don't have foreign key support yet. They simply say it's scheduled for inclusion in the "near future" (I'm not sure what their definition of "near" is, but that page has been up for months now, and foreign key support still isn't slated for 4.0 or 4.1). Don't hold your breath, and either switch to a real rdbms (a la pgsql), or continue to work around mysql's deficiencies on an app-by-app basis.
Foreign keys (Score:2, Informative)
Re:Foreign keys (Score:2)
BTW : Slashdot runs on InnoDB tables.
Re:Foreign keys (Score:3, Interesting)
There is no strong motivation to bring mysql's featureset up to the accepted standards for a sql server when we can all just run postgresql and have those features now, in a more mature and well-tested form.
I'm constantly puzzled by the enthusiasm and support shown for mysql and simultaneous aversion to postgresql because both attitudes are clearly not based on technical merit. And, to make matters even more confounding, mysql's popular support and user community rallied behind it long before it was actually capital-F "Free" in the religious sense. So, we can't even settle on mysql's popularity being dogmatic which would be an understandable reason.
I haven't seen anyone in this thread complain that mysql lacks features. I'm just seeing people wondering why we should be motivated to use a deficient product when better alternatives exist.
Re:Foreign keys (Score:2)
Re:Foreign keys (Score:2)
You're missing the point. The start of this thread was puzzlement over why, exactly, mysql is so popular in this community when more complete and more robust alternatives exist (like postgresql).
Speed. For a database with a lot of reads and very little writes, mysql will beat postgres in speed. That's it.
I use both. I use mysql for some of my webprojects precisely for speed, but i use postgres for my non-web projects, where the robustness and particularly transactions and stored procedures, are necessary, and pure speed is not an issue. I (obviously) think that this is really the best to go, use each database where it's best fit.
I don't know if it's a good thing that mysql is adding all these new features, while it is good that they're providing competition for postgres in this non-web market, i hope that they can either keep up the speed (as that is more important for certain web-applications) while adding these new features, or by forking the codebase such that I can choose between speed and robustness.
Re:Foreign keys (Score:2)
Re:Um, transactions anyone? (Score:2, Informative)
For other table types, we will add full foreign key support for 4.1.
People that find cascaded delete very useful, will proably also like the new multi-table delete feature we arlready have in MySQL 4.0
Regards,
Monty
Why MySQL ? (Score:4, Insightful)
It supports almost none of the sql features I need. The solution to my needs(which includes free/opensource) is PostgreSQL,
which do supports the features i require(subqueries, locking, stored procedures,views,triggers,other _real_ nice features..).
One point that often comes up is that mysql is very fast, and it is fast, but atleast for my projects only silghtly faster than postgresql(2-4%),
and in many special cases posgresql is way faster.
Also the point of mysql beeing very fast disappears if you use the locking features of mysql, BDB/Innodb tables.
For me, its postgres over mysql anytime.
Re:Why MySQL ? (Score:5, Insightful)
Most small projects does not need transactions, subqueries or locking. And to really take advantages of such features you need to have some good understanding of databases.
With mySQL you can actually make fearly decent, fearly fast and fearly stable application without using hours trying to design things optimal, (and actually without not really understanding what you are doing.)
If you worry about +2-4 percent performance, how to handle peeks of hundreds of hits a second... then you have several good databases to choose from.
If you should store a few thousand posts, and are hoping for a few hundred hits a day, and your web-application had deadline yesterday, and you are aout to start developing (90% of the web-application of today).... mySQL is a killer!
(You can use it for other things as well. And it does scale fairly well (so Im told)... but then you should consider several other good databases..like PostreSQL)
Re:Why MySQL ? (Score:3, Insightful)
Re:Why MySQL ? (Score:2)
Phillip.
Re:Why MySQL ? (Score:2)
Re:Why MySQL ? (Score:2, Insightful)
Cough, cough. It depends. This by far is not an accurate statement without lots of qualifiers. To make it so, you'd need to quantify many of your project's environmental conditions. I'm assuming all of your projects are 100% readonly.
Because it does the job.
The same way MS Access "does the job", only, the Jet database is more advanced. Simply put, if you wouldn't use a Jet Database for your project, MySQL should not be used either. I'm serious. Any project you start and need to select a database, ask your self if you'd use a JetDB here. If the answer is, "no", then walk right on past MySQL too.
Becasue it is popular and well supported by the community. Because it is "out there", people see others using mysql and end up using the same.
That's true. I think if you look around, you'll find, to a slightly lesser degree, PostgreSQL is "out there" and being used by real live people too. There are books for it too and the community is pretty strong.
I for one like MySQL. I dont need subqueries for a simple website, and I sure as hell don't need transactions for it.
I always get confused when I hear people say this. If this is truely the case then you'd almost always better off NOT using any type of relational database at all. There's no point. Subqueries are faster, help ensure the validity of the result sets that you work with (dataset could change between the two queries you issue trying to work around this issue on MySQL). And, if you don't need transactions, locking, ref. integ. and your are only updating a single row in a single table or reading a single row from a single table, why are you using a relational database to begin with? It's much too slow compared to your options here.
Mysql is ace (Score:3, Interesting)
1. Microsoft Access is more functional, easier to use and deploy than MySQL.
More functional? I could explain theoretically why that statement is utterly ludicrous, but I'll merley give a practical example:
A big British financial organisation maintained internally, its publicly available financial data in Access. I wrote a system for them, using GNU/Linux, MySQL and mod_perl, which allowed web visitors do perform complex searches on this data. The internally-maintained big Access dataset was imported into the MySQL datbase via an import system I wrote for them. Now here's the interesting thing - they began to realise that the web-based system, even over an ISDN line, returned data substantially more quickly and reliably than did Access, even after they upgraded to the (ACID compliant) SQL server! Indeed, the latter constantly corrupted their data, would get into all sorts of unremovable row-locks and god knows what else in its attempt to remain beautifully ACIDic. Eventually, they ditched it and now use my system (with a content management client they've had written which accesses MySQL via myODBC). They've been using this for just under three years now, and there has not been, cumulatively, even one minute's downtime.
Re:Mysql is ace (Score:2, Funny)
Re:Mysql is ace (Score:2, Interesting)
We are a windows shop and he does everything in his power to push linux over windows always saying snide comments. He doesn't even take the time to learn how to use it properly. Anything will be better if you don't give it a chance. But if its your job to administer the servers. Shouldn't you at least do a good job? If I take money from someone to do a job I owe it to that person to give them good service. Is this different in the Open Source crowd?
Re:Mysql is ace (Score:2)
Re:This is a lie. (Score:3, Insightful)
Nobody stores critical data in Access.
Ahh, the naivete of the young...
People frequently do insane things like storing business-breaking data in access. And they absolutely refuse to listen to the $200 per hour consultant that tells them they're doing a very risky thing.
The best opensource DBMS/R is here ... (Score:5, Insightful)
Ok, it's a nice database but it lacks from major steps :
- fast and decent transactions
- procedures
- triggers
- views
Why do not people user alternative database such as PostgreSQL or Interbase ?
For instance insterbase and its sister projects (IB Phoenix : http://www.ibphoenix.org/ , FireBird: http://firebird.sourceforge.net ,
The basic specs of interbase are :
- full SQL92 compliant (entry level)
- not fully SQL99 compliant
For instance you have :
- fast transactions
- super fast blob/clob feature
- procedure (full SQL92 here!!!)
- trigger
- strucutred data types
- JDBC2.0 driver (type 4 JDBC3.0 is underway
- cool tools (admin, major crash fix and recovery stuffs
- easy data deployment (thru
Under linux there are 2 architecture, the classical server and the super server (cf the docs).
There are also cool and nice free GUI admin tools such as IBAccess:
http://sourceforge.net/projects/ibaccess/
All these stuffs are opensourced and free (as in beer) !
No more hesitation
Re:The best opensource DBMS/R is here ... (Score:5, Insightful)
- It's easy to run.
I don't have to do much (if any) maintenance and management - I don't need to check if redo logs are too small, don't need to check for extents growing out of control etc.
- It's fast.
For my application - with simple inserts and deletes, MySQL is really quick. That saves me money - I can get away with a single processor Linux box for my database server, rather than something much more expensive.
- I don't need the features of a larger database.
I'm using MySQL to store and retrive information - basically a distributed file system. I don't need clever locking, transactions, views, foreign keys, triggers, stored procedures. On the applications I do need those features, I use Oracle.
- It's cheap
I looked at PostgreSQL, but it was going to take me a while to figure out how to get it set up - I find MySQL very easy to install and get running. Oracle was going to be very expensive - and it's not that easy to install and get running properly.
When you add in the costs of installation, learning how the software behaves, and the management time in keeping the software running, MySQL (for me) came out as the most cost effective option.
Colin.
Re:The best opensource DBMS/R is here ... (Score:2, Insightful)
It's very easy, a piece of cake. So you don't
need the features of postgresql. Does it hurt to
have them on hand if you need them in the future?
Re:The best opensource DBMS/R is here ... (Score:2)
I had zero RDBMS admin experience, but managed to compile PostgreSQL 7.1.3 from source and install it. It was dead simple. Maybe things have improved?
One thing I did notice though, is that by default it doesn't accept connections from the outside world. I think this is a good default, but getting it to accept connections was harder than the rest of the setup. The PostgreSQL web site has a nice online book that explained everything; I would've been lost without it.
My hassles have all come _after_ PostgreSQL is set up. Mainly the difficulty in altering live tables. You can add columns with whatever constraints you like, but I have yet to figure out how to add foreign key constraints to existing columns. At least foreign key constraints are supported at all. :) But even simple things like removing a column are a pain in the but. The recommended way is "select into" to recreate the table with only the desired columns. I don't know if the new table picks up the constraints from the old table though.
I've also had problems performing table modifications when a daemon process held a connection to the database. The process had completed its queries and was sleeping, but I could not make table alterations until I killed it. Not a biggie... I've since modified the process to completely disconnect before sleeping.
PostgreSQL's locking seems to be better than MS SQL (version 7 I think it was; the only other RDBMS I have any experience with). A couple of times I've had to do a table-wide select in one db handle and a bunch of single-row updates in another. PostgreSQL handles this just fine. MS SQL tended to run for a while then deadlock, presumably when the row being updated was on the same page as an upcoming row in the select statement. MS SQL 2000 may be better but I haven't tried it.
Re:The best opensource DBMS/R is here ... (Score:2)
It doesn't get any easier than that.
PostgreSQL is *simple* to run and *simple* to administer. I've not used MySQL so can't directly compare, but the effort required to keep a PostgreSQL server running is so close to zero that MySQL can't possibly be significantly easier to administer.
I'm not knocking MySQL in this comparision, just wondering how the heck someone who is competent to administer Oracle can describe PostgreSQL as being anything other than trivial to install and administer.
Re:The best opensource DBMS/R is here ... (Score:2)
I know this isn't true, at least I suspect it is not from the content of your other posts. But I think the most cracked-out zealotry for MySQL comes largely from people for whom MySQL has been their only database -- script kiddies and beginning Perl/CGI peons in start-ups that have MySQL as default from their hosting provider or somesuch. Most of them don't even know what most database terms mean, let alone can derive a coherent value statement from them. People scream loudest when they are threatened by obsolesence.
Oracle and MySQL? Man, that's a SMALL toolkit. (Score:2)
Might I suggest some additions:
These are all really great tools; why leave them out? I like Oracle too, but $10k per processor is pretty steep. Hey, it's big and slow, but at least it's expensive!
Re:The best opensource DBMS/R is here ... (Score:3, Insightful)
Ok, it's a nice database but it lacks from major steps :
- fast and decent transactions
- procedures
- triggers
- views
First of all MySQL does has robust transactions. InnoDB's table type really rocks. Probably it is not very stable yet (there was found some problems with blobs some time ago) but it becomes better and better.
As for procedures and triggers and all other simular stuff. I wonder if it is really important to have it. I've seen some projects with heavy usage of procedures, triggers and other stuff. All busness logic of applications was implemented by them. It was very unmaintanable. IMHO more powerfull approach is three-tear architecture where middle layer (outside database) implements all busness logic itself.
IMHO procedures are often overused. Probably they are required sometimes but only sometimes. If you think you need them than rethink you design. Maybe all logic you are going to implement with them should be implemented in middle layer?
Re:The best opensource DBMS/R is here ... (Score:2)
Re:The best opensource DBMS/R is here ... (Score:4, Funny)
Ah, these freudian slips...
Re:The best opensource DBMS/R is here ... (Score:2)
Do I have the option to load in an alternative? Or should I take the time and energy it would take to do that to learn and understand the limitations of mySQL.
Re:The best opensource DBMS/R is here ... (Score:3, Interesting)
My company is currently trying to decide between MySQL and PostgreSQL, with the latter being the likely choose.
We're currently using Interbase, and I have to say that it's the biggest pile of fetid horror I've ever had the displeasure of having to maintain. Why?
The only reason that we're using the much-despised database server is that our rather largish apps are written against it, and it will take a bit of effort to change. Also, given the lack of the SQL dump utility (other than the hack job I put together), getting information from Interbase to anything else is non-trivial.
It may be good in theory, and I'm sure that some people like it. For us, however, Interbase is completely undependable and just barely usable for routine tasks.
Which front-end are you using for your MySQL-PgSQL (Score:2, Informative)
I am interesting from hearing about your experience.
I have tested:
- MS Access through MyODBC
- StarOfficce through MyODBC or UnixODBC (it is missing native support connection to MySQL but it is in StarOffice TODO list, maybe in forthcoming StarOffice 6.0?
- Rekall [thekompany.com]: it is still in Beta but seems really awesome
Do you know any other alternative which one it is your prefered? i would like hearing about you
Re:Which front-end are you using for your MySQL-Pg (Score:3, Informative)
phppgadmin [sourceforge.net]
Re:Which front-end are you using for your MySQL-Pg (Score:2)
As far as user front ends go -- just write everything in PHP. Look at the phpMyAdmin code if you want some ideas; they don't mind! Anyone with a decent amount of Web development and general programming knowledge can whip up a good-looking, functional PHP-based Web interface for a MySQL database in a very short time.
Re:Which front-end are you using for your MySQL-Pg (Score:2)
Now I generally use PHPMyAdmin [phpwizard.net] to do it through the web.
DBTools for Windows (Score:2)
This is the tool I recommend to people coming from MSAccess. I often use it when creating tables because I can never remember the syntax for doing auto-increment fields...
It will take you about 5-10 minutes to figure out how it all works and it doesn't insult the intelligence of the command-line crowd.
Hope this is of some use to somebody...
Cheers,
Jim in Tokyo
great to see progress! (Score:4, Insightful)
Re:great to see progress! (Score:2, Informative)
Re:great to see progress! (Score:2, Informative)
What's the best transactionnal backend? (Score:2)
But what's the best MySQL type of (transaction-enabled) tables :
Or something else, new to MySQL 4?
Anyone has experience or benchmarks with these different types of tables?
Why people use MySQL (Score:5, Insightful)
1. Someone needs a small easy to install database quick.
2. Sysadmin knows PostGres is superior but also knows that MySQL is dead easy to set-up quickly. He has set up MySQL before since someone told him how easy it was. He uses that.
3. People are so impressed in the organization that he got the thing up quickly they start suggesting MySQL for larger projects where it falls flat.
4. The organization gets turned off to Open-Source databases and chooses Oracle or DB2 instead totally bypassing PostGres which is sad.
In the end PostGres gets completely bypassed. Lots of people cut their teeth on MySQL so when someone needs a small database set up really quick they choose it. If more people used PostGres initially I think they would never look back. However, I understand immediately why MySQL is used so often.
Put up or shut up. (Score:2)
With MySQL its:
I spent a few hours one weekend trying to perform these equivalent operations with pgsql, etc. Granted I work with MySQL every day, but I wanted to try out PostgreSQL and see how it compares. It took me forever to find out that I needed to 'su' to user postgres in order to connect to the freaking database! Grr.
I'm willing to try, but somebody needs to point me to the right parts of some manual, FAQ, or HOWTO ... because dammit if I didn't actually go and do just what I said I would do above to make sure that it worked, and now I have an installation of MySQL running in less than 5 minutes.
--Robert
Re:Put up or shut up. (Score:2)
I'm not sure I understand. Why should a relational database -- a hugely complex and complicated program that is used to do complex and complicated things, in an environment that can be set up into hundreds of different configurations -- be easy to install?
When I make the decision to use something other than a flat-file and go with a relational database, I usually have a larger window than 5 minutes to setup, install, make structural and architectural decisions. The difference between 5 minutes and a day is irrelevant when you're talking about a development time of weeks or months.
I've never used MySQL. I've found that anything that I don't need transactions and stored procedures for, I can accomplish quite well with simple flat files.
Re:Put up or shut up. (Score:2)
root@host# su - postgres
postgred@host$ createuser web
[create new databases?] [hit no]
[add new users] [hit no]
postgres@host$ createdb webdata
postgres@host$ psql
[add the db structure interactively or read it in from a file, see the man page for psql]
[use GRANT to selectively give 'web' and whoever else privledges on 'webdata' or the structures therein. this is stone standard sql, of course.]
postgres@host$ logout
then use this for your PHP connection string, roughly speaking:
'localhost:5432:webdata','web','' (no passwd)
the 5432 is the default port it runs on in tcp/ip mode. which is iirc the default in most cases.
if you wanted to give the 'web' user a password that isn't hard to do but the particulars have slipped out of my head at the moment. this assumes you're postgres owner user name is 'postgres' of course, and that you've started the postmaster daemon already. don't know if the debs do that, I don't run debian.
that should get you started. more info is the docs, try specifically the getting-started guide, and then like the administrator's guide. Postgresql is a _lot_ more flexible than mysql, the price you pay for that is a little more complexity.
Oh, and you don't need to su to postgres to connect to the database, but you DO have to have made a postgresql-user for $login to connect from $login. 'createuser' isn't hard to remember.
I can have postgresql up in about 5 minutes too, if I use binary packages (I usually compile from src). It's just familiarity. For comparison, it takes me ages to remember the mysql-way to do the things I've described here, e.g. the "IDENTIFIED BY" is a new one on me.
HTH
Re:Why people use MySQL (Score:2)
The truth is that many of us have been with mySQL for years. When Postgres was first created, it was slow, very difficult to install, and used some kind of non-standard version of SQL. mySQL was fast, easy to install, and easy to upgrade from the mSQL database I used before. So I have been using mySQL ever since, with no need to switch.
I might well use Postgres if I was starting database programming for Unix/Linux now, because the feature set is in fact better. But it looks like mySQL is going to gain the missing features quickly, so it doesn't seem like switching would be worth the effort.
D
Re:Why people use MySQL (Score:2)
When fixing this, forget "wizards". Don't configure via makefiles. Don't use user-edited text files. Make the setup mechanism find out as much as possible by itself. "You should never have to tell the computer something it already knows", as Apple once put in their developer guide. Ask how little the application really needs to know to get its job done.
Postgres will fall flat on its face too... (Score:2)
Try throwing 20 million rows in and out of the server everyday. Big RDBMSes still have a place. Write portable SQL as much as you can.
Ahhh...a MySQL post.... (Score:4, Funny)
Re:Ahhh...a MySQL post.... (Score:2)
Curious description of the GPL (Score:2, Interesting)
"The GPL allows open-source programs to be changed by users, but those changes aren't official and can't be sold commercially unless they're given back to and accepted by the owner."
That's not exactly how I understood it. My impression was that the GPL was a recursive license allowing the free use and modification of code, but requiring that said modifications also be made freely available under the GPL. I didn't think the person whose code I was modifying had to accept my modifications in any way. Nor did I think it was directly incumbent upon me to send them to him.
I wonder what it is about journalists that makes them so capable of half-understanding so many things?
Re:Curious description of the GPL (Score:2)
"nested queries and stored procs" (Score:2)
MySQL has been mired in the stone ages of Dbase4 for years; these will be welcom additions and will definitely help MySQL overtake some of its lofty closed source competitors.
Me, I'm sticking with PostGreSQL. But I applaud the effort of the developers to make their application into something that DBAs worldwide can feel proud to add to their resumes.
Why This Is Good (Score:2)
To all those who are comparing MySQL to PostgreSQL, I'd like to comment on why this is good.
First, competition will make them both better. The whole point of open source is *more* choice, not less. Stop complaining that MySQL is finally catching up to PostgreSQL and use which one you want. They both have their strengths and weaknesses. It's not like they both cannot coexist.
Second, I use MySQL occasionally now because most ISPs seem to support it. PostgreSQL is great, but I cannot use it because my clients have long since chosen their ISPs and it is a major PITA to change for many reasons.
How about those... (Score:2)
Re:How about those... (Score:2)
Typically, there are two reasons why people go with commercial databases:
- Support
- 'Quality' (more robust, more scalable, etc.)
Support is pretty obvious... something goes wrong, you call. I'm sure some companies are much better at providing support than others, but it's a pretty safe bet that you'll get better support for a commercial database than a free one. And before the flames start, by support I mean 24x7 support, the kind of support you need when a system is down. Popping into an IRC channel and hoping someone's awake isn't a very good support plan when you're losing business by the second
Quality depends greatly on what you're trying to do. For example, would you open an account with a bank that uses MySQL to keep your account information? Or trust a hospital to keep your medical info in MySQL? Big databases like DB2 and Oracle provide the tools you need to ensure data integrity. They also have a well-proven track record of use in industries where losing or corrupting data simply is not an option (I'm talking things like NYSE and financial institutions, not some e-store or a simple website).
Another issues is scalability. People love to tout MySQL's performance, but it's very easy to see where you can make it fail. Not having row-level locking means good luck using it in a OLTP system, for example. It also doesn't cluster (which is an absolute requirement if you're going to do anything serious on x86 hardware).
On the other hand, it'd be pretty silly to pay for something like DB2 just to run a small website.
Re:How about those... (Score:2)
Replication is having multiple copies of the same database and trying to keep all the copies in sync.
Clustering is taking a database and splitting it up across multiple machines. For example, DB2 allows you to do this at the table level, where rows for a single table are stored on multiple machines. What makes this work is DB2 hides most(if not all) of this from the applications, so it looks just like one large database.
Personally, I'm more in favor of getting hardware capable of running the database, since administrating a single machine is generally much easier than administrating dozens, not to mention power consumption and floorspace considerations.
SSL? licensing? (Score:2)
If they've built a whole new SSL library, I'm impressed.
Re:SSL? licensing? (Score:2)
http://www.gnu.org/licenses/license-list.html
The OpenSSL license has the same incompatible terms as the Apache license.
Communication between mySQL and ODBC (Score:2)
That is, is there any type of library available that would let my Unix C program talk ODBC to a SQL server system?
I know about ODBCSOCKETSERVER, and it's what I use now, but it's not robust enough for some of the things I want to start doing, and I'd really like to have a system that directly talks ODBC under Unix instead of having to go through a Windows box with ODBC installed. (I don't want to run the bridge on the computer that actually contains the SQL server interface).
Thanks for any thoughts.
D
Why use any DBs at all? (Score:2, Interesting)
Right tool, right job.
MySQL is good but can be better. Why wait? (Score:2, Informative)
We used to run MySQL but found that it died *horribly* on heavy multiuser loads. (e.g. 500 concurrent users, all updating/insert/etc.)
I investigated the problem and found out that table locking really, really sucks. Last summer when we had this problem we didn't have the luxury to mess around with pre-alpha table structures and spend countless hours poking around with settings.
I carefully explored the other RDBMS's out there and eventually picked Sybase ASE 11.9.2 for Linux as the best choice. I can say it was hands-down the best choice we made. Now we're at 12.5 which supports SSL, XML, etc. and a host of other features MySQL hasn't even thought of.
Instead of 'dealing' with MySQL we're making money with something else.
So here it is:
If you are having problems with MySQL - DON'T PUT UP WITH IT. There are many other fish in the sea that will better fit your application. Simply because it is 'free' or 'popular' does not make it better for your application.
As someone else said, I always follow the 'pick the best tool for the job' test. If it is out of our price range, we either find a way to buy it or move on to the next item on our list.
I think far too often people perform the 'open source' or 'free' litmus test first -- leading to major headaches down the road.
If we were in this situation today I think we'd rather have picked Postgres, simply because it was a lot cheaper and offers many of the performance-enhancing features as the 'big three'!
You have to laugh (Score:3, Informative)
"I don't understand why MySQL is so popular, the only thing it has going for it is tha it's easier to install!"
Answer...staring...right...at...you.
Re:What's so major? (Score:2)
Might?? MySQL is still only for weenies. You wouldn't be at all impressed with it if you'd used a really functional Open-source Database like postgresSQL. I've used both and there's really no comparison.
I don't see these as major changes, rather than just adding some features
They aren't major changes, just adding some of the features that PostgreSQL has had for years.
Why bother with MySQL?
Big differences (Score:2)
But they are
then you are saying that the gap between the two products isn't that big.
I'm not saying that. It's a big gap, and not likely to close anytime soon.
That those features of PostgreSQL that have been around for years aren't anything to shout about.
That means that they are tested and proven. And work reliably now. That's worth shouting about.
Is it that hard for you to imagine that the everyone else is getting along fine with what mySQL has to offer?
If they understand the alternatives, and really only need a fast, small but junior leauge DB like MySQL, then no problem. If they are just ignorant, then I suggest trying harder.
Not a troll (Score:3, Informative)
Have to say I 100% agree with this guy. PostgreSQL is light years ahread of MySQL, and is 100% open source. The GPL'ed version of MySQL isn't even free software! (The GPL version i always a subverions or two behind, I believe.) Why people continue to use it when PostgeSQL is out there defies all logic IMHO.
The newest version is GPLed (Score:2)
The GPL'ed version of MySQL isn't even free software! (The GPL version i always a subverions or two behind, I believe.)
You're wrong - the newest version of MySQL is GPLed (you can buy another kind of license from the company behind it if you need to). They changed their policy mid-2000, if memory serves.
When using databases as backends, I'd much rather use PostgreSQL myself (transactions without table trickery, foreign keys, views and subselects being the things I miss most in MySQL), but MySQL certainly is free - and the subset of SQL they do support is very useful, and sufficient for many purposes
Because MySQL is available for Windows (Score:2)
One word: Windows.
MySQL is available for Windows with a simple, quick install. PostgreSQL can be compiled on Windows, but I think you need Cygwin to do so, and the installation routine is a readme, not an executable wizard.
Most small and mid-size ISPs offer MySQL on their servers, not PostgreSQL. Why? I'd guess it's because it's used more widely (yes, that's a catch-22), and because clients can easily install it on Windows to develop their applications.
For simple applications like a web site, you usually don't need the features of PostgreSQL, MySQL will do the job. If you need the features that PostgreSQL can offer, you usually develop with a database server which you can run Linux on anyway. But for applications devloped in small networks or even on a single computer, availability for Windows is a huge selling point because it's the number one desktop system.
Re:More vapourware (Score:3, Flamebait)
For a good example of MySQL's performance under load, look at crash^Wslashdot, which probably averages two crashes a day or so, with 5 or 10 minutes down for each crash. As a man much smarter than me has said, slashdot does a wonderful job evangalizing Microsoft products.
Re:More vapourware (Score:5, Insightful)
And in reply to the parent of the parent of this post, I really don't see how the term vaporware fits here. Sure, MySQL is a different class of database than (for example) Postgres, but that doesn't make it a useless product. Besides, at the rate MySQL is going these days, I wouldn't be surprised if they could be considered up to par with Postgres in a few years. If they can keep the speed up there while adding new features, the competition will have a hard time... well, competing.
Re:More vapourware (Score:3, Informative)
Except that you are forgetting that multiple recently published scores indicate that MySQL really stinks for this type of work too unless it's ALL read only access. Once you start throwing writes into the mix, MySQL falls far behind. On top of that, MySQL also has concurrent access load issues too. This means it's not going to scale very well when lots of connections are asking for lots of differing types of data from lots of different tables. Yes, it's VERY fast for one or two people (or even a small handful) doing read only access, however, use it in an environment where there are even some writes in a highly loaded system, PstgreSQL is going to beat it, not just with a stick but a full blown Loui Slugger. Once you get into the world of having a large number of writes, MySQL becomes an utter joke as PostgreSQL has lots of optimizations to take advantage of this while MySQL just rolls into a ball and cries. Of course, I've also read lots stating the PostgreSQL's query optimizer is much more advanced, so once you start doing non-trivial queries, PostgreSQL is going to win again. This will be come significantly important once (if) MySQL starts supporting sub-queries.
The point being, MySQL really isn't a great DB system after all. It may get there one day but the number of situations that it truely works well in and MySQL can address are actually very limited and nitche areas.
New Slogan? (Score:2)
Ehhh... needs some work.
Re:More vapourware (Score:2)
Re:More vapourware (Score:2)
Get PostgresQL, a real DB. That already has all of these features, and rock solid too, not beta patches etc.
I hope people continue to use MySQL. Usage will inspire the developers to continue hacking on it until it rivals and even surpasses PostgresQL. It's much better to have two high-quality open source databases than one. Competition is almost as important in the open source world as it is in traditional commerce, even if the dynamics are different. It can be argued that open source competition does even more to foster innovation because the development teams are free to lift ideas and even code from their rivals.
Re:That's all very well and good (Score:2)
Re:MySQL is far easier and faster than PostgreSQL. (Score:2)
Re:MySQL is far easier and faster than PostgreSQL. (Score:2)
>performance. Which is usually the number one
>issue with any kind of database. That isn't to
>say that PostgreSQL is bad. It just isn't as
>fast. That's all. Here's a benchmark [mysql.com]
>of MySQL versus other databases... including
>PostgreSQL.
Their posted benchmarks are for SINGLE threaded access. Unless you're using it for one of the very few niche applications that require this, the benchmarks are *useless*.
MySQL has a major problem with heavily concurrent access, particularly in instances where you are doing a lot of updates.
At work I'm migrating from MySQL to Postgres for precisely this reason. Performance has been going majorly downhill as the utilization has grown. And now its not uncommon to see as many as 50-60 threads stalled waiting for a table lock .
Yes, I'm aware that alternate table types exist for MySQL that implement finer grained locking. The problem is they are fairly new, and are in use on only a small portion of the MySQL installations out there; hence, they are nowhere near as well tested as Postgres.
Also, the benchmarks published on InnoDB are extremely poor. The comparison to Postgres suffers from the same single thread test only problem I mentioned and is far from comprehensive. The rest of it is even worse - the test for concurrency impact only shows results up to 50 threads for inserts, and shows a major dropoff in performance of selects between 50 and 100 rows. And he actually admits to poor methodology on the test against a commercial database.
Matt
Re:MySQL is far easier and faster than PostgreSQL. (Score:2)
>where you are doing a lot of long running
>updates and selects on the same tables.
Unfortunately MyISAM is still the best backend that has a widely deployed long-standing backend.
>The benchmarks on the www.mysql.com page are
>still single users, but we are working on an
>open source multi user tests that will show how
>the different table handlers MySQL provides
>works under heavy multi-user load.
I applaud the effort. That doesn't change the fact that the current benchmarks have major deficiencies.
>The single user benchmarks does however show the
>top speed for a database and the strength and
>weakness for each database, so they are still
>very useful on their own.
It shows the top speed for a database under conditions almost never found in production environments and hides the weaknesses of MySQL by doing so. They are very much NOT useful to most people.
Matt
Oracle killer? NOT! (Score:2)
Nobody, but NOBODY, will challenge Oracle with a database unless SAP and PeopleSoft port to it.
I wish RedHat had understood this. RedHat might have been better off bundling SAP-DB and selling an SAP-optimized version.
Re:Good Thing (Score:2)
http://oreilly.techrev.org
And look at one or two chapters from our forthcoming book on MySQL. This is the technical review portion of the book which means there are still tons of typos, but what we are looking for is that the community validate its technical content.
Thanks!
Re:Wow! (Score:2)
Row-level locking is available in mysql by using a third-party table type [innodb.com]...As are transactions, and page-level locking.
you use what you need, and for a lot of people, they really don't need to use correlated subqueries, they don't mind replicating the functionality of a stored procedure in perl or php, and they really don't need a 5-digit price tag.
MySQL's main feature seems to be its immense popular support among people who haven't used any of the alternatives.
really? so yahoo and NASA don't know about alternatives to mysql?
this is such total FUD...i really don't understand the motivation for everyone to tear down mysql based on these same objections and that damn phillip greenspun article [slashdot.org].
can't everyone just let people use the solution that fits their requirements?
Re:Wow! (Score:2)
The point is that any organization that promotes ideas such as "table level locking is superior to row level locking because it's faster" obviously has little understanding of what kind of features are needed for a robust database. That kind of attitude raises all kinds of questions about everything from their high level design down to the code. Data integrity isn't something that you tack-on to a database engine as an afterthought, it's something that should be designed in from the start. Have they ever thought about things such as data integrity problems caused by re-ordered writes by the filesystem? Probably not because it's not much of an issue if you don't provide transactions. (Yes, I know there are 3rd party add-ons that provide transactions)
It's encouraging to see 3rd parties adding sorely missing features to MySQL, but the point is that MySQL's developers should have at least realized what kind of things MySQL needs to be more than a glorified flat file handler. If they don't want to add these features that's their call, but it's a real disservice when they bash features they don't want to impliment because they see no use for them. If there was no use for them, then Oracle, IBM, Sybase, Microsoft, and countless other companies wouldn't have spent a lot of money developing them.
Re:Wow! (Score:2)
The bottom line is, mysql lacks row-level locking. It's not in the product. Moreover, the mysql developers defend this omission and claim it was a conscious decision which they attempt to justify in the documentation.
I'm pleased that the innodb folks have seen fit to try to overcome this liability in mysql, but let's not get carried away by describing it as a native feature.
Re:PosgreSQL (Score:3, Interesting)
To not have to repeat myself over and over again, I have collected some information about this topic here [mysql.com]
Speedwise I haven't seen any indication that PostgreSQL 7.1 would generally be faster than MySQL. All the tests I have myself run shows that it there is no big speed improvment between earlier PostgreSQL version and 7.1, if you run both with flushing of data disabled. (We will soon publish the results on our benchmark page)
For many applications, MySQL is in practice at least 3 times faster than PostgreSQL 7.1. If you applications needs the extra speed MySQL can give, PostgreSQL is not an option.
According to what I know, the InnoDB transaction handling engine in MySQL is at least as good as the PostgreSQL transaction engine. (I would argue that is even better, as you never have to run a 'vacuum' on InnoDB!)
My simple message is that both MySQL and PostgreSQL has a place. One can't generally say which is better, in the same way you can't say if a hammer or a screw driver is the right tool, if you don't know what it should be used for. For a lot of real world applications, MySQL is simple the best choice. The same is true for PostgreSQL.
Regards, Monty
CTO of MySQL AB
Re:GPL (Score:2, Informative)
the problem with news stories that you are not allow to check before they are published).
You will find a lot of good GPL information at:
http://www.gnu.org/copyleft/gpl-faq.html
Regards,
Monty