Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Executando a consulta MySQL SELECT * em paralelo


MySQL permite muitas conexões de um único usuário ou muitos usuários . Dentro dessa conexão, ele usa no máximo um núcleo de CPU e faz uma instrução SQL por vez.

Uma "transação" pode ser composta de várias instruções SQL enquanto a transação é tratada como atomicamente. Considere o aplicativo bancário clássico:
BEGIN;
UPDATE ...  -- decrement from one user's bank balance.
UPDATE ...  -- increment another user's balance.
COMMIT;

Essas instruções são executadas em série (em uma única conexão); ou todos eles são bem-sucedidos ou todos eles falham como uma unidade ("atomicamente").

Se você precisar fazer coisas em "paralelo", tenha um cliente (ou clientes) que possa executar vários threads (ou processos) e faça com que cada um faça sua própria conexão com o MySQL.

Uma pequena exceção:existem alguns tópicos extras 'nos bastidores' para realizar tarefas em segundo plano, como leitura antecipada ou gravação atrasada ou limpeza. Mas isso não dar ao usuário uma maneira de "fazer duas coisas ao mesmo tempo" em uma única conexão.

O que eu disse aqui se aplica a todas as versões do MySQL/MariaDB e todos os pacotes de clientes que os acessam.