Go to the first, previous, next, last section, table of contents.


How does MySQL compare with other databases

How does MySQL compare with mSQL

This section has been written by the MySQL developers so it should be read with that in mind. But there are NO factual errors that we know of.

For a list of all supported limits, functions and types see the
crash-me web page.

Performance.
For a true comparison of speed use the growing MySQL benchmarka suite. See section MySQL benchmark suite MySQL is significantly quicker on complex selects. mSQL can get patalogically slow if you chage the order of tables in a select. In the benchmark suite a time more that 15000 times slower than MySQL was seen. Because of no thread creation overhead, small parser, few features and simple security mSQL should be quicker at: As these operations are so simple, it is hard to be better at them when you have a higher start overhead. After the connection is established MySQL should perform much better. MySQL on the other hand is much faster than mSQL and most other SQL implementions on the following:
SQL Features
  1. GROUP BY & HAVING MySQL supports a full GROUP BY with both HAVING and the following functions count(), avg(), min(), max(), sum() and std(). min() and max() may take string arguments. count(*) is optimised to return very quickly if this is the only thing in the query. mSQL does not support GROUP BY at all.
  2. INSERT & UPDATE with calculations. MySQL can do calculations in a INSERT or UPDATE.
    UPDATE SET x=x*10+y WHERE x<20;
    
  3. Aliasing MySQL has column aliasing.
  4. Qualifying column names. If a column name is unique you do not have to use the full qualifier.
  5. SELECT with functions MySQL has too many functions to list here. See section Functions for use in SELECT and WHERE clauses.
Disk space efficiency
That is, how small can you make your tables. MySQL has very precise types so that use can create tables that take very little space. An example of a useful MySQL datatype is the mediumint that is 3 bytes long. If you have 10.000.0000 records even saving one byte per record is very important. Since mSQL2 only has 4 types (char,text,int,real) it is hard to get small tables.
Stability
This is harder to judge objectively. For MySQL stability see See section How stable is MySQL?. We have no experience with mSQL stability so we can not say anything about that.
Price
Another important issue is of course the license. MySQL has a more flexible license than mSQL and is also cheaper than mSQL. Remember to at least consider paying for a license or email support for whatever product you choose to use. If you sell a product with MySQL you are of course required to get a license for this.
Perl interfaces
MySQL has basically the same interfaces to perl as mSQL with some added features.
JDBC (Java)
MySQL has a Java interface by GWE technologies that has been improved by Xiaokun Kelvin ZHU. We know that mSQL has one but we have too little experience with it to compare.
Rate of development
MySQL has a very small team of developers, but we are quite use to coding C and C++ very rapidly. Since threads, functions, group by and so on are still not implemented in mSQL, it has a lot of catching up to do. To get some perspective on this you can view the mSQL HISTORY file for the last year and compare it with the News section. See section MySQL change history. It should be pretty obvious which one has developed most rapidly.
Utility programs
Both mSQL and MySQL has a lot of interesting third-party tools. Since it is very easy to port upwars (mSQL -> MySQL) MySQL has almost all interesting mSQL applications. MySQL comes with a simple msql2mysql program that fixes the different spelling of the most used functions. A conversion of a client program from mSQL to mySQL usually takes a couple of minutes.

How about mSQL tools like msql-tcl, msqljava?

According to our experience it would just take a few hours to convert a tool using the mSQL C API to the MySQL C API.

The procedure:

  1. Run the shell script msql2mysql on the source. This needs the binary program replace, which is distributed with MySQL.
  2. Compile
  3. Fix all compiler errors:

Differences between the MySQL and mSQL C API's.

How different from mSQL are the MySQL client/server communications protocols?

There are enough differences that it is impossible (at least not easy) to support both.

The greatest differences between MySQL and mSQL are:

What are the differences in the SQL syntax between MySQL & mSQL 2.0?

How does MySQL compare with PostgreSQL

For a list of all supported limits, functions and types see the crash-me web page.

PostgreSQL has some more advanced features like user-defined types, triggers, rules and transactions. But it lacks a lot of the standard types and functions from ANSI SQL and ODBC. See the crash-me web page for a complete list of supported/unsupported types/function.

Normally PostgreSQL is much slower than MySQL. See section MySQL benchmark suite.


Go to the first, previous, next, last section, table of contents.


Casa de Bender