Por exemplo, suponha que você execute as consultas abaixo.
UPDATE `user`
SET point=30
WHERE id=1;
SELECT nickname
FROM `user`
WHERE id=1;
Nesse caso, a segunda consulta SELECT deve aguardar o bloqueio da consulta UPDATE mesmo que não leia a coluna de pontos?
Em caso afirmativo, é um bom design separar a coluna de atualização frequente - ponto - em uma tabela separada user_point?
Não.
Além disso, se ambas as instruções estiverem na mesma transação, o bloqueio de linha continuará a ser aplicado – isso afeta outros threads.
(Os modos de isolamento de transação não padrão podem agir de maneira diferente.)