Desempenho das instruções do MySQL Insert em Java: Instruções preparadas em modo batch versus inserção única com múltiplos valores
Eu estou projetando umMySQL
banco de dados que precisa lidar com cerca de 600 inserções de linha por segundo em várias tabelas InnoDB. Minha implementação atual usa instruções preparadas em lote. No entanto, escrevendo para oMySQL
gargalos do banco de dados e o tamanho da minha fila aumenta com o tempo.
A implementação está escrita em Java, não sei a versão off hand. UsaMySQL
'sConector Java. Eu preciso olhar para mudar paraJDBC
amanhã. Estou assumindo que estes são dois pacotes de conectores diferentes.
Eu li os seguintes tópicos sobre o problema:
Otimizando inserções do MySQL para manipular um fluxo de dadosMyISAM versus InnoDBInserindo dados binários no MySQL (sem PreparedStatement)e a partir do site mysql:
http://dev.mysql.com/doc/refman/5.0/en/insert-speed.htmlMinhas perguntas são:
Alguém tem conselhos ou experiência em diferenças de desempenho usando INSERTs com instruções preparadas no modo em lote vs. usando uma únicaINSERT
instrução com vários VALUEs.
Quais são as diferenças de desempenho entre oMySQL
Conector Java vs.JDBC
. Eu deveria estar usando um ou outro?
As tabelas são para propósitos de arquivamento e verão ~ 90% de gravação para ~ 10% de leitura (talvez até menos). Eu estou usando o InnoDB. Esta é a escolha certa sobre o MyISAM?
Agradeço antecipadamente por sua ajuda.