Curso de MySQL
Consultas, lista de correo 'C++ Con Clase' 'MySQL Con Clase' página de entrada Tabla de contenido Contactar con Webmaster
Curso Sentencias Funciones API C

SQL

Sentencias

ALTER TABLE ANALYZE TABLE BACKUP TABLE BEGIN BEGIN WORK CHECK TABLE CHECKSUM TABLE COMMIT CREATE DATABASE CREATE TABLE CREATE USER DELETE DESCRIBE DO DROP DATABASE DROP INDEX DROP TABLE DROP USER FLUSH GRANT HANDLER INSERT INSERT ... SELECT JOIN KILL LOAD DATA LOCK TABLES OPTIMIZE TABLE RENAME TABLE REPAIR TABLE REPLACE RESET REVOKE ROLLBACK SELECT SET SET TRANSACTION SHOW SHOW CHARACTER SET SHOW COLLATION SHOW COLUMNS SHOW CREATE DATABASE SHOW CREATE TABLE SHOW CREATE VIEW SHOW DATABASES SHOW ENGINES SHOW ERRORS SHOW GRANTS SHOW INDEX SHOW INNODB STATUS SHOW KEYS SHOW LOGS SHOW PRIVILEGES SHOW PROCESSLIST SHOW STATUS SHOW TABLE STATUS SHOW TABLES SHOW VARIABLES SHOW WARNINGS START TRANSACTION TRUNCATE UNION UNLOCK TABLES UPDATE USE

INSERT DELAYED

INSERT DELAYED ...

La opción DELAYED para la sentencia INSERT es una extensión de MySQL al SQL estándar que es muy práctica si se tienen clientes que no pueden esperar a que el INSERT se complete. Este es un problema frecuente cuando se usa MySQL y además se ejecutan periódicamente sentencias SELECT y UPDATE que necesitan mucho tiempo para completarse. DELAYED se añadió en MySQL 3.22.15.

Cuando un cliente usa INSERT DELAYED, obtiene una confirmación por parte del servidor de forma inmediata, y la fila se almacena en una cola para ser insertada cuando la tabla no esté en uso por ningún otro proceso.

Otra gran ventaja de usar INSERT DELAYED es que las inserciones desde muchos clientes son ligadas juntas y escritas en un bloque. Esto es mucho más rápido que hacer muchas inserciones separdas.

Existen algunas limitaciones en el uso de DELAYED:

Hay que tener en cuenta que las filas actualmente en la cola se almacenan sólo en memoria hasta que sean insertadas en la tabla. Eso significa que si se fuerza la terminación de mysqld (por ejemplo, con kill -9) o si mysqld termina de forma inesperada, cualquier fila en la cola que no haya sido escrita en disco se perderá.

A continuación se describe con detalle qué ocurre cuando se usa la opción DELAYED con INSERT o REPLACE. En esta descripción, el "proceso" es el que recibe una sentencia INSERT DELAYED y el "manipulador" es el proceso que manipula todas las rentencias INSERT DELAYED para una tabla concreta.

Hay que tener en cuenta que INSERT DELAYED es más lenta que un INSERT normal si la tabla no está en uso. Hay algo de trabajo adicional para el servidor al manipular un proceso separado para cada tabla para la que haya inserciones de filas retrasadas. Esto significa que sólo se debe usar INSERT DELAYED cuando se esté realmente seguro de que es necesario.

(4.1.1)