As Principais Características do MySQL

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.

See Secção 12.2, “Suporte ODBC ao MySQL”.


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.

Extraido do Manual de Referência do MySQL 4.1