同期と非同期クエリーの実行

クエリーは、データベースに対して同期または非同期的に実行することができます。

クエリーは、データベースに対して同期または非同期的に実行することができます。使用する正しいパラダイム実行は、アプリケーションによって異なります。

同期実行

同期クエリー実行はブロッキングされており、これはクエリーから結果が返されるまでは、アプリケーション内では何一つ進行することはないことを意味します。アプリケーションは、クエリーが最初にデータベースに送られた時点から、結果を取り戻しアプリケーションに返すまで、往復全体をブロックします。

同期クエリーの利点は、クエリーが完了した時点で伝達するのが簡単であるため、アプリケーションの実行ロジックをたどるのが簡単です。ただし、同期クエリーは、アプリケーション・スループットの低下を招きます。

1. ドライバー用の同期クエリー実行
C/C++ C# Java Node.js PHP Python Ruby

非同期実行

非同期クエリー実行は、さらに複雑です。非同期クエリー実行コールは、結果をブロックしません。その代わり、非同期実行コールから、フューチュアが即座に返されます。フューチュアはプレースホルダー・オブジェクトで、データベースから結果が返されるまで、結果の代役を務めます。ドライバーと言語の機能セットによっては、このフューチュアにより、結果の非同期処理を容易にすることが可能です。これにより通常、高スループットが可能になります。

1. 非同期実行の例

非同期実行の例
2. ドライバー用の非同期クエリー実行
C/C++ C# Java Node.js PHP Python Ruby