mysql - son - Soporte de transacciones del motor MyIsam
myisam mysql (2)
Estaba probando el soporte de transacciones en tablas innoDB, y solo por la intensidad intenté ejecutar la misma transacción en la tabla MyIsam, y sorprendentemente funcionó. Supongo que en myIsam las consultas de tablas se ejecutan una tras otra, no en una operación atómica y no obtengo ningún error de las operaciones START TRANSACTION y COMMIT y ROLLBACK. Estoy interesado, ¿el motor MyIsam simplemente ignora estas operaciones o realiza algunas acciones?
Las tablas de MyIsam no fueron construidas para esto. Ni siquiera en las versiones 5+. Sólo estaba destinado a almacenar datos. No le da ninguna garantía para transacciones o recuperación de datos. Debería usar InnoDB para esto y, si es necesario, usar MyIsam con fines de replicación (es más rápido recuperar datos con las tablas de MyIsam ya que no hay comprobaciones cruzadas).
Puede leer esta publicación de MySQL http://forums.mysql.com/read.php?21,68686,69229#msg-69229
MyISAM funciona de manera efectiva en el modo de confirmación automática (ya que no es un motor transaccional), y simplemente ignora la confirmación / reversión.
En realidad, el motor de almacenamiento es una capa diferente en la arquitectura MySQL, separada del analizador de SQL, la capa SQL se comunica con el motor de almacenamiento con la API de nivel inferior, y esa es la razón por la que hay un SQL y motores comunes, que admiten diferentes subconjuntos de funciones. Puede ver una descripción general de la arquitectura de muy alto nivel here