Art Culo De Transacciones

Páginas: 22 (5489 palabras) Publicado: 7 de mayo de 2015
Artículo

Inicio Artículo BBDD MySQL
13
¡votar!

 Transacciones en MySQL
1 . Introducción
2 . Lecturas consistentes
3 . Otro ejemplo
Cedido por MySQL Hispano.
Introducción
El servidor de bases de datos MySQL soporta distintos tipos de tablas, tales como ISAM, MyISAM, InnoDB y BDB (Berkeley Database). De éstos, InnoDB es el tipo de tabla más importante (después del tipo predeterminado, MyISAM), ymerece una atención especial.
Las tablas del tipo InnoDB están estructuradas de forma distinta que MyISAM, ya que se almacenan en un sólo archivo en lugar de tres, y sus principales características son que permite trabajar con transacciones, y definir reglas de integridad referencial.
El soporte de transacciones que provee MySQL no es algo nuevo en MySQL 4, ya que desde la versión 3.23 se podíahacer uso de tablas InnoDB, la única diferencia es que con la llegada de la versión 4.0 de MySQL, el soporte para este tipo de tablas es habilitado por default.
Las transacciones aportan una fiabilidad superior a las bases de datos. Si disponemos de una serie de consultas SQL que deben ejecutarse en conjunto, con el uso de transacciones podemos tener la certeza de que nunca nos quedaremos a mediocamino de su ejecución. De hecho, podríamos decir que las transacciones aportan una característica de "deshacer" a las aplicaciones de bases de datos.
Para este fin, las tablas que soportan transacciones, como es el caso de InnoDB, son mucho más seguras y fáciles de recuperar si se produce algún fallo en el servidor, ya que las consultas se ejecutan o no en su totalidad. Por otra parte, lastransacciones pueden hacer que las consultas tarden más tiempo en ejecutarse.
Seguramente alguna vez hemos escuchado hablar acerca de las transacciones, pero probablemente no entendemos bien lo que son, y como deben de ser usadas. La idea de este artículo es presentar algunos ejemplos para mostrar que no es nada complicado, y difícil de aprender.
En este artículo se asume que se cuenta ya con un servidorMySQL con soporte para el tipo de tablas InnoDB. En nuestro caso haremos uso de un servidor MySQL 4.013 ejecutándose en un sistema MSWindows.
Para asegurarnos que tenemos soporte para el tipo de tablas InnoDB podemos ejecutar la siguiente sentencia:
mysql> SHOW VARIABLES LIKE '%innodb%';
+---------------------------------+------------+
| Variable_name | Value |+---------------------------------+------------+
| have_innodb | YES |
| innodb_additional_mem_pool_size | 1048576 |
| innodb_buffer_pool_size | 8388608 |
| innodb_data_file_path | ibdata:30M |
| innodb_data_home_dir | |
| innodb_file_io_threads | 4 |
| innodb_force_recovery | 0 |
|innodb_thread_concurrency | 8 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_fast_shutdown | ON |
| innodb_flush_method | |
| innodb_lock_wait_timeout | 50 |
| innodb_log_arch_dir | . |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size| 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | . |
| innodb_mirrored_log_groups | 1 |
| innodb_max_dirty_pages_pct | 90 |
+---------------------------------+------------+
20 rows in set (0.00 sec)
La variable más importante es por supuesto have_innodb que tiene el valor YES.
En efecto, una de lasprincipales características de las tablas del tipo InnoDB es que pueden trabajar con transacciones, o sentencias SQL que son agrupadas como una sola. Un ejemplo típico de esto es una transacción bancaria. Por ejemplo, si una cantidad de dinero es transferida de la cuenta de una persona a otra, se requerirán por lo menos dos consultas:
UPDATE cuentas SET balance = balance - cantidad_transferida WHERE...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Art Culo
  • Art Culo
  • Art Culo
  • Art Culo
  • Art culo
  • ART CULO
  • Art Culos
  • Art culo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS