Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 52055|Resposta: 5

[Fonte] .NET/C# Otimizou o desempenho do SslMode para bancos de dados MySQL

[Copiar link]
Publicado em 18/06/2021 09:41:15 | | | |
SSL (Secure Socket Layer) utiliza mecanismos de criptografia, autenticação e verificação de integridade de mensagens de dados para fornecer garantia de segurança para protocolos de camada de aplicação baseados em conexões confiáveis como TCP. Se a transmissão do usuário não for via SSL, então os dados são transmitidos em texto simples na rede, o que abre oportunidades para pessoas com segundas intenções. Portanto, muitos sites grandes agora possuem a função SSL ativada. Da mesma forma, em nosso banco de dados, se o cliente se conecta ao servidor para obter dados em vez de usar uma conexão SSL, os dados podem ser roubados durante a transmissão.

As principais funções fornecidas pelo protocolo SSL são:

1. Confidencialidade da transmissão de dados: Os dados transmitidos são criptografados usando um algoritmo de chave simétrica.
2. Mecanismo de autenticação: Com base no certificado, o servidor e o cliente são autenticados usando métodos de assinatura digital, onde a autenticação do cliente é opcional.
3. Verificação da integridade das mensagens: Algoritmos MAC são usados para verificar a integridade das mensagens durante a transmissão de mensagens.

Ao usar .NET/C# para operar um banco de dados MySQL,O valor padrão para o Modo Ssl é Preferencial, se o servidor suportar, use SSL.

O login do hiperlink está visível.



Usando o método padrão, no caso de um grande número de concorrências, o erro pode ser o seguinte:

Mensagem em inglês: Erro de abertura de conexão. A autenticação para o host '192.168.1.100' para o usuário 'itsvse' usando o método 'mysql_native_password' falhou com mensagem: A leitura do fluxo falhou.


Erro de abertura de conexão. erro ao conectar: Tempo expirou.  O período de tempo expirou antes de obter uma conexão da piscina.  Isso pode ter ocorrido porque todas as conexões agrupadas estavam em uso e o tamanho máximo do pool foi alcançado.


O uso de SSL garante a segurança da transmissão de dados, mas também reduz a eficiência da consulta e execução, aumentando a pressão sobre o banco de dados e os programas. Como nosso banco de dados está em um ambiente de rede privada, ele é relativamente muito seguro e não há necessidade de criptografia de transmissão, então podemos melhorar a eficiência e o desempenho sem criptografia SSL.

Comparação de desempenho antes e depois do SSL (QPS):O login do hiperlink está visível.



A partir dos dados de teste, pode-se constatar que, após ativar o SSL, o QPS do banco de dados é reduzido em cerca de 23% em média, o que afeta relativamente o desempenho. Do ponto de vista da implementação de SSL, é necessário apertar mãos, criptografar, descriptografar e realizar outras operações ao estabelecer uma conexão. Portanto, o tempo gasto está basicamente na fase de conexão, o que pode causar maior perda de desempenho para aplicações que usam links curtos, como o desenvolvimento em PHP. No entanto, pode ser muito melhor se você usar pools de conexão ou conexões longas.

Para melhorar o desempenho, modifique a string de conexão da seguinte forma:

(Fim)




Anterior:.NET/C# define o número mínimo de threads no ThreadPool.SetMinThreads para melhorar o desempenho
Próximo:O MySQL determina se uma tabela ou campo existe ao adicionar uma nova tabela
 Senhorio| Publicado em 11/02/2022 11:33:08 |
Opções de String de Conexão MySQL .NET:https://mysqlconnector.net/connection-options/
 Senhorio| Publicado em 11/02/2022 13:23:13 |
Propriedades das strings JDBC em Java

Os drivers 5.1 são useSSL e requireSSL
https://dev.mysql.com/doc/connec ... props-security.html

8.0 com sslMode
https://dev.mysql.com/doc/connec ... props-security.html

Desative SSL e defina: sslmode=desabilitado
 Senhorio| Publicado em 11/02/2022 14:04:56 |
RewriteBatchedStatements do Java JDBC, allowPublicKeyRetrieval...
https://www.itsvse.com/thread-10252-1-1.html
Publicado em 11/04/2022 15:09:04 |
 Senhorio| Publicado em 23/08/2024 09:56:15 |
.NET/C# usa o SqlConnectionStringBuilder para comparar conexões de banco de dados
https://www.itsvse.com/thread-10625-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com