sql >> データベース >  >> RDS >> Mysql

MySQLSELECT*クエリを並行して実行する

    MySQLは多くの接続を許可します 単一のユーザーから または多くのユーザー 。その1つの接続内で、最大で1つのCPUコアを使用し、一度に1つのSQLステートメントを実行します。

    「トランザクション」は、トランザクションが処理される間、複数のSQLステートメントで構成できます。 原子的に。従来の銀行アプリケーションについて考えてみましょう:

    BEGIN;
    UPDATE ...  -- decrement from one user's bank balance.
    UPDATE ...  -- increment another user's balance.
    COMMIT;
    

    これらのステートメントは、(単一の接続で)シリアルに実行されます。それらすべてが成功するか、すべてが1つの単位として(「原子的に」)失敗します。

    「並列」で処理を行う必要がある場合は、複数のスレッド(またはプロセス)を実行できるクライアント(または複数のクライアント)を用意し、それぞれがMySQLへの独自の接続を確立します。

    マイナーな例外:先読み、遅延書き込み、フラッシュなどのバックグラウンドタスクを実行するための「内部」の追加スレッドがいくつかあります。しかし、これはではありません 1つの接続で「2つのことを同時に行う」方法をユーザーに提供します。

    ここで私が言ったことは、MySQL / MariaDBのすべてのバージョンと、それらにアクセスするすべてのクライアントパッケージに適用されます。




    1. MySQLクエリはテーブル結合でインデックスを使用しません

    2. 赤方偏移で現在の合計を計算する方法

    3. psql:致命的:ユーザー開発者のピア認証に失敗しました

    4. MySQLクロス結合クエリでのHibernate例外