Dino Geek, intenta ayudarte

¿Cómo manejar el bloqueo optimista y pesimista en MariaDB?


El control de concurrencia en MariaDB, así como en otros sistemas de administración de bases de datos, es de suma importancia para mantener la integridad de los datos y el rendimiento del sistema. Hay dos tipos de bloqueo de datos que se pueden utilizar: bloqueo optimista y bloqueo pesimista.

Bloqueo optimista:
Se utiliza cuando los conflictos de transacciones son poco probables y permite a varios usuarios acceder y editar datos simultáneamente, lo que puede llegar a mejorar el rendimiento. El bloqueo optimista no bloquea la lectura ni la escritura de datos hasta que la transacción está lista para ser enviada. Si otra transacción ha cambiado los mismos datos en el ínterin, se lanza un conflicto de concurrencia.

Para implementar el bloqueo optimista en MariaDB, necesitarás tener una columna en tu tabla destinada a establecer un “valor de versión” que se incrementa cada vez que los datos cambian. Cuando un usuario intenta enviar cambios, verificas manualmente si el valor de la versión en la base de datos es todavía el mismo que cuando el usuario obtenía los datos. Si no es así, se ha producido un conflicto.

Bloqueo pesimista:
Se utiliza cuando son más probables los conflictos de transacciones. Cuando un usuario accede a los datos para una operación de “escritura” (incluidas las operaciones de actualización y eliminación), esos datos se bloquean y ningún otro usuario puede acceder a ellos hasta que se complete la transacción.

MariaDB utiliza bloqueo pesimista y para controlarlo, MariaDB ofrece diferentes niveles de aislamiento de transacciones que puedes usar:

- READ UNCOMMITTED: Este nivel permite que las transacciones lean las filas que han sido modificadas por otras transacciones pero que aún no se han confirmado.

- READ COMMITTED: Este nivel no permite que una transacción vea las filas modificadas por otras transacciones hasta que estas transacciones se hayan confirmado.

- REPEATABLE READ: Este nivel garantiza que todas las lecturas de una sola transacción son consistentes y no ven los cambios realizados por otras transacciones una vez que la transacción ha comenzado.

- SERIALIZABLE: Este es el nivel más alto de aislamiento de transacciones. Este nivel realiza todas las transacciones de manera secuencial para evitar conflictos.

Para establecer el nivel de aislamiento de la transacción en MariaDB, puedes usar el siguiente comando:

```SQL
SET TRANSACTION ISOLATION LEVEL [nivel deseado];
```
Donde [nivel deseado] es uno de los niveles de aislamiento mencionados anteriormente.

Recuerda que el manejo del bloqueo adecuado depende del caso y del contexto. No hay una forma correcta o incorrecta de hacerlo, siempre depende de las necesidades de tu aplicación.


Genera artículos simplemente para optimizar tu SEO
Genera artículos simplemente para optimizar tu SEO





DinoGeek ofrece artículos sencillos sobre tecnologías complejas

¿Desea ser citado en este artículo? Es muy sencillo, contáctenos en dino@eiki.fr.

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nombre de dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Aviso legal / Condiciones generales de uso