Great Templates

FEATURED WEB TEMPLATES

Amazon Books

Learn PHP

PHP Training
Zend Cert Training Zend Certified Engineer Zend PHP Pro

MySQL Database: Features Of MySQL

The following list describes some of the important Features of  MySQL Database Software.
  • Internals and Portability
    • Written in C and C++.
    • Tested with a broad range of different compilers.
    • Works on many different platforms.
    • Uses GNU Automake, Autoconf, and Libtool for portability.
    • APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available.
    • Fully multi-threaded using kernel threads. It can easily use multiple CPUs if they are available.
    • Provides transactional and non-transactional storage engines.
    • Uses very fast B-tree disk tables (MyISAM) with index compression.
    • Relatively easy to add another storage engine. This is useful if you want to add an SQL interface to an in-house database.
    • A very fast thread-based memory allocation system.
    • Very fast joins using an optimized one-sweep multi-join.
    • In-memory hash tables, which are used as temporary tables.
    • SQL functions are implemented using a highly optimized class library and should be as fast as possible. Usually there is no memory allocation at all after query initialization.
    • The MySQL code is tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a GPL tool
    • The server is available as a separate program for use in a client/server networked environment. It is also available as a library that can be embedded (linked) into standalone applications. Such applications can be used in isolation or in environments where no network is available.

     

  • Column Types
    • Many column types: signed/unsigned integers 1, 2, 3, 4, and 8 bytes long, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, and OpenGIS spatial types.
    • Fixed-length and variable-length records.

     

  • Statements and Functions
    • Full operator and function support in the SELECT and WHERE clauses of queries. For example:
      mysql> SELECT CONCAT(first_name, ' ', last_name)
      -> FROM citizen
      -> WHERE income/dependents > 10000 AND age > 30;
    • Full support for SQL GROUP BY and ORDER BY clauses. Support for group functions (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX(), MIN(), and GROUP_CONCAT()).
    • Support for LEFT OUTER JOIN and RIGHT OUTER JOIN with both standard SQL and ODBC syntax.
    • Support for aliases on tables and columns as required by standard SQL.
    • DELETE, INSERT, REPLACE, and UPDATE return the number of rows that were changed (affected). It is possible to return the number of rows matched instead by setting a flag when connecting to the server.
    • The MySQL-specific SHOW command can be used to retrieve information about databases, database engines, tables, and indexes. The EXPLAIN command can be used to determine how the optimizer resolves a query.
    • Function names do not clash with table or column names. For example, ABS is a valid column name. The only restriction is that for a function call, no spaces are allowed between the function name and the '(' that follows it.
    • You can mix tables from different databases in the same query (as of MySQL 3.22).

     

  • Security
    • A privilege and password system that is very flexible and secure, and that allows host-based verification. Passwords are secure because all password traffic is encrypted when you connect to a server.

     

  • Scalability and Limits
    • Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows.
    • Up to 64 indexes per table are allowed (32 before MySQL 4.1.2). Each index may consist of 1 to 16 columns or parts of columns. The maximum index width is 1000 bytes (500 before MySQL 4.1.2). An index may use a prefix of a column for CHAR, VARCHAR, BLOB, or TEXT column types.

     

  • Connectivity
    • Clients can connect to the MySQL server using TCP/IP sockets on any platform. On Windows systems in the NT family (NT, 2000, XP, or 2003), clients can connect using named pipes. On Unix systems, clients can connect using Unix domain socket files.
    • In MySQL versions 4.1 and higher, Windows servers also support shared-memory connections if started with the --shared-memory option. Clients can connect through shared memory by using the --protocol=memory option.
    • The Connector/ODBC (MyODBC) interface provides MySQL support for client programs that use ODBC (Open Database Connectivity) connections. For example, you can use MS Access to connect to your MySQL server. Clients can be run on Windows or Unix. MyODBC source is available. All ODBC 2.5 functions are supported, as are many others.
    • The Connector/J interface provides MySQL support for Java client programs that use JDBC connections. Clients can be run on Windows or Unix. Connector/J source is available.

     

  • Localization
    • The server can provide error messages to clients in many languages.
    • Full support for several different character sets, including latin1 (ISO-8859-1), german, big5, ujis, and more. For example, the Scandinavian characters 'â', 'ä' and 'ö' are allowed in table and column names. Unicode support is available as of MySQL 4.1.
    • All data is saved in the chosen character set. All comparisons for normal string columns are case-insensitive.
    • Sorting is done according to the chosen character set (using Swedish collation by default). It is possible to change this when the MySQL server is started. To see an example of very advanced sorting, look at the Czech sorting code. MySQL Server supports many different character sets that can be specified at compile time and runtime.

     

  • Clients and Tools
    • The MySQL server has built-in support for SQL statements to check, optimize, and repair tables. These statements are available from the command line through the mysqlcheck client. MySQL also includes myisamchk, a very fast command-line utility for performing these operations on MyISAM tables.
    • All MySQL programs can be invoked with the --help or -? options to obtain online assistance.

               

    The Size Of MySQL Tables

                                                                         MySQL 3.22 had a 4GB (4 gigabyte) limit on table size. With the MyISAM storage engine in MySQL 3.23, the maximum table size was increased to 8 million terabytes (2 ^ 63 bytes). With this larger allowed table size, the maximum effective table size for MySQL databases is usually determined by operating system constraints on file sizes, not by MySQL internal limits.

    The InnoDB storage engine maintains InnoDB tables within a tablespace that can be created from several files. This allows a table to exceed the maximum individual file size. The tablespace can include raw disk partitions, which allows extremely large tables. The maximum tablespace size is 64TB.

    The following table lists some examples of operating system file-size limits. This is only a rough guide and is not intended to be definitive. For the most up-to-date information, be sure to check the documentation specific to your operating system.

    Operating System File-size Limit
    Linux 2.2-Intel 32-bit 2GB (LFS: 4GB)
    Linux 2.4 (using ext3 filesystem) 4TB
    Solaris 9/10 16TB
    NetWare w/NSS filesystem 8TB
    win32 w/ FAT/FAT32 2GB/4GB
    win32 w/ NTFS 2TB (possibly larger)
    MacOS X w/ HFS+ 2TB

    On Linux 2.2, you can get MyISAM tables larger than 2GB in size by using the Large File Support (LFS) patch for the ext2 filesystem. On Linux 2.4, patches also exist for ReiserFS to get support for big files (up to 2TB). Most current Linux distributions are based on kernel 2.4 and include all the required LFS patches. With JFS and XFS, petabyte and larger files are possible on Linux. However, the maximum available file size still depends on several factors, one of them being the filesystem used to store MySQL tables.

    Support

                                           Do you think that we can improve this page "Features of MySQL", we welcome your valuable comments. This article "Features of MySQL" was prepared by Ahamed Ebrahim.


 


Learn PHP | Zend Certified Engineer | Zend PHP Pro | PHP Web Apps | Web Hosting Service | Low Cost Domain Names | Great Templates | Great Books | Testimonials | Tech.Articles | TOS | AUS | Home | Linux Apache MySQL PHP