A seguinte lista descreve algumas das características mais
        importantes do Progrma de Banco de Dados
        MySQL. See Secção 1.5.1, “MySQL 4.0 in a Nutshell”.
      
Portabilidade e
Escrito em C e C++.
Testado com um amplo faixa de compiladores diferentes.
Funciona em diversas plataformas. See Secção 2.2.3, “Sistemas Operacionais suportados pelo MySQL”.
Utiliza o GNU Automake, Autoconf, e Libtool para portabilidade.
APIs para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby e Tcl estão disponíveis. See Capítulo 12, Ferramentas de Clientes e APIs do MySQL.
Suporte total a multi-threads usando threads diretamente no kernel. Isto significa que se pode facilmente usar múltiplas CPUs, se disponível.
Fornece mecanismos de armazenamento transacional e não transacional.
                  Tabelas em disco (MyISAM) baseadas
                  em árvores-B extremamente rápidas com compressão de
                  índices.
                
É relativamente fácil se adicionar outro mecanismo de armazenamento. Isto é útil se você quiser adicionar uma interface SQL a um banco de dados caseiro.
Um sistema de alocação de memória muito rápido e baseado em processo(thread).
Joins muito rápidas usando uma multi-join de leitura única otimizada.
Tabelas hash em memória que são usadas como tabelas temporárias.
Funções SQL são implementadas por meio de uma biblioteca de classes altamente otimizada e com o máximo de performance. Geralmente não há nenhuma alocação de memória depois da inicialização da pesquisa.
                  O código do MySQL foi testado com
                  Purify (um detector comercial de falhas de memória) e
                  também com o Valgrind, uma ferramenta
                  GPL
                  (http://developer.kde.org/~sewardj/).
                
Disponível como versão cliente/servidor ou embutida(ligada).
Tipos de Coluna
                  Aceita diversos tipos de campos: tipos inteiros de 1,
                  2, 3, 4 e 8 bytes com e sem sinal,
                  FLOAT, DOUBLE,
                  CHAR, VARCHAR,
                  TEXT, BLOB,
                  DATE, TIME,
                  DATETIME,
                  TIMESTAMP, YEAR,
                  SET e ENUM. See
                  Secção 6.2, “Tipos de Campos”.
                
Registros de tamanhos fixos ou variáveis.
Comandos e Funções
                  Completo suporte a operadores e funções nas partes
                  SELECT e WHERE
                  das consultas. Por exemplo:
                
mysql>SELECT CONCAT(first_name, " ", last_name)->FROM nome_tbl->WHERE income/dependents > 10000 AND age > 30;
                  Suporte pleno às cláusulas SQL GROUP
                  BY e ORDER BY. Suporte
                  para funções de agrupamento
                  (COUNT(), COUNT(DISTINCT
                  ...), AVG(),
                  STD(), SUM(),
                  MAX() e MIN()).
                
                  Suporte para LEFT OUTER JOIN e
                  RIGHT OUTER JOIN com as sintaxes
                  SQL e ODBC.
                
Alias em tabelas e colunas são disponíveis como definidos no padrão SQL92.
                  DELETE, INSERT,
                  REPLACE, e
                  UPDATE retornam o número de linhas
                  que foram alteradas (afetadas). É possível retornar
                  o número de linhas com padrão coincidentes
                  configurando um parâmetro quando estiver conectando
                  ao servidor.
                
                  O comando específico do MySQL
                  SHOW pode ser usado para devolver
                  informações sobre bancos de dados, tabelas e
                  índices. O comando EXPLAIN pode
                  ser usado para determinar como o otimizador resolve a
                  consulta.
                
                  Nomes de funções não conflitam com nomes de tabelas
                  ou colunas. Por exemplo, ABS é um
                  nome de campo válido. A única restrição é que
                  para uma chamada de função, espaços não são
                  permitidos entre o nome da função e o
                  ‘(’ que o segue. See
                  Secção 6.1.7, “Tratamento de Palavras Reservadas no MySQL”.
                
Você pode misturar tabelas de bancos de dados diferentes na mesma pesquisa (como na versão 3.22).
Segurança
Um sistema de privilégios e senhas que é muito flexível, seguro e que permite verificação baseada em estações/máquinas. Senhas são seguras porque todo o tráfico de senhas é criptografado quando você se conecta ao servidor.
Escalabilidade e limites
                  Lida com bancos de dados enormes. Usamos o
                  Servidor MySQL com bancos de dados
                  que contém 50.000.000 registros e sabemos de
                  usuários que usam o Servidor MySQL
                  com 60.000 tabelas e aproximadamente 5.000.000.000 de
                  linhas.
                
                  São permitidos até 32 índices por tabela. Cada
                  índice pode ser composto de 1 a 16 colunas ou partes
                  de colunas. O tamanho máximo do índice é de 500
                  bytes (isto pode ser alterado na compilação do
                  MySQL). Um índice pode usar o prefixo de campo com um
                  tipo CHAR ou
                  VARCHAR.
                
Conectividade
Os clientes podem se conectar ao servidor MySQL usando sockets TCP/IP, em qualquer plataforma. No sistema Windows na família NT (NT, 2000 ou XP), os clientes podem se conectar usando named pipes. No sistema Unix, os clientes podem se conectar usando arquivos sockets.
                  A interface Connector/ODBC fornece ao MySQL suporte a
                  progras clientes que usam conexão ODBC
                  (Open-DataBase-Connectivity). Por exemplo, você pode
                  usar o MS Access para conectar ao seu servidor
                  MySQL. Os clientes podem ser
                  executados no Windows ou Unix. O fonte do
                  Connector/ODBC está disponível. Todas as funções
                  ODBC são suportadas, assim como muitas outras.
                
Localização
O servidor pode apresentar mensagem de erros aos clientes em várias línguas. See Secção 4.7.2, “Mensagens de Erros em Outras Línguas”.
                  Suporte total para vários conjuntos de caracteres,
                  que incluem ISO-8859-1 (Latin1), big5, ujis e mais.
                  Por exemplo, os caracteres Escandinavos
                  ‘â’,
                  ‘ä’,
                  ‘ö’ são permitidos em
                  nomes de tabelas e colunas.
                
Todos os dados são armazenados no conjunto de caracteres escolhido. Todas as comparações em colunas de seqüências caso-insensitivo.
                  A ordenação é feita de acordo com o conjunto de
                  caracteres escolhido (o modo sueco por padrão). É
                  possível alterar isso quando o servidor
                  MySQL é iniciado. Para ver um
                  exemplo de várias ordenações avançadas, procure
                  pelo código de ordenação Tcheca. O
                  Servidor MySQL suporta diversos
                  conjuntos de caracteres que podem ser especificados em
                  tempo de compilação e execução.
                
Clientes e Ferramentas
                  O servidor MySQL foi construído com suporte para
                  instruções SQL que verificam, otimizam e reparam
                  tabelas. Estas instruções estão disponíveis a
                  partir da linha de comando por meio do cliente
                  myisamcheck, O MySQL inclui também
                  o myisamchk, um utilitário muito
                  rápido para realizar estas operações em tabelas
                  MyISAM. See
                  Capítulo 4, Administração do Bancos de Dados MySQL.
                
                  Todos os programas MySQL podem ser
                  chamados com as opções --help ou
                  -? para obter ajuda online.
                
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

