sql >> Base de Datos >  >> RDS >> Mysql

MySQL INSERT y SELECT Orden de precedencia

Depende de si sus users la tabla es MyISAM o InnoDB.

Si es MyISAM, una declaración u otra bloquea la tabla, y hay poco que pueda hacer para controlar eso, excepto tablas de bloqueo usted mismo.

Si es InnoDB, está basado en transacciones. La arquitectura de versiones múltiples permite el acceso simultáneo a la tabla y el SELECT verá el recuento de filas a partir del instante en que comenzó su transacción. Si hay un INSERT ocurriendo simultáneamente, el SELECT verá 0 filas. De hecho, incluso podría ver 0 filas con un SELECT ejecutado unos segundos más tarde, si la transacción para el INSERT no se ha comprometido todavía.

No hay forma de que las dos transacciones comiencen realmente simultáneamente. Se garantiza que las transacciones tendrán cierto orden.