AnalyticDB for MySQL は、プランキャッシュおよび強力なクエリ処理能力を活用して、サーバー側での SQL 前処理を必要とせずに高いパフォーマンスを実現します。不要なオーバーヘッドを回避するため、サーバー側のプリペアドステートメントを無効化し、代わりにクライアント側のパラメーター補間を有効化してください。
以下のセクションでは、各サポート対象ドライバーの構成方法について説明します。
MySQL Connector/J(JDBC)ドライバー
JDBC 接続 URL またはプロパティで、useServerPrepStmts を false に設定してください。構成オプションの完全な一覧については、「Connector/J の構成プロパティ」をご参照ください。
| パラメーター | 推奨値 |
|---|---|
useServerPrepStmts | false |
接続 URL の例:
jdbc:mysql://<host>:<port>/<database>?useServerPrepStmts=falseuseCursorFetch を true に設定しないでください。useCursorFetch が有効化されている場合、useServerPrepStmts の設定がオーバーライドされ、クライアント側のプリペアドステートメントが有効になりません。
MariaDB Connector/J
MariaDB 接続 URL またはプロパティ内で、useServerPrepStmts を false に設定します。詳細については、「MariaDB Connector/J の概要」をご参照ください。
| パラメーター | 推奨値 |
|---|---|
useServerPrepStmts | false |
接続 URL の例:
jdbc:mariadb://<host>:<port>/<database>?useServerPrepStmts=falseGo MySQL ドライバー
DSN 内で interpolateParams を true に設定することで、クライアント側のパラメーター補間を有効化します。詳細については、「go-sql-driver」をご参照ください。
| パラメーター | 推奨値 |
|---|---|
interpolateParams | true |
DSN の例:
<user>:<password>@tcp(<host>:<port>)/<database>?interpolateParams=truePDO
PDO 接続を作成する際に、PDO::ATTR_EMULATE_PREPARES を TRUE に設定します。詳細については、「PDO::setAttribute」をご参照ください。
| パラメーター | 推奨値 |
|---|---|
PDO::ATTR_EMULATE_PREPARES | TRUE |
例:
$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);設定手順については、PHP 接続ガイドの「PDO」セクションをご参照ください。