MySQL 5 Production in November 286
thatoneguyfromphoeni writes "CIO.com is reporting that MySQL AB is eyeing Nov. for the production release of MySQL 5. 'The company is calling version 5 its most significant upgrade yet. It adds a handful of features considered important for enterprises that have long been available from market leaders Oracle Corp., IBM Corp. and Microsoft Corp. Chief among them are triggers, views and stored procedures.'"
Dupe? (Score:2)
Different link, but same idea anyway.
MySQL has finally caught up (Score:5, Insightful)
Re:MySQL has finally caught up (Score:3, Informative)
Anecdotally, RubyForge got 240K hits yesterday on a GForge site backed by a PostgreSQL 8 database with no problems; good times. PostgreSQL is good enough that our problem is bandwidth, not server load [blogs.com].
That's only 3 hits/second. (Score:5, Interesting)
240000 hits/day is just under 3 hits/second, after all.
When you consider the power of today's hardware, it should be able to cope with such a load, even when doing fairly heavy database activity.
Re:That's only 3 hits/second. (Score:2)
sure, if hits are uniformly distributed (Score:3, Insightful)
it's probably more like "8 hits per second for 8 hours; 1 hps for 16."
which is still a joke for static content, but for dynamic, it's respectable.
Re:sure, if hits are uniformly distributed (Score:2)
it really depends on what those pages do (Score:2)
now, I'm sure rubyforge isn't at that level, but from what I remember about the SF code base, I doubt it's trivial either.
We have the data available to us. (Score:3, Informative)
http://rubyforge.org/docman/view.php/5/11/rubyforg e_site_status.html [rubyforge.org]
The PostgreSQL database contains about 3.2 million records and takes up 600 MB of disk space.
600 MB is obviously not a few TB. It's not even 1 GB!
RubyForge is currently running on a single machine with two 2.8 GHz Xeon CPUs, 2 GB of RAM, and a hardware RAID 5 SCSI array of 210 GB.
They have 2 GB of RAM for a 600 MB database. Even assuming the web server, mail server, Linux, etc., take half of the available r
Re:sure, if hits are uniformly distributed (Score:2)
You mean Derby [apache.org] right? Because in case you didn't notice, we're talking about databases here.
Re:That's only 3 hits/second. (Score:3, Informative)
I should really do an analysis of how many queries the DB processes per day/hour/whatever; that would be more useful.
Re:That's only 3 hits/second. (Score:2)
Load is never that consistant in the real world. I wouldn't be surprised if 240000 hits/day meant peak loads well into the hundreds per second.
Re:That's only 3 hits/second. (Score:2)
PostgreSQL has 2PC! (Score:2)
What this means is you can run a multi-master replication system of databases. MySQL, eat your heart out!
Other things of note: One guy claims he sees a 20%-40% improvement in speed in smaller queries. That is breath-taking.
And the equivalent (and frankly, better implementation of) table partitioning is here! Now there is NO REASON to use Oracle over PostgreSQL. Oracle has lost all of its competitive advantages when 8.1 is released!
Predictions: New
Re:PostgreSQL has 2PC! (Score:2, Informative)
Problem with your predictions (Score:2)
Re:PostgreSQL has 2PC! (Score:2)
8.1 introduces "Constraint Exclusion" (CE) which is a very simple form of table partitioning. It is a good foot in the door, but it's far from a full implementation of table partitioning options. In fact, CE is not even enabled by default, because of some potential problems (although the problems seem far fetched and theoretical to me). Look forward to some more advances in the 8.2 release.
Re:MySQL has finally caught up (Score:2)
It doesn't matter what feature set actually mysql has, it's just hip to bash it just like it's leet to bash linux when you're a (free|open|net)bsd fanatic.
No, it hasn't (Score:2, Insightful)
I was using all of these in PostgreSQL in 1999.
Re:No, it hasn't (Score:2)
What 'non-standard' syntax are you talking about? Something like postgres' allowing LIMIT support in SQL statements? What 'standard' does that follow?
Re:No, it hasn't (Score:2)
Re:No, it hasn't (Score:4, Interesting)
PostgreSQL supports SQL-92, while adding it's own extra features (which describes most other databases like Oracle and MS SQL too), including the support of the "LIMIT" statement. MySQL doesn't support any standard base, instead existing as an arbitrary mish mash of standard and propritary SQL. It wasn't until the current version, 4, that MySQL even bothered to add support for UNION.
With every other database you can start working safe in the knowledge that while having it's own extensions, you're working with a normal "SQL" database. MySQL, while posing as SQL, has little if anything in common (in particular see threads about optimization - getting fast code in MySQL means learning an entirely new system filled with quirks and vomit inducing workarounds to solve language faults)
Re:No, it hasn't (Score:3, Interesting)
Re:No, it hasn't (Score:3, Interesting)
Allowing dates like Feb 31st.
Truncating numbers silently.
Strange NULL handling.
A lot more.
Re:No, it hasn't (Score:3, Informative)
Yes it does. It has for 2 years now.
Re:No, it hasn't (Score:5, Interesting)
And with Oracle's purchase of InnoBase, maker of InnoDB, there is a reasonable chance that MySQL will end up dropping the InnoDB storage engine. After all, since InnoDB is GPL, MySQL AB only has a right to distribute InnoDB under a commercial license because of a contract with InnoBase. Here are the possible outcomes:
(1) Oracle renews the contract, and nobody worries until next time it comes up for renewal.
Unlikely. Why do you think Oracle bought InnoBase? Not to be nice, that's for sure.
(2) Oracle doesn't renew the contract, MySQL continues development, and drops it from their commercial version.
Approximately 0% chance of happening. What's in it for MySQL aside from the bad PR of having a commercial version worse than the GPL version?
(3) Oracle doesn't renew the contract, MySQL drops support for InnoDB, and the MySQL community forks, and MySQL develops another storage engine.
Could happen. I have my doubts that would go very smoothly in the timeframe allowed. Most likely some functionality would change, breaking compatibility with existing InnoDB applications.
(4) Oracle doesn't renew the contract, MySQL drops support for InnoDB, and the MySQL community forks, and MySQL doesn't develop another storage engine.
Seems likely, although they lose ACID and foreign keys, which are the most important "Enterprise" features of all.
So, it seems pretty much like #3 or #4, neither of which is good for the MySQL users. Expect MySQL AB to start preparing by warming up to BerkeleyDB to see if they can make that storage layer work. Expect MySQL AB to start spreading propoganda about how foreign keys and ACID really aren't necessary and only slow the database down (they can just un-rewrite some history and the propoganda is already there!). And expect them to try to make something out of SAP DB / MAX DB in a hurry. They'll try to get MySQL 5 out ASAP so that the impending problems with InnoDB don't take steam away from their release.
only so far, indeed (Score:3, Interesting)
Re:only so far, indeed (Score:2)
Data Dependencies & Reliability (Score:2)
One of the things that is missing in most if not all databases (AFAIK) is an effective mechanism to deal with data dependencies. A data dependency exists whenever two or more applications of components share read/write access to the same records in a database. We need a simple to use mechanism that will notify relevant applications of changes in a shared record. Resolving dependencies in a timely manner is extremely impor
Re:Data Dependencies & Reliability (Score:3, Insightful)
Thank you. But that is not what I meant. There should be a software mechanism that automatically identifies dependencies and resolves them. Leaving it to the programmer does not solve the problem because programmers come and go and may not be aware of old dependencies. The problem is especially annoying in legacy systems. Modifications made to a
Re:Data Dependencies & Reliability (Score:2)
I still don't understand what you're trying to suggest.
Say Application X writes to Tables A, B, and C. Application Y writes to Tables A and D. Under what circumstances would App X need to know that data in Table A had been put there by App Y, or vice versa? How do existing database systems fall short of satisfying such a need? Keep in mind that table- and row-level locking, access control rules by account o
Re:MySQL has finally caught up (Score:2)
I've heard a lot of complaints regarding MySQL integrity. For the record proper transactions have been around for ages, and 5.0 has largely corrected the remaining integrity problems with triggers and the Server Mode variable [mysql.com] (options to prevent the insertion of 'bad' data). IMHO, it's the most important new feature. Why they haven't made a bigger deal about it is beyond me...
And we need to stop saying "everyone is ahead of MySQL" when th
Re:MySQL has finally caught up (Score:2)
AutoVacuum
Re:MySQL has finally caught up (Score:2, Informative)
Why oh why are not many of these new modes not on by default? For example:
Re:MySQL has finally caught up (Score:2)
1999 is a bit late for these features to be state of the art -- more like mid 80s I'd say. But it doesn't matter. Phrases like "Ready for the Enterprise" is a slogan, not a measurable property. There are many small enterprises (or parts of large enterprises) that muddle along with capabilities that are primitive by 1999 standards. Primitive 1999 MSQL stanards: I'm talking all those unforutnates w
Re:MySQL has finally caught up (Score:2)
I've had the dubious privilege of attempting to convert a web app that was originally designed to use Microsoft Access (don't laugh, it's a surprisingly capable performer for web applications provided you use the OLEDB driver) to both postgreSQL and MySQL. On the whole, the postgreSQL port was relatively painless (apart from the fact that the ODBC driver sometimes returns spurious null rows) and allowed some of the application logic to be simplified by making use of triggers and stored procedures. The
Re:MySQL has finally caught up (Score:2)
Re:MySQL has finally caught up (Score:2)
Don't get me wrong, I think it's great they are adding features and catching up to firebird, postgresql, ingres and other open source databases. They really should tackle replication next though, right now only ingres has comprehensi
Re:MySQL has finally caught up (Score:2)
That's one thing I LOVED about Tango (now WiTango). It was a RAD web app development system that for the most part was 100% database agnostic. I know many others are too, but PHP is my favorite as a language. And I know if all the scripts we used w
Just in time... (Score:5, Interesting)
I recently showed the latest rev to the SQL devs here, and they were most impressed. Most of the complaints about it were gone; the new GUI is miles beyond what they had before, and the new features (views, stored procedures, better VARCHAR support) have people thinking that for smaller projects, MySQL will work out just as well as MS-SQL, and at a fraction of the cost, if any cost at all.
Some technical complaints though (Score:2)
create table my_table(
id int autoincriment,
fk1 int references other_table (id)
) type=innodb;
Hmmm... Foreign keys are not enforced (with no warning issued by MySQL as to this behavior) but if I do
create table my_table(
id int autoincriment,
fk1 int,
foreign key fk1 references other_table (id)
) type=innodb;
Now they are enforced. Why the difference?
If I do a lot of inserts/updates/deletes on an innodb table, how do I recover space?
If you want a real RDBMS at a fraction of the cost or no
Re:Some technical complaints though (Score:4, Insightful)
You expect people to take your analyses seriously, but you don't feel like attempting to test...?. I suggest you leave serious comparison documentation to people who do feel like testing stuff. No offence intended.
Still Not an Enterprise Solution (Score:3, Insightful)
Re:Still Not an Enterprise Solution (Score:5, Insightful)
There's a very big niche for smaller DBMSs. Plus MySQL tends to be fast and the feature set is growing.
Re:Still Not an Enterprise Solution (Score:2)
I think a better comparison would be:
Oracle compares to PostgreSQL as
MS Access compares to MySQL.
Although grant it..with the new things they're adding...MySQL is now steps above MS Access.
Re:Still Not an Enterprise Solution (Score:2)
Re:Still Not an Enterprise Solution (Score:2)
I stand corrected. I've often thought that Access should, by law, be wiped from the face of the earth. I can't tell you the number of times I've seen...some PHB or other similar type, with no education of RDBMS design, has started a little Access db (I hate to call it a database), only to hand it out...have it grow...become an important tool of the company...and THEN, they need to port it to a real RDBMS. Then, I get it. What a gawdawful mess...one or
Re:Still Not an Enterprise Solution (Score:3, Informative)
But for many years, MySQL proponents have, in blatant defiance of the facts, claimed that their Cessna could seat 275 passengers and cross the Pacific in one hop. If MySQL lacked a feature, proponents claimed the feature was unnecessary fluff. As soon as the feature was added, they announced that "MySQL is ready to run with the big dogs." When the features in question were utterly fundamental to effectively exploiting the power of the relational databa
What were banks using years ago... (Score:3, Interesting)
"enterprise" apps 5 years ago on platforms that aren't as robust as MySQL5 is now. Yes, software has become more demanding in the past few years, but the fundamentals haven't changed. If you could run 'enterprise' solutions on SQL Server 6.5 (and I saw companies doing it - and gosh, they didn't even have row level locking!) surely some "enterprise" industries can use MySQL5 today.
Re:What were banks using years ago... (Score:2)
As for 'enterprise' apps - believe me when I say many industries are running their serious enterprise apps on platforms that *are* much older than 5 years old (remember the y2k 'bug', think of all those COBOL programs that are running... 30 years old and still going. I'd say something that runs for 35 years is the very definition of robustness).
The fundamentals are the
Re:What were banks using years ago... (Score:2)
What struck me about this was that I worked at a company in '98 using SQL Server 6.5 for most work. I was asking if we could use MySQL for some projects - we were doing unix/perl and NT/ASP. The NT devs all got to use SQL 6.5, and the Perl guys were only allowed to use flat files, no SSI on Apache, etc. Gave the NT devs an upper hand in being able to be more productive.
When I'd asked abo
Re:What were banks using years ago... (Score:2)
I know its good now, and I've been using v3 for a while (yes, I upgrade to v4 and its immediately superseded. just my luck
Re:What were banks using years ago... (Score:2)
Note that this has nothing to do with the row-level shared locks that PostgreSQL added.
Personally, I think MVCC is a far superior approach than read locking.
Re:What were banks using years ago... (Score:4, Informative)
> "enterprise" apps 5 years ago on platforms that aren't as robust as MySQL5
> is now.
Ah, good question. Here's how to look at this:
1. mysql is just now in v5 putting in pieces that most commercial products had 10-20 years ago:
- views (been around since something like 1981 in db2 & oracle)
- triggers (been around since around 1995)
- subselects (been around in db2/oracle since 1981 or so, in mysql for what? 1 year?)
- transactions (been around in db2/oracle since around 1981, in mysql via innodb for 2 years)
- online backups (been around 10 years? mysql still requires a separate product)
- stored procs (been around 10 years? mysql just getting to it)
2. data quality - mysql has:
- silent errors
- silent data truncations & conversions
3. standardization - mysql has:
- quite a few deviations from ansi sql - everything from comments to weird create statements
- historically the lack of views, transactions, stored procs, triggers, and poor join performance meant that many queries had to be completely rewritten for mysql
4. performance
- mysql's performance reputation was built upon easily-cached data that could be easily looked up using simple indexes on mysql. Its performance of large queries (select many/most rows) stank, and its write performance was horrible - since required table locking.
- mysql's performance on innodb was better for mixed environments, but innodb has a bloat problem that can get serious.
- no support for query parallelism, partitioning, etc - isn't 1/40th the speed of a commercial product for many queries.
- mysql's optimizer is trivial - and can't be relied upon for complex queries (> 5 tables)
No, you can live without row locking - as long as you've got at least page-level locking. It's the accumulation of all the other stuff that makes you want to run from it.
Add to these complaints (Score:3, Informative)
create table table2 (
id int autoincriment,
fk int references table1 (id)
) type=innodb;
does not enforce the foreign key even in 5.0 while:
create table table2(
id int autoincriment,
fk int,
foreign key (fk) references table1 (id)
) type=innodb;
does enforce them.
2) Even with strict mode, any application can turn it off, allowing it to add bad data (try adding Feb 31, 20005 as a date in MySQL with strict mode off). This is a violation of Date's Ce
Re:Still Not an Enterprise Solution (Score:3, Insightful)
Most likely, your bank is running its mortgage application on a seven year old database. Many of these apps are actually running on much older hardware/software combinations. I don't think mortgages have changed that much in the last 10 years or so.
Newer != Better, New Features != Required Features.
Playing catchup... (Score:2, Insightful)
Re:Playing catchup... (Score:2, Insightful)
It's always easier when you view the entire universe in black and white.
Re:Playing catchup... (Score:3, Interesting)
Re:Playing catchup... (Score:3, Insightful)
MySQL's biggest problem (Score:4, Funny)
Re:MySQL's biggest problem (Score:3, Interesting)
From what I understand there are several developers at MySQL who understand the innodb codebase extremely well. The first smell of trouble from Oracle and they fork the last GPL version and take it from there.
I personally believe that Oracle bought Innobase to get their hands on the developers hoping to starve development on innodb. I hope that that isn't the case, or even possible.
Innodb, imho, is a seriously nice transaction engine. It's very very Oracle in it's des
Re:MySQL's biggest problem (Score:3, Informative)
And can't use it in their commercial product.
If they can't get their license for InnoDB renewed, their commercial sales are in big trouble.
Re:MySQL's biggest problem (Score:2)
mySQL seems to be the one not cutting.... (Score:2, Informative)
not a troll (Score:2)
It seems silly (well, dangerous) to have triggers, etc. without transactions, so I'm inclined to think they finally went ACID. But if that's the case, who cares if Oracle bought Inno, so I'm inclined to think they didn't.
Anyone actually know?
Performance wise.. (Score:2)
Re:Performance wise.. (Score:5, Informative)
I've moved completely to PostgreSQL (works beautifully on core Drupal too) and have found complex queries complete in a fraction of the time. I had a complicated application which had multiple threads inserting, updating and reading all at the same time- complete run-time was reduced to a tenth by using PostgreSQL.
It works for me- just make sure you use ADODB in PHP [sourceforge.net] or Perl/DBI [perl.org] to make switching easy when you hit the MySQL limits.
One more thing: I work with serious mainframe DB2 during the day. MySQL just doesn't compare. Postgres feels closer.
Still no "device"/single file support (Score:4, Insightful)
Postgres recently added tablespaces, which allow you to specify a sub folder for these files. This is better then before, but not nearly where it needs to be.
There are advantages to having single files versus a larger file, but most are administrative in nature. It can also lessen the effect of corruption. A sinlge table might fail and would not effect others. If a big database file corrupts it can damage a lot of data.
Having a single files allows quite a few things.
First it greatly reduces File system level fragmentation. The file grows once and the sectors are right next to each other. When you have 10+ gigs of data this is a real concern.
Second it create a unified caching mechanism. The big file is broken into pages, generally 8k, which in turn store data rows. The data is not only user data, but indexes, system information. Other pages are used to store stats about other pages, and have header information about the file itself. Why is this important to caching, because you simply have a cache table, everytime a page is loaded it gets cached. Writing to page happens in memory and then written to disk. Enterprise dbs have huge caches. This is why 64 bit is so important for dbs, so we can have larger then 4 gig caches.
Third is backing up. Some might say the file backup is easier, I beg to differ. Especailly when it gets big. When you go to backup you backup each page in the file. You mark each one as being backedup. At the end of the backup you backup the write ahead log. This allows you to restore to exactly the time the backup finished. Lastly, a diff backup simple looks at each page that has changed since the backup and backs only those pages up. Diffs can be very fast and faster to restore then a write ahead log.
Also, single files on different drives arrays to increase performance. This is also capable with tablespaces. The good part is that the database knows only the file id that tables go on, and then file id corresponds to a file name on any path. With the right tool you can move the files around easily.
Replication is also easier because writes are to a file id and page id. The replica database can have files place on any drive at any map point as long as the data.
Both mysql and postgres got a way to go, but they are very nice products and one day can easily compete with the big boys. Although it will be a while before they are able to run high end clustered box with shared storage and super high speed interconnects, but if you need that kind of power, you've probably got the money...actually you absolutly do if you can afford the hardware.
The negative comments have gone from... (Score:4, Insightful)
We have two websites, Boats.com [boats.com] and Yachtworld.com [yachtworld.com] - Boats has an Oracle backend databsae, and YW has MySQL using the InnoDB engine.
The uptime is about the same for the two. We've had some issues on the Yachtworld database box due to 3ware drivers in Linux - they were corrupting pages in the database. Guess what? Innodb recovered without any lost data. Twice. This was a driver/hardware/linux issue, not a MySQL issue. We now appear to have a stable set of drivers, and I expect the MySQL database to hit 100% uptime pretty much every month.
Yachtworld gets several million distict page views per day, whereas Boats.com gets half a million.
Our MySQL database runs on a dual-opteron server, with 8 gig of RAM, with 6 gig of it allocated to the innodb block buffer pool (it caches row and index data so you don't have to go to disk).
Try doing that in Oracle 10g on Linux. The SGA (Shared Global Area) can't get larger than 1.7 gig unless you,
1) Use memory as a temporary file system so that Oracle can cache a bit more, and you also get the benefit of dicking around for several days, trying to configure your machine to try to take advantage of it (if it even can - we were never successful).
2) Remap all the shared libraries so that they load in a lower memory address, to squeeze another few hundred meg of memory.
Postgres (last I checked) preferred to let the OS do the data-caching. Thanks, but no thanks. And no 64-bit version (though I've read a few people have managed to compile one, I wouldn't trust it unless Postgres gave it the thumbs up).
MySQL with InnoDB is straighforward (it's use of tablespaces, replication, tuning, and even compiling from source - someone with mediocre Linux skills like myself can do it without issue every time).
MySQL with InnoDB is very fast, very reliable, and has awesome support via the MySQL mailing lists.
MySQL is very well documented, with lots of great third party books that don't cost an arm and a leg (unlike an Oracle library).
MySQL does not have stored procedures, triggers, and views in the current production version.
Here's what I think of that:
1) Triggers are hidden application logic that are very hard to debug, and are easily overlooked or forgotten by developers. Business logic (other than defensive logic like unique indexes, primary keys, foreign keys, not-null columns) does not belong in the database. They belong in the middle tier. They also make it much more difficult to move to another database.
2) Stored procedures are like PERL - it's very easy to make a mess unless you are very careful. They are also hidden logic, and very difficult to debug. And again, keep that logic out of the database. They also make it much more difficult to move to another database.
3) Views are a nice feature, but most often used to support business and reporting. I don't like managers connecting to the database to run queries (SELECT * FROM very_large_table_1, very_large_table_2; and suddenly you have cartesian join that results in tens of millions of rows coming back, bogging everything down). To do reports, views aren't necessary.
If you think MySQL is not a "real" database, it is, and has been since 4.0. As an Oracle (and now MySQL DBA), I can honestly say that I can't wait to dump Oracle and get the Boats.com website over to MySQL.
And for the few people who made comments like, "Do you really want your bank running on MySQL?": many banks run on old, legacy hardware and systems. Transactions are written out in many places (with geographic diversity) to ensure that a hardware or software crash is recoverable. There is no reason why you couldn't put MySQL in a situation like that, so long as the same precautions are taken.
Re:The negative comments have gone from... (Score:2)
I used to think as you write here, but have modified my thinking some in the past few years. I agree with your view on the 'hidden application log
Re:The negative comments have gone from... (Score:4, Informative)
Triggers are hidden *data* logic, and they should be hidden. They have the added benefit of being asyncronous if you choose, so if you need to write data fast, you can still lay it out in another format, or do something else arbitrary to it.
Stored procedures are like PERL
Agreed. But when you need them, you need them. They also go hand-in-hand with triggers frequently.
Views are a nice feature, but most often used to support business and reporting.
Views are an abstracted view of data. You can have a table called subscribers with lots of columns that tell you the status of the subscriber, and a view called current_subscribers that encapsulates all that logic.
(psuedo sql)
create table subscribers (id, start_date, end_date, cancelled, payment_is_late, is_overdue);
create view current_subscribers as select id from subscribers where start_date now() and cancelled = 'N' and is_overdue = 'N';
You could argue that this logic belongs in you DAO, but that only works if you have one DAO runtime, which is not true for a lot of application environments.
Re:The negative comments have gone from... (Score:3, Interesting)
I'd say they're more often used to implement security than for reporting these days. If you've got a table which you only want certain rows or columns to
Re:The negative comments have gone from... (Score:3, Interesting)
Views are a nice feature, but most often used to support business and reporting. I don't like managers connecting to the database to run queries.
Yeah, what kind of crazy person would use a database engine to support managers in making business decisions. Wild, I tell you, just far out!
The truth is that since MySQL doesn't allow you to define constraints on how long queries launched by a specific user can run, you've concluded that allowing ad hoc queries is a bad practice. That's tunnel vision, not
Re:The negative comments have gone from... (Score:5, Insightful)
- I haven't tuned oracle memory in forever, but it sounds like you're trying to use 8 gbytes of memory
on a 32-bit cpu. In that case oracle and db2 are both limited to 1-3.2 gbytes of memory depending
on the os. There are ways of getting around that limitation but they are os-specific. On 64-bit
CPUs, everything is very simple.
- btw, putting most of your memory into a single buffer pool is seldom the best way to manage your
memory: ideally you would create a few sets of buffer pools for different types of tables. That's
the best way to increase your cache hits: indexes and all small tables pretty much just live in
memory at that point.
Regarding Innodb:
- very fast? compared to what? writing to myisam? well, sure, but that's about it.
- keep in mind that at a few million rows and several million queries, you shouldn't have
a problem with this data in any database. This is small. Unless of course your queries
are complex, are frequently reading 50,000 rows then aggregating that data into trends,
counts, etc. Of course, if you are - then oracle's parallel query and partitioning will
deliver great performance - possibly *dozens* of times faster than what mysql can do.
Triggers:
- as long as you keep it simple they are wonderful and are still easy to port. You can with
triggers:
- auto-populate some columns that the application doesn't require, but might be useful in
partitioning the data (assuming your database supports partitioning).
- populate denormalized tables strictly for reporting or searching
- populate history tables with changes to all data in various important tables
- capture changes in order to copy data to another database
- etc
- yes, you could do many of these things from within the application. but it'll be harder. Why
make life hard?
- and sometimes you *can't* do these things from within the app - it's closed source, but luckily
for you it's on a database that supports triggers.
Stored Procedures
- again, keep it simple and they are very useful and not at all difficult to port between databases
- when validation is performed here it allows you to *easily* enable multiple applications
to write to the database. I'm working on a project right now in which I've got to allow another
department to create a portal to one of our databases. The folks in this department can barely
write SQL, and I'm not interested in them training on our dime. We're giving them stored
procedures that they won't be able to screw up. Much, much safer this way!
- also gives your dba the ability to change the physical database (adjust for changes in business,
performance, security, etc) without having to change all the applications: the change can be
encapsulated.
- and sometimes you *can't* do these things from within the app - it's closed source, but luckily
for you it's on a database that supports triggers.
Views
- again, this gives you a ton of flexibility
- for example: in most of my databases I don't give de
Re:The negative comments have gone from... (Score:3, Informative)
> unlimited users or CPU basaed, which is what Oracle requires for anything that allows the general
> Internet to use it).
You're right - i was thinking of other applications. I shouldn't have since the parent had mentioned a million hits.
Not positive on what the current unlimited users oracle license is for two cpus. But the license cost goes up steeply for unlimited users. For DB2 I think it the che
Re:The negative comments have gone from... (Score:3, Informative)
Well, Postgres does do its own caching in userspace (see the shared_buffers configuration parameter and related documentation). It just does that caching in addition to (or rather, on top of) the caching and I/O scheduling done by the kernel. Why do you consider this to be a problem?
(Yes, letting the kernel do most of the caching does result in a minor performance hit, but I think that the amount of work required to
Re:The negative comments have gone from... (Score:2)
The data travels from our database to our application/web services layer, and it's a gigabit ethernet. It can also be done locally, on the machine.
Many applications, in many languages, hit our databases dozens of time
SQlite? (Score:2)
InnoBase and Oracle acquisition (Score:3, Interesting)
What worries me is that new acquisition of InnoBase by Oracle a few days ago.
InnoBase is the maker of InnoDB, which is the full featured dual licensed storage engine with transactions, referential integrity, hot backups and more.
The GPL version of MySQL will not be affected should Oracle decide to misbehave.
What may get affected is the commerical version of MySQL. Oracle can demand a hefty price for relicensing InnoDB, when the contract is up for renewal hence choking MySQL AB financially, by depriving it from the revenue stream of commerical licensing MySQL with InnoDB.
This may in turn cause long term trouble for the community by depriving it from contributions by MySQL.
I hope Oracle does not do that, but still, they are a corporation with no open source culture, and may have the mentality of choking the competition, using the very rules of open source dual licensing.
Or, they may be softening MySQL to buy them cheap in the near future ....?
Re:Great! (Score:3, Informative)
Re:Great! (Score:5, Informative)
A view is a way of making a pseudo-table. You can create something that looks like a single table, but can contain columns from multiple tables. If you have table 1 with columns A, B, C, D and table 2 with columns E, F, G, H , you can create a view 3 with columns A, C, F, H.
A stored procedure is something that is precompiled and put on the database server that performs a number of actions when called by a client. It can replace a complex series of SQL statements, say, in such a way that performance is much improved over having separate statements that would need to make multiple calls to the server.
Re:Great! (Score:2)
Re:Great! (Score:2)
Errr, ok I'll bite. Anybody correct me if I'm wrong, since 99% of my SQL work has been MySQL 4.xx these are all things that I've heard of but never used so I may be off by a bit:
Re:Great! (Score:2)
and
http://developers.slashdot.org/comments.pl?sid=16
Re:MySQL has been, and always will be sub standard (Score:5, Insightful)
Other people want bulletproof "unbreakable" databases with thousands of features. Some people want something right in the middle.
Having a variety of solid choices is not a bad thing. You should't be affraid of a little competition, as it is good for the entire market.
Re:MySQL has been, and always will be sub standard (Score:2)
Agreed. If you're not going to use feature X, Y, or Z then there's no point in buying a product that has it over one that doesn't. Just be damn sure that you won't ever need those features though -- if you discover that you do then you may be in for a world of hurt.
That said, the free RDBMS's are covering 90-95% of most people's needs at this point. If you need non-relational,
Re:MySQL has been, and always will be sub standard (Score:2)
MySQL has no niche left (Score:2)
Which is why they are switching to PostgreSQL.
Your assumptions about the footprint and speed of PostgreSQL are way out of date.
PostgreSQL is much easier to administer, much easier to develop for, and much better solution that it used to be for high-performance and low-performance shops. It has grown from its niche and began occupying the niches owned by MS SQL, MySQL, and Oracle.
Re:MySQL has been, and always will be sub standard (Score:2)
In which case they should use something like SQLite [sqlite.org], which unlike MySQL doesn't claim to be more than it is, has a better license and actually sticks with standards.
Re:MySQL has been, and always will be sub standard (Score:2)
Well, I didn't switch. But as a shared server admin who's been running MySQL for years and years, I did take a looong look at PostgreSQL. It had all the features that MySQL didn't have, and that was good. However, the authentication stuff sucked badly, so I retreated back to MySQL for the 50+ users needs.
Truth to be told, the server runs both. It's just that I don't want to create new users for Pos
Re:MySQL has been, and always will be sub standard (Score:2)
Re:MySQL has been, and always will be sub standard (Score:3, Informative)
The above post is factually incorrect [zdnet.com]. Oracle acquired Innobase Oy, the firm responsible for InnoDB, a database engine commonly used with MySQL. Many people are obviously skeptical of this acquisition.
It's highly unlikely that they would ever donate their enterprise product to the open-source community. Suffice it to say that the shareholders would not be pleased with a bankruptcy filing.
Re:MySQL has been, and always will be sub standard (Score:3, Insightful)
Don't get me wrong, i know you're just a troll, although MySQL was/is lacking in some ways, as i'm perfectly aware of that, but nothing compares to not giving a sh*t about security especially in case of an enterprise level software costing so much in cash and resources.
These Oracle issues are well known as a [does-not-exist.org]
Re:MySQL has been, and always will be sub standard (Score:2)
Attention! (Score:3, Interesting)
You have failed.
Please try again with the correct schema [sourceforge.net].
Re:SQL (Score:2, Funny)
)' at line 6
if not having views made your design better (Score:2)
Re:Bye Bye Innodb!! (Score:2)
Re:I still can't believe .. (Score:2, Informative)
I hope the interview on Groklaw with Marten Mickos (MySQL AB CEO) will help you
out of your missery..
http://www.groklaw.net/article.php?story=20051011