この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 52055|答える: 5

[出典] .NET/C# MySQLデータベース向けにSslModeのパフォーマンスを最適化

[リンクをコピー]
掲載地 2021/06/18 9:41:15 | | | |
SSL(Secure Socket Layer)は、データ暗号化、認証、メッセージ整合性検証機構を用いて、TCPのような信頼性の高い接続に基づくアプリケーション層プロトコルのセキュリティ保証を提供します。 ユーザーの送信がSSLでなければ、データはネットワーク上で平文で送信されるため、裏の目的を持つ人々にチャンスが生まれます。 そのため、多くの大規模ウェブサイトではSSL機能が有効になっています。 同様に、当社のデータベースでは、クライアントがSSL接続ではなくサーバーに接続してデータを取得すると、送信中にデータが盗まれる可能性があります。

SSLプロトコルが提供する主な機能は以下の通りです:

1. データ伝送の機密性:送信されるデータは対称鍵アルゴリズムで暗号化されます。
2. 認証メカニズム:証明書に基づいて、サーバーとクライアントはデジタル署名方式で認証され、クライアントの認証は任意です。
3. メッセージの整合性検証:MACアルゴリズムはメッセージ送信中のメッセージの整合性を検証するために用いられます。

.NET/C#を使ってMySQLデータベースを運用する場合、SslModeのデフォルト値は「Preferred(好ましい)」ですサーバーが対応しているならSSLを使いましょう。

ハイパーリンクのログインが見えます。



デフォルトの方法では、多数の同時実行がある場合、誤差は以下のようになります。

英語メッセージ:接続オープンエラー。 ホストのホスト「192.168.1.1.100」への認証は、ユーザー「itsvse」に対してメソッド「mysql_native_password」を用いた際に失敗しました。メッセージは「ストリームからの読み込みに失敗しました」と表示されました。


接続オープンエラー。 接続エラー:タイムアウトが終了しました。  タイムアウト期間はプールから接続を得る前に経過しました。  これは、すべてのプール接続が使用中で最大プールサイズに達したことが原因かもしれません。


SSLを使用することでデータ伝送のセキュリティは確保されますが、クエリや実行の効率が低下し、データベースやプログラムへの負荷が増します。 私たちのデータベースはプライベートネットワーク環境にあるため、比較的非常に安全であり、送信暗号化が不要なので、SSL暗号化なしで効率と性能を向上させることができます。

SSL性能比較前後(QPS):ハイパーリンクのログインが見えます。



テストデータから、SSLを有効にした後、データベースQPSは平均して約23%減少し、パフォーマンスに相対的に影響を与えていることがわかります。 SSL実装の観点からは、接続確立時に握手、暗号化、復号などの操作が必要です。 したがって、この時間は基本的に接続段階にあり、PHP開発のように短いリンクを使うアプリケーションではパフォーマンス損失が大きくなる可能性があります。 ただし、接続プールや長い接続を使う方がずっと良いかもしれません。

性能を向上させるために、接続文字列を以下のように修正してください:

(終わり)




先の:.NET/C# は ThreadPool.SetMinThreads の最小スレッド数を設定し、パフォーマンス向上のために使います
次に:MySQLは新しいテーブルを追加する際にテーブルやフィールドの存在を判断します
 地主| 掲載地 2022/02/11 11:33:08 |
MySQL .NET 接続文字列のオプション:https://mysqlconnector.net/connection-options/
 地主| 掲載地 2022/02/11 13:23:13 |
Java JDBC文字列プロパティ

5.1のドライバーはuseSSLで、必須SSLです
https://dev.mysql.com/doc/connec ... props-security.html

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

SSLをオフにして、sslmode=disabledを設定してください
 地主| 掲載地 2022/02/11 14:04:56 |
Java JDBCのrewriteBatchedStatements, allowPublicKeyRetrieval...
https://www.itsvse.com/thread-10252-1-1.html
掲載地 2022/04/11 15:09:04 |
 地主| 掲載地 2024/08/23 9:56:15 |
.NET/C#はデータベース接続を比較するためにSqlConnectionStringBuilderを使用します
https://www.itsvse.com/thread-10625-1-1.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com