MySQL Avanzado (seis): la operación y el uso de las cuatro propiedades

negocios

Objetivos de aprendizaje

  • Para conocer las características de las cuatro operaciones

1. Introducción asuntos

transacción definida por el usuario es una serie de sentencias SQL realizan la operación, estas operaciones están plenamente ejecutado o no está completamente ejecutada, es una unidad indivisible de la ejecución de la obra.

Use escenarios de transacciones:

En la vida cotidiana, a veces tenemos que hacer una transferencia bancaria, la operación de transferencia del banco está detrás de la necesidad de realizar varias sentencias SQL, la ejecución de SQL a la mitad si éstos repentino apagón, que hará que esta función es sólo la mitad, esta situación es permitido, con el fin de resolver este problema necesita ser hecho por la transacción.

2. Cuatro Asuntos características

  • La atomicidad (atomicidad)
  • La consistencia (Consistencia)
  • Aislamiento (aislamiento)
  • Persistente (Durabilidad)

La atomicidad:

Una transacción debe ser considerada como una parte integral de la unidad mínima de trabajo, todas las operaciones de toda la transacción o bien todos enviado correctamente, o todos fallar rollback de una transacción, es imposible realizar la operación en la que sólo una porción, que es una transacción atomicidad

consistencia:

Base de datos siempre se convierte desde un estado coherente a otro estado coherente. (En el ejemplo anterior, se garantiza la consistencia, incluso si el sistema se bloquea en el proceso de transferencia, la cuenta corriente no perderá $ 200, ya que la transacción no se sometió a la final, por lo que la transacción cambios realizados no se guardarán en la base de datos .)

aislamiento:

En términos generales, una empresa cambia de operativos realizados antes de confirmar la transacción, otras operaciones no es visible. (En el ejemplo anterior, cuando la aplicación completa de la tercera declaración, cuando el cuarto estado aún no ha comenzado, este tiempo no hay otra cuenta de un resumen del programa se está ejecutando, se vio el saldo de la cuenta corriente no se ha restado 200 dólares).

Resistencia:

Una vez que se confirma la transacción, a continuación, modificar lo que hizo que guarda permanentemente a la base de datos.

Descripción:

Asuntos para asegurar la integridad y la consistencia de los datos, lo que permite a los usuarios operar más seguro.

3. Uso de los asuntos

Antes de utilizar la transacción, primero asegúrese de que la tabla es InnoDB tipo de motor de almacenamiento, este tipo sólo puede utilizar las transacciones, una tabla en MySQL motor de almacenamiento InnoDB base de datos es el tipo predeterminado.

Tabla de descripción de motor de almacenamiento:

motor de almacenamiento Tabla es proporcionar un mecanismo para almacenar datos, tablas de diferentes motores de almacenamiento proporcionan diferentes mecanismos de almacenamiento.

representaciones motores de automóvil:

[Imágenes de cadenas extranjeras vertido falla, la estación de origen puede tener mecanismo de cadena de seguridad, se recomienda para guardar la imagen abajo subido directamente (img-M92wW3OY-1584020324744) (IMG /% E8% A1% A8% E7% 9A% 84% E5% AD% 98% E5% 82% A8% E5% BC% 95% E6% 93% 8E.png)]

Descripción:

  • Diferentes motores de los automóviles, la energía del automóvil es diferente.

Salida del motor de base de datos MySQL soporte de almacenamiento de tabla:

-- 查看MySQL数据库支持的表的存储引擎
show engines;

Aquí Insertar imagen Descripción

Descripción:

  • mesa común es InnoDB y MyISAM motor
  • InnoDB es transaccional
  • MyISAM no admite transacciones, las ventajas son la velocidad de acceso rápido, o en una operación no debe elegir, motor de almacenamiento basados ​​en inserción que se puede utilizar para crear tablas

Ver crear la tabla Declaración de las mercancías tabla:

-- 选择数据库
use jing_dong;
-- 查看goods表
show create table goods;

mysql root@(none):jing_dong> show create table goods;
+-------+--------------------------------------------------------+
| Table | Create Table                                           |
+-------+--------------------------------------------------------+
| goods | CREATE TABLE `goods` (                                 |
|       |   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,       |
|       |   `name` varchar(150) NOT NULL,                        |
|       |   `cate_id` int(10) unsigned NOT NULL,                 |
|       |   `brand_id` int(10) unsigned NOT NULL,                |
|       |   `price` decimal(10,3) NOT NULL DEFAULT '0.000',      |
|       |   `is_show` bit(1) NOT NULL DEFAULT b'1',              |
|       |   `is_saleoff` bit(1) NOT NULL DEFAULT b'0',           |
|       |   PRIMARY KEY (`id`)                                   |
|       | ) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------+

Descripción:

  • Se puede aprender mediante la creación de table, motor de tabla de mercancías es InnoDB.
  • tabla almacenada motores modificados: motor tabla alter tabla = tipo de motor;
    • 比如: alter motor de estudiantes de la tabla = 'MyISAM';

transacción abierta:

begin;
或者
start transaction;

Descripción:

  • comando de ejecución de la transacción abierta a modificar, los datos de cambio se guarda en un archivo de caché local sin mantener una tabla física

  • base de datos MySQL utilizando el modo de confirmación automática por omisión (confirmación automática), si no hay una pantalla abierta de una transacción, cada sentencia SQL será tratada como una transacción operativo presentado para su ejecución

  • Cuando conjunto de confirmación automática = 0 es la derogación de la automática modalidad de confirmación hasta que una confirmación y la pantalla rollback indica el final de la transacción.

    • conjunto de confirmación automática = 0 representa cancelar el modo de confirmación automática, lo que necesita para ejecutar un trabajo manual comprometerse a completar la transacción presentada
    set autocommit = 0;
    insert into students(name) values('刘三峰');
    -- 需要执行手动提交,数据才会真正添加到表中, 验证的话需要重新打开一个连接窗口查看表的数据信息,因为是临时关闭自动提交模式
    commit
    
    -- 重新打开一个终端窗口,连接MySQL数据库服务端
    mysql -uroot -p
    
    -- 然后查询数据,如果上个窗口执行了commit,这个窗口才能看到数据
    select * from students;
    

    Confirmar la transacción:

    Los datos se presentará en el fichero de caché local de la tabla física para completar los datos de actualización.

    commit;
    

    Deshacer la transacción:

    Renunciar a los datos de la caché de archivos caché local, que muestra un estado antes de la vuelta transacción al principio

    rollback;
    

    Asuntos taladros instrucción SQL:

    begin;
    insert into students(name) values('李白');
    -- 查询数据,此时有新增的数据, 注意: 如果这里后续没有执行提交事务操作,那么数据是没有真正的更新到物理表中
    select * from students;
    -- 只有这里提交事务,才把数据真正插入到物理表中
    commit;
    
    -- 新打开一个终端,重新连接MySQL数据库,查询students表,这时没有显示新增的数据,说明之前的事务没有提交,这就是事务的隔离性
    -- 一个事务所做的修改操作在提交事务之前,对于其他事务来说是不可见的
    select * from students;
    

4. Resumen

  1. Características de la operación:
    • La atomicidad: haciendo hincapié en la pluralidad de operaciones en la transacción como un todo
    • Consistencia: estresado no se guarda en la base de datos en un estado incoherente
    • Aislamiento: enfatizar mutua invisible entre la base de datos de transacciones
    • Persistencia: énfasis en la base de datos puede almacenar datos de forma permanente, es irrevocable una vez presentada
  2. base de datos MySQL utilizando el modo de confirmación automática por defecto (confirmación automática) , lo que significa que los datos Modificar (insertar, actualizar, eliminar) las operaciones dispara automáticamente la transacción para completar las confirmaciones de transacción o retrotrae
  3. transacción abierta usando comenzar o iniciar la transacción;
  4. Deshacer la transacción usando rollback;
  5. pymysql dentro conn.commit () operación es para confirmar la transacción
  6. pymysql dentro conn.rollback operación () es para deshacer la transacción
Publicados 729 artículos originales · ganado elogios 964 · vistas 120 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_35456045/article/details/104828816
Recomendado
Clasificación