データベース/SQL を使用したクエリは、データベースを直接クエリするよりもはるかに遅いのはなぜですか?
Go でデータベース/SQL を使用する場合、最初のクエリは後続のクエリよりも大幅に遅くなる可能性があります。これは、最初のクエリに対してデータベースへの新しい接続が確立されるためです。これを軽減するには、最初のクエリを実行する前に、データベース接続プールで Ping メソッドを使用して接続を確立することをお勧めします。
不一致の理由
データベース/sql パッケージは、単一の接続ではなく、接続のプールを管理します。 Query メソッドが初めて呼び出されるとき、プールから接続を取得し、クエリを実行します。ただし、プールが空の場合は、新しい接続を確立する必要があり、時間がかかることがあります。後続のクエリは既存の接続を再利用するため、高速になります。
解決策
この最初の遅延を回避するには、最初のクエリの前に Ping メソッドを使用して接続を確立できます。 。これにより、最初のクエリで接続が利用できるようになり、全体的な実行時間が短縮されます。
追加メモ
以上が最初の Go `database/sql` クエリが後続のクエリよりもはるかに遅いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。