Esta seção deve conter uma descrição técnica do pacote de
benchmarks do MySQL (e crash-me
), mas a
descrição ainda não está pronta. Atualmente, você pode ter
uma boa idéia do benchmark verificando os códigos e resultados
no diretório sql-bench
em qualquer
distribuição fonte do MySQL.
Este conjunto de benchmark pretende ser um benchmark que irá dizer a qualquer usuário que operações uma determinada implementação SQL irá realizar bem ou mal.
Note que este benchmark utiliza uma única thead, portanto ele mede o tempo mínimo para as operações realizadas. Planejamos adicionar vários testes multi-threaded no conjunto de benchmark no futuro.
A seguinte tabela mostra alguns resultados comparativos de benchmark para diversos servidores de bancos de dados quando acessados por meio do ODBC em uma máquina Windows NT 4.0.
Lendo 2000000 linhas por índice | Segundos | Segundos |
mysql | 367 | 249 |
mysql_odbc | 464 | |
db2_odbc | 1206 | |
informix_odbc | 121126 | |
ms-sql_odbc | 1634 | |
oracle_odbc | 20800 | |
solid_odbc | 877 | |
sybase_odbc | 17614 |
Inserindo 350768 linhas | Segundos | Segundos |
mysql | 381 | 206 |
mysql_odbc | 619 | |
db2_odbc | 3460 | |
informix_odbc | 2692 | |
ms-sql_odbc | 4012 | |
oracle_odbc | 11291 | |
solid_odbc | 1801 | |
sybase_odbc | 4802 |
Para os testes anteriores, o MySQL foi executado com um cache de índices de 8M.
Temos concentrado alguns resultados de benchmarks em http://www.mysql.com/information/benchmarks.html.
Perceba que a Oracle não está incluída porque eles solicitaram a remoção. Todos benchmarks Oracle devem ser aprovados pela Oracle! Acreditamos que os benchmarks da Oracle são MUITO tendecioso pois os benchmarks acima devem ser executados supostamente para uma instalação padrão para um único cliente.
Para executar a suite de benchmarks, as seguintes exigências devem ser satisfeitas:
O pacote de benchamark é fornecido com a distribuição fonte do MySQL, assim você deve ter uma distribuição fonte. Você também pode fazer um download de uma distribuição em http://www.mysql.com/downloads/, ou usar a árvore fonte de desenvolvimento atual. (see Secção 2.3.4, “Instalando pela árvore de fontes do desenvolvimento”).
Os scripts do benchmark são escritos em Perl e usam o módulo Perl DBI para acessar o servidor de banco de dados, assim o DBI deve estar instalado. Você também precisará do driver DBD espercífico do servidor para cada um dos servidores que você quer testar. Por exemplo, para testar o MySQL, PostgreSQL, e DB2, os módulos DBD::mysql, DBD::Pg e DBD::DB2 devem estar instalados.
O pacote de benchmark está localizado no diretório
sql-bench
da distribição fonte do MySQL.
Para executar o teste de benchmark, altera a localização
dentro daquele diretório e execute o script
run-all-tests
:
shell>cd sql-bench
shell>perl run-all-tests --server=server_name
server_name
é um dos servidores suportados.
Você pode obter uma lista de todos parâmetros e servidores
suportados executando run-all-tests --help
.
crash-me
tenta determinar quais recursos um
banco de dados suporta e quais suas capacidades e limitações
atuais para a execução de consultas. Por exemplo, ele
determina:
Quais tipos de colunas são suportados
Quantos índices são suportados
Quais funções são suportadas
Qual o tamanho máximo de uma query
Qual o tamanho máximo de um registro do tipo
VARCHAR
Podemos encontrar o resultado do crash-me
para diversos bancos de dados em
http://www.mysql.com/information/crash-me.php.
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.