MySQL

From Bauman National Library
This page was last modified on 25 June 2016, at 19:24.
MySQL
220px
Developer(s)

MySQL AB (before 2008), Sun Microsystems (2008-2010),

Oracle (since 2010)
Initial release May 23, 1995 (1995-05-23)
Repository {{#property:P1324}}
Written in C and C++
Operating system Crossplatform
Type RDBMS (embedded)
License GNU GPL[1]
Website www.mysql.com

MySQL — free relational database control system.

General

MySQL is a client-server system for controlling multithread SQL-server, that provides support of various computational database machines, various client-side applications and libraries, tools for administrations and wide range of API.

Capabilities[2]

Characteristics and portability

  • Written on C and C++. Tested on various compilers.
  • Cross-platform.
  • API for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby and Tcl.
  • Multithreading takes advantages of core threds, i.e. MySQL able to work with multiple processors.
  • Very fast tables based on B-trees with index compression.
  • Very fast memory allocation based on thread system.
  • Very fast connection based on one-sweep multi-join
  • Lightning fast SQL-methods.
  • MySQL-code tested with Purify and Valgrind

Column types

  • Large amount: integer signed and unsigned, 1/2/3/4/8 byte-length, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET and ENUM.
  • Constant and variable length
  • All columns have default values. INSERT provide ability to insert subset of columns.

Commands and functions

  • Full support of methods and functions in SELECT- and WHERE- parts of request. For example:
mysql> SELECT CONCAT(first_name, " ", last_name)
     -> FROM tbl_name
     -> WHERE income/dependents > 10000 AND age > 30;
  • Full support of SQL GROUP BY and ORDER BY with SQL-expressions.
  • LEFT OUTER JOIN and RIGHT OUTER JOIN support with ANSI SQL and ODBC syntax.
  • Aliases with respect to SQL92
  • DELETE, INSERT, REPLACE, and UPDATE returns number of strings, that were changed. You can set it to return number of matched strings.
  • Function names and table names are not conflicting
  • In one request you can call different databases (since ver. 3.22).

Security

  • System based on privileges and passwords. This provides flexibility and security with ability of remote verification. Passwords are encrypted.

Scalability and constraints

  • Handle gigantic databases. (50 millions rows)
  • Each table allowed to have 32 indexes. Each index contains from 1 to 16 columns. Maximum width of index: 500 bits. CHAR and VARCHAR prefixes are allowed.

Connection

  • TCP/IP, unix sockets, named channels.
  • Open-DataBase-Connectivity support.

Links

References

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />
  1. "GNU GPL". 
  2. Основные возможности MySQL http://www.mysql.ru/docs/man/Features.html