Cela dépend si vos users
table est MyISAM ou InnoDB.
Si c'est MyISAM, une instruction ou l'autre prend un verrou sur la table, et vous ne pouvez pas faire grand-chose pour contrôler cela, à part tables de verrouillage vous-même.
Si c'est InnoDB, c'est basé sur les transactions. L'architecture multi-versioning permet un accès simultané à la table, et le SELECT
verra le nombre de lignes à partir du moment où sa transaction a commencé. S'il y a un INSERT
se déroulant simultanément, le SELECT
verra 0 lignes. En fait, vous pourriez même voir 0 lignes par un SELECT
exécuté quelques secondes plus tard, si la transaction pour le INSERT
n'a pas encore commis.
Il n'y a aucun moyen pour les deux transactions de démarrer réellement simultanément. Les transactions sont garanties d'avoir un certain ordre.