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.