ストアドプロシージャとコーディング MySQL ストアド プロシージャでは、テーブルとデータのエンコーディングがデータベースとストアド プロシージャのデフォルトのエンコーディングと異なる場合、MySQL は条件列のデータに対して対応するエンコーディング変換を実行するため、SQL はインデックスを使用しない場合があります。たとえば、次のテーブル データは latin1 であり、MySQL パーサーは何らかの変換を実行します。 ... WHERE namecolumn = NAME_CONST('in_namecolumn',_utf8'MP201022' COLLATE 'utf8_general_ci') ストアド プロシージャで対応するエンコード変換 (通常は varchar/char フィールドの変更) を実行すると、インデックスを正常に使用できるようになります。詳細については、mysql-slow-when-run-as-stored-proc を参照してください。 ... WHERE namecolumn = convert(in_namecolumn using latin1) collate latin1_swedish_ci SQLを実行するためのJDBC直接接続 jdbc 接続を介して SQL を実行するときに、エンコーディングが一貫していない場合は、次に示すように、varchar および char 型も変換する必要があります。 ... WHERE namecolumn = convert(in_namecolumn using latin1) collate latin1_swedish_ci そうしないと、次のエンコード不整合エラーが発生する可能性があります (mysql-connector のバージョンに応じて動作が異なる場合があります)。 SQL 状態 [HY000]: エラー コード [1267]: 演算 '=' の照合順序 (latin1_swedish_ci、IMPLICIT) と (utf8mb4_general_ci、COERCIBLE) の組み合わせが不正です jdbc useSSL パラメータの変更 mysql-connector-java 構成では、useSSL パラメータに次の違いがあります。5.1.38 以降、useSSL は MySQL 5.5.45+、5.6.26+、または 5.7.6+ でデフォルトで有効になります。対応する requireSSL および verifyServerCertificate パラメータも有効になります。 < 5.1.38: ConnectionProperties.useSSL=サーバーとの通信時にSSLを使用する(true/false)、デフォルトは「false」 >= 5.1.38 ConnectionProperties.useSSL=サーバーとの通信時にSSLを使用する(true/false)。MySQL 5.5.45+、5.6.26+、または5.7.6+に接続する場合のデフォルトは「true」、それ以外の場合のデフォルトは「false」です。 MySQL 5.7.x 以降では、SSL がデフォルトで有効になり、明示的に暗号化しないように指定しない限り、クライアントは接続時に自動的に暗号化をネゴシエートします。mysql-connector-java は、5.1.38 以降、useSSL をデフォルトで有効にしています。そのため、jdbc の下位バージョンで MySQL 5.7.x に接続する場合は暗号化の問題は発生しませんが、jdbc の上位バージョンで 5.7.6+ に接続する場合は暗号化の問題が発生します。useSSL=false を明示的に指定する必要があります。そうすれば、jdbc の上位バージョンで MySQL 5.5、5.6 に接続する場合は暗号化の問題は発生しません。 これで、一貫性のない MySQL エンコーディングによって発生する可能性のあるいくつかの問題についての記事は終わりです。一貫性のない MySQL エンコーディングによって発生する問題の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: div が iframe に覆われるいくつかの状況とその解決策
>>: ドメイン名、ポート、異なるIPに基づくnginx仮想ホスト設定の実装
RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...
コードをコピーコードは次のとおりです。 <form action="/hehe&qu...
この記事では、例を使用して MySQL 変数の使用方法を説明します。ご参考までに、詳細は以下の通りで...
1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...
2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...
nginx で proxy_pass を設定するときに、^~ に従ってパスを一致させる場合は、pro...
目次1. 問題のシナリオ2. 原因分析3. 解決策4. 知識を広げる4.1 クエリの最適化を制限する...
CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...
MySQL データベースでは、あいまいクエリが必要な場合にワイルドカードを使用します。まず、演算子と...
MySQL の多くのテーブルには、NULL が列のデフォルト属性であるため、アプリケーションが NU...
前回の記事【dockerコンテナのためのdockerfileを詳しく解説】では、dockerfile...
目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...
独自のWebプロジェクトをtomcatディレクトリの下のwebappsディレクトリに配置します。 R...
仕える: # chkconfig --list すべてのシステムサービスを一覧表示する# chkco...
1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...