Otimizou o desempenho das configurações rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries e sslMode do Java JDBC.
Documentação de Todas as Propriedades de Configuração do JDBC:O login do hiperlink está visível.
Revisar:
allowPublicKeyRetrieval
Ao usar o MySQL 8.0, após reiniciar o app, você é solicitado com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: A recuperação de chave pública não é permitida
A solução mais fácil é adicioná-lo após a conexãoallowPublicKeyRetrieval=true
Se o usuário usar autenticação sha256_password, a senha deve ser protegida durante o trânsito usando o protocolo TLS, mas se a chave pública RSA não estiver disponível, a chave pública fornecida pelo servidor pode ser usada; A chave pública RSA do servidor pode ser especificada na conexão via ServerRSAPublicKeyFile, ou o parâmetro AllowPublicKeyRetrieval=True para permitir que o cliente obtenha a chave pública do servidor; No entanto, deve-se notar que AllowPublicKeyRetrieval=True pode fazer com que agentes maliciosos obtenham senhas em texto simples por meio de ataques man-in-the-middle (MITM), portanto ela é desativada por padrão e deve ser explicitamente habilitada.
rewriteBatchedStatements
Para alcançar inserção em lote de alto desempenho, adicionando o parâmetro rewriteBatchedStatements à URL da conexão JDBC no MySQL e garantindo que a versão 5.1.13 ou posterior do driver seja garantida. Por padrão, o driver JDBC do MySQL ignora a instrução executeBatch(), divide um conjunto de instruções SQL que esperamos executar em lotes e as envia para o banco de dados MySQL uma a uma. Somente definindo o parâmetro rewriteBatchedStatements como true o driver executa o SQL em lotes Essa opção também é válida para INSERIR/ATUALIZAR/EXCLUIR
Por padrão, o driver MySQL Jdbc ignora a instrução executeBatch(), separa um conjunto de instruções SQL que esperamos executar em lotes e as envia para o banco de dados MySQL uma a uma, o que causa baixo desempenho diretamente.
Somente configurando o parâmetro rewriteBatchedStatements para true, o driver ajudará você a executar SQL em massa (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Permissão para usar'; 'Separa múltiplas consultas (verdadeiro/falso) em uma única instrução. O valor padrão é "false", o que não afeta os métodos addBatch() e executeBatch(), que dependem do rewriteBatchStatements.
Quando o MySQL se conectar a um banco de dados, adicione a instrução:allowMultiQueries=trueO papel de ":
1. Você pode carregar um ponto e vírgula após a instrução SQL para realizar a execução em múltiplas sentenças. 2. O processamento em lote pode ser realizado e múltiplas instruções SQL podem ser emitidas ao mesmo tempo.
sslMode
Por padrão, as conexões de rede são criptografadas por SSL; Essa propriedade permite desligar a conexão segura ou selecionar um nível diferente de segurança. Os seguintes valores são permitidos: "DESABILITADO" - uma conexão não criptografada é estabelecida; "PREFERIDO" - (padrão) Se o servidor habilitar conexões criptografadas, uma conexão criptografada é estabelecida, caso contrário, ela volta a ser uma conexão não criptografada; "OBRIGATÓRIO" - Estabelecer uma conexão segura se o servidor a tiver habilitado, caso contrário falha; "VERIFY_CA" - Semelhante a "OBRIGATÓRIO", mas adicionalmente valida o certificado TLS do servidor contra o certificado da autoridade certificadora (CA) configurada; "VERIFY_IDENTITY" - como "VERIFY_CA",
Esse atributo substitui os antigos atributos obsoletos "useSSL", "requireSSL" e "verifyServerCertificate", que ainda são aceitos, mas convertidos para o valor de "sslMode" se "sslMode" não estiver explicitamente definido: "useSSL=false" é convertido em "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} é traduzido como "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} é traduzido como "sslMode=REQUIRED"; {"useSSL=true" E "verifyServerCertificate=true"} é traduzido como "A configuração padrão para "sslMode" é "PREFERRED", que é equivalente às configurações tradicionais "useSSL=true", "requireSSL=false" e "verifyServerCertificate=false", que é a mesma do Connector/ As configurações padrão para J 8.0.12 e versões anteriores são diferentes em alguns casos. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas. A configuração padrão para "sslMode" é "PREFERRED", que é equivalente às configurações tradicionais de "useSSL=true", "requireSSL=false" e "verifyServerCertificate=false", que é diferente da configuração padrão para Connector/ J 8.0.12 e anteriores em alguns casos. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas. Em alguns casos, é 12 ou antes. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas. Em alguns casos, é 12 ou antes. Aplicações que continuam usando os atributos antigos e dependem de seus antigos padrões devem ser revisadas.
Se "sslMode" estiver explicitamente definido, a propriedade antiga é ignorada. Se "sslMode" ou "useSSL" não estiverem explicitamente definidos, a configuração padrão "sslMode=PREFERRED" é aplicada.
Configurações do JDBC para desligar conexões seguras:sslmode=desativado
|