PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

15 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Foros / MySQL / Asunto: Evitar bloqueos con selects y updates

Asunto: Evitar bloqueos con selects y updates

5 respuestas 562 visitas Categoría MySQL

Asunto: Evitar bloqueos con selects y updates

Avatar de sheldon

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#0 Offline sheldon 08 feb 12
Hola a todos, estoy tratando de evitar que unas selects que tardan bastante tiempo en ejecutarse no me bloqueen las tablas cuando se intentan hacer updates. He probado a ejecutar en el phpmyadmin la sentencia

SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; asi como las demás READ COMMITTED Y SERIALIZABLE, la otra es la que viene por defecto.

A su vez en una ventana de Toad ejecuto

SELECT @@global.tx_isolation; y me muestra el cambio.

Luego ejecuto la SELECT con que bloquea y en otra ventana del editor ejecuto un
UPDATE a la tabla (de 1 solo registro).

Bien, pues pruebe lo que pruebe SIEMPRE me bloquea el UPDATE.

Como puedo hacer para que ésto no se produzca?

Gracias.

Re: Asunto: Evitar bloqueos con selects y updates

Avatar de sheldon

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#1 Offline sheldon 08 feb 12 0 personas consideran útil este post.
Me contesto a mi mismo. Lo he solucionado cambiando el motor de la base de datos de las tablas afectadas de MyIsam a InnoDb. :-)

Re: Asunto: Evitar bloqueos con selects y updates

Avatar de osmodiars

Nivel 3 (256 posts)

* * * * * * *

36 Agradecimientos

#2 Offline osmodiars 08 feb 12 0 personas consideran útil este post.
Pero cambiando el motor vas a quitar las claves foraneas, fijate que el cambio que hiciste no haya afectado otra cosa.

Re: Asunto: Evitar bloqueos con selects y updates

Avatar de sheldon

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#3 Offline sheldon 09 feb 12 0 personas consideran útil este post.
Lo unico que he hecho es un

Alter table Tabla ENGINE=INNODB;

Hace su proceso, devuelve el num. de registros afectados y chimpun.

Es una bd de la que tiran 30 personas en remoto con un programa y de momento ni una queja... no me metas miedo.

Re: Asunto: Evitar bloqueos con selects y updates

Avatar de Eloy8857

Nivel 5 (973 posts)

* * * * * * *

159 Agradecimientos

#4 Offline Eloy8857 13 feb 12 0 personas consideran útil este post.
osmodiars MyISAM no tiene claves foráneas, aunque admita la sintaxis.

Mientras una tabla no tenga índices FULLTEXT puedes cambiarla de MyISAM a innoDB sin problemas. Generalmente saldrás ganando, porque no se bloquea y porque no se rompen con tanta facilidad.

Restless Souls Online: se viene un gran MMORPG

Asunto

Avatar de sheldon

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#5 Offline sheldon 13 feb 12 0 personas consideran útil este post.
Gracias por la aclaracion

Responder mensaje

Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster