Вы находитесь на странице: 1из 14

A comparison of

MySQL And Oracle


Jeremy Haubrich

Importance of choosing the


right database

High cost for an enterprise system


Databases can hold the keys to the castle
Databases can give companies a competitive
advantage

Direct comparison isnt fair

Oracle and MySQL are built for different markets


Oracle is designed for the enterprise customer with a big
enough budget and more complex business needs
MySQL is a lower cost database that is most commonly
used for database driven web sites and non mission
critical applications
Features that look identical in a brochure may be
implemented very differently (ex. row level locking)

Cost

Oracle
$36,000 per processor for Enterprise Edition +
optional $8,000 for support and software updates
$5,000 per processor for Standard Edition + optional
$1,100 for support and software updates

MySQL
Free to download
$500 for a commercial license + optional
$1,500-$62,000 for different levels of support

Oracle Features

Oracle Management Server

Oracle Change Manager

Central administration, monitoring, and tuning of multiple databases


Schedule and share database tasks with other admins
Allows you to create a change plan and see the effects of your changes
before actually implementing them
Also shows any changes that cannot be applied

Administrative Alerts

Oracle will contact the admin by email or pager when an error


condition occurs
Can be scheduled to reduce false positives

More Oracle Features

Capacity Planning
Tracks usage patterns to help admins plan for upgrades
Feedback on CPU, disk and query performance

Query Optimizer
Oracle chooses the most efficient way to execute a SQL
statement
Analyzes tables and indexes to minimize the cost of the
transaction

MySQL Features

Easy to get started with


Many free GUI management tools like
PHPMyAdmin
Speed is emphasized over lesser used features
Uses very little overhead
MySQL uses just under 1MB of RAM on my laptop
My Oracle 9i installation uses 128MB while idle

More MySQL Features

Beginning to support advanced features


Stored Procedures, Triggers, Views in version 5
Select statements with sub-queries were introduced
in version 4
Transactional tables

Cascading updates and deletes


Available through the third-party InnoDB storage
engine

Migragtion from MySQL to Oracle

As your company grows Oracle may be a better fit


Migration tools are available (Oracle Migration
Kit)
Companies may use both Oracle and MySQL

Differences in syntax

http://troels.arvin.dk/db/rdbms/
Not all databases use the same SQL syntax
Example: Returning the first 5 rows of a query

MySQL

Select columns
FROM tablename
ORDER BY key ASC
LIMIT 5;

Oracle

Select * FROM (
SELECT columns
FROM tablename
ORDER BY key ASC
) WHERE ROWNUM <= 5;

Timestamps

MySQL
Create a field of type TIMESTAMP and enter an invalid date.
February 29 2003.

In this case

mysql> insert into tester values ('2003-02-29 00:05:00');


Query OK, 1 row affected (0.07 sec)
Notice that MySQL doesn't complain about the date.
Checking to see what MySQL enters you see that it just changed the date to
the first day in March.
mysql> select * from tester;
+----------------+
| time
|
+----------------+
| 20030301000500 |
+----------------+
1 row in set (0.00 sec)

Timestamps

Oracle
This will work,
INSERT INTO tablename (columnname)
VALUES (TIMESTAMP'2003-02-28
00:05:00')
while this will fail:
INSERT INTO tablename (columnname)
VALUES (TIMESTAMP'2003-02-29 00:05:00')

Concatenation

SQL Standard symbol for concat is ||


MySQL uses || as the OR operator
Uses concat(string1, string2)
More familiar to programmers
Breaks the standard

Oracle uses || for concat

Ex. string1 || string2

Which is better?

MySQL
For non mission-critical environments
Great for database enabled websites
Attractive price point

Oracle
Rock solid dependability, reliability, and features
Steep learning curve and expensive
Designed with the enterprise in mind

Вам также может понравиться