PC Frikis

Beta, como Goooogle

Uso de INSERT DELAYED en MySQL

En MySQL cuando se realiza un operación INSERT el gestor de bases de datos realiza la inserción del registro que se le haya indicado y además devuelve la id del registro si se está trabajando con una tabla que tiene un campo auto_increment. Esta operación, para mantener la consistencia y además poder ofrecer la última id, se queda en espera hasta que MySQL haya acabado de realizar la inserción.

mysql_query(“INSERT INTO usuarios (usuario,historial) VALUES (5,’Lorem ipsum….’)”);
// PHP espera. El resto del código no se ejecutará hasta que no termine la operación

En muchos casos esto es lo ideal, ya que se suele necesitar la id que devuelve la inserción o también es posible que después de ese insert sea necesario realizar más operaciones que dependan de ese INSERT.

Pero en otros casos no es necesario para seguir trabajando ni la id que devuelve la inserción ni los querys siguientes dependen del último INSERT, en esos casos lo que premia es la velocidad, lanzar la instrucción de inserción y seguir trabajando sin esperar a que finalice. Para eso se puede usar INSERT DELAYED, la instrucción es completamente igual que un INSERT tradicional pero añadiendo la palabra clave “DELAYED”. Por ejemplo:

mysql_query(“INSERT DELAYED INTO usuarios (usuario,historial) VALUES (5,’Lorem ipsum….’)”);
// PHP no espera. El código que haya a continuación se ejecuta sin esperar a que MySQL termine

Es muy útil si en un script o aplicación (sea PHP, Python, Ruby, C o cualquier otro) necesitas insertar cientos o miles de registros sin que se quede bloqueada la aplicación esperando la inserción de cada uno de los registros. Mediante INSERT DELAYED la aplicación manda la instrucción a MySQL y éste ya se encargará de insertar los registros en la base de datos en el mejor momento. También es muy útil en servidores con mucha carga, ya que de esta manera MySQL busca el mejor momento para realizar los inserts y no justo cuando se hace la petición.

NOTA: Sólo funciona en tablas MyISAM y MEMORY. No funciona en otros motores como por ejemplo InnoDB.

Cada vez es más común adquirir ordenadores sin ningún tipo de lector de discos CD-ROM ya que la mayoría de archivos entran al ordenador a través de la red. Esto ocurre sobre todo en el caso de los netbooks, que por custiones de espacio no llevan integrado un lector de discos, pero no son los únicos, yo personalmente tengo un PC de sobremesa que tampoco tiene unidad lectora y por otra parte, donde trabajo, hemos comprado 24 máquinas que tampoco llevan CD-ROM.

El problema llega en el momento de instalar el sistema operativo, ya sea porque queremos cambiarlo, reinstalarlo o porque vayamos a hacer la primera instalación. Tradicionalmente la mayoría de sistemas operativos estaban preparados para arrancar únicamente desde CD o DVD pero ahora que las máquinas “optical disk free” se empiezan a popularizar es necesario realizar la instalación mediante otras vías.

La opción más sencilla para arrancar un sistema operativo, descartando el lector de discos, es mediante un dispositivo de almacenamiento USB y consiste en copiar una imagen del CD de instalación del sistema operativo en el pendrive o disco duro usb y decirle a la BIOS que arranque desde él.

La idea parece sencilla pero no siempre funciona, de hecho en algunos casos había que modificar incluso ficheros del propio sistema operativo pero poco a poco todos se van adaptando, Microsoft lanzó junto a Windows 7 una utilidad para grabar una imagen de CD en un pendrive USB y realizar la instalación del sistema desde él. En el mundo del software libre han empezado aparecer varias herramientas para realizar este cometido de las cuales me gustaría destacar UNetbootin.

UNetbootin es una aplicación que funciona tanto en Windows como en Linux y permite crear un pendrive arrancable de una gran selección de distribuciones linux en unos pocos clicks. No es necesario tener previamente descargada ninguna imagen, UNetbootin se encarga de descargar la imagen de la distribución que queramos. Además del gran surtido de distribuciones también ofrece la creación de pendrives con diversas utilidades como por ejemplo el CloneZilla (del que ya hablamos en otra ocasión), el Super Grub Disk u Ophcrack entre muchas otras.

Imágenes disponibles en UNetbootin

Imágenes disponibles en UNetbootin

También ofrece la posibilidad de instalar otros sistemas operativos como por ejemplo FreeDOS, FreeBSD o NetBSD. Por hacer una prueba voy a seleccionar FreeDOS, escojo la unidad del pendrive (cuidado con no seleccionar la unidad equivocada) y le doy a aceptar. UNetbootin empieza automáticamente a descargar la imagen:

UNetbootin descargando FreeDos

UNetbootin descargando FreeDOS

Una vez terminado solo queda introducir el pendrive en un puerto USB y al arrancar el ordenador indicarle a la placa base que debe utilizar el dispositivo USB para cargar el sistema operativo.

Menú de arranque de la BIOS

Menú de arranque de la BIOS

Finalmente aparece el menú de FreeDOS, que permite varias opciones, entre ellas instalarlo o arrancarlo en modo Live.

Menú de arranque de FreeDOS

Menú de arranque de FreeDOS

Este mismo proceso se puede seguir para cualquiera de los otros sitemas operativos o distribuciones que hay en la lista de UNetbootin.

Se puede obtener la última versión de UNetbootin desde su página oficial (http://unetbootin.sourceforge.net/)