[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MySQL (an alternative for mSQL) basic information
The dinner was great and as I noticed, at least two of the discussions at least partially dealt with what is the best low-budget SQL server for Linux. The main dilema was between mSQL and Postgres 95. I have to things to note:
1. There is also a free (and limited) version of Ingres for Linux and it is available at :
{http|ftp}://sunsite.unc.edu/pub/Linux/apps/database/ingres/ as source and as an ELF binary.
I believe that the guys who worked on Ingres for some university, eventually left the university and started developing a better and commercial version of it.
2. There is now a freeware alternative to mSQL (which is shareware as you may well be aware) called MySQL.
I have compiled, installed it and used it for a couple of weeks on my computer at home and so here's a quick introduction:
MySQL's home page is http://www.tcx.se and you can download it from there, or from listed mirrors, as either source or Linux binary. (there is also a solaris binary available). MySQL is completely free, even for commercial use, but if you'd like to get support for it, other than the documents which is availble on line, you'll have to pay. The main features of MySQL are the following
1. MySQL support a broader subset of the ANSI SQL standard than mSQL. It supports GROUP BY and HAVING clauses, a larger number of built-in functions, INSERT INTO mytable SELECT.. queries and SELECT ... INTO queries, BLOBs as large as 16 MB and more. Moreover, custom built-in functions can be quite easily added, and there is a small document that details that process and comes within the distribution. The server have to be recompiled for them to be available. (no DLLs are supported for the moment)
2. MySQL is multi-threaded while mSQL is multi-processed. I don't know if it makes much difference in speed, except maybe for bookmark sharing, smaller locking, etc.
3. MySQL's comes with a C or Perl API which is a superset of the mSQL API. The C functions however begin with the mysql prefix rather than the msql prefix and use a different handle format. The MySQL FAQ contains guidelines for converting C programs from mSQL into MySQL.
I personally never used mSQL's C API directly but rather the Msql.pm perl module, and in perl you are basically only required to change one letter.
Aside from those, there is also a JDBC interface, a DBD driver, something for python, and maybe Tcl plus a Win32 ODBC interface. The C API may be compiled and utilized under Win32 too, yet there is only a UNIX version of MySQL as of yet.
4. MySQL is supposed to handle pretty large databases rather smoothly. The authors claimed it properly worked with tables of 10 million records.
5. Possible downsides: The MySQL server is much larger in size than mSQL (3.3 Megs uncompiled or something like that). MySQL uses a completely different protocol than mSQL, so it is impossible to use the
mSQL clients which were already compiled on the new server.
BTW, the MySQL binaries are available as RPMs in ftp.linux.org.il and other RedHat mirrors.
Hope that was informative.
Shlomi Fish