MySQL Introduction

A look at the MySQL database—where it's been, where it is now, and where it's going.
MySQL User Base

As MySQL has about 50 mirrors over the world, and we don't get download statistics from them, it's hard to tell how many MySQL installations are out there.

The WWW and FTP log at gives us the information shown in Tables 3 and 4; all counts are based on the number of distinct IPs.

Table 3.

Table 4.

In the Linux community, many sites use MySQL as a back end for dynamic web pages. Among those are, and

On, every page does somewhere between 10 and 20 queries to the database. And does anywhere between 500K and 800K page views per day. They run MySQL on its own server, a dual Xeon system with huge amounts of RAM and hard-disk space.

While writing this, I asked Linux Journal what they use as a web back end, and learned they also use MySQL. Among the awards we have been given, we highly value the “Most Used Database” 1998 award we got from Linux Journal's readers.

Where MySQL Is Today
  • Client/server

  • Multi-threaded, multi-user and very fast

  • APIs to many different languages

  • A good, free ODBC driver

  • Very portable

  • Many different column types which support all ANSI 92 and all ODBC 2.50 types as well as some new ones

  • Support for almost all ODBC 3.0 and SQL ANSI92 functions

  • Full support for SQL GROUP BY and ORDER BY clauses; support for group functions (COUNT, AVG, STD, SUM, MAX and MIN)

  • Ability to mix tables from different databases in the same query

  • Very flexible privilege system where privilege is based on host and user

  • Support for LEFT OUTER JOIN with both ANSI SQL and ODBC syntax

  • Fixed-length and variable-length records

  • Handles large databases; at TcX, we are using MySQL with some databases that contain over 50 million records.

  • Very robust with no memory leaks; all reported memory leaks have been in non-MySQL libraries, most notably some versions of glibc.

  • Ability to configure many different character sets, e.g., Japanese/Chinese

  • Error messages available in many languages

  • Many utilities and much contributed software

  • MySQL is extensively documented. Most questions can be resolved by reading the MySQL manual. We try to document everything to avoid getting too many questions on the MySQL mailing lists. The current manual has recently been improved considerably, thanks to the great work done by Paul DuBois.

  • Many small, extremely useful extensions that help you get your work done

New in the Latest Development Version (3.23)
  • Binary portable table format—it is now possible to copy MySQL table files between different architectures.

  • More and longer indexes—maximum is 32 which can be 500 bytes long (16/128 previously).

  • Even better index compression—it is faster and uses even less disk space.

  • Indexes on BLOB/TEXT columns just like a CHAR column.

  • Support for tables greater than 4GB on file systems which support files that big. The new limit is about 9 million terrabytes.

  • Has better fragmentation handling for the dynamic row format.

  • Added in-memory tables with hashed keys—an extremely fast way to have lookup tables.

  • Allows true floating-point columns with values such as 1.0E+10.

  • Includes example C code for a procedure that analyses the result from a SELECT.

  • Faster SELECT DISTINCT handling has been added.

  • Added much useful information in SHOW TABLE STATUS.

  • CREATE TABLE (...) SELECT * from a,c where something. This creates a table using data from a SELECT in one step. The data types and field names are automatically generated from the SELECT.

  • Removed the old limitation with big GROUP BY queries (with SQL_BIG_TABLES=0) that resulted in a “table is full” error.

  • Loads BLOBS from files with the LOAD_FILE function.

  • COUNT(DISTINCT) is supported.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Anonymous's picture


Re: MySQL Introduction

Anonymous's picture

This articels is useful for plaing to use MySql database.