O Pacote de Benchmark do MariaDB
Esta seção deve conter uma descrição técnica do pacote de benchmarks do MariaDB (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 MariaDB.
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 MariaDB 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 MariaDB, 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 "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 MariaDB. 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.