Зависит от того, является ли ваша таблица users
MyISAM или InnoDB.
Если это MyISAM, то один или другой оператор блокирует таблицу, и вы мало что можете сделать для этого, кроме блокирующих таблиц самостоятельно.
Если это InnoDB, он основан на транзакциях. Архитектура с несколькими версиями обеспечивает одновременный доступ к таблице, и SELECT
будет видеть количество строк на момент начала транзакции. Если одновременно происходит INSERT
, SELECT
увидит 0 строк. Фактически, вы можете даже увидеть 0 строк на SELECT
, выполненных несколько секунд спустя, если транзакция для INSERT
еще не зафиксирована.
Невозможно запустить обе транзакции по-настоящему одновременно. Транзакции гарантированно имеют некоторый порядок.