|

Triggers en MySQL

mysql.pngLa verdad es que tenía pendiente hacer un pequeño manual de triggers (disparadores) en MySQL después de haber hablado de las novedades de MySQL 5, pero siempre falta tiempo y por eso aprovecho a comentar el artículo que he encontrado.

Los triggers son algo muy útil sobre todo si queremos actualizar datos de forma automática. Imaginemos una tabla con los datos de un usuario, que pueden ser modificados desde distintas partes de nuestra aplicación, y es necesario que cuando se actualiza algún dato del usuario, se tenga que actualizar los datos de otra tabla. Podríamos actualizar los datos de la segunda tabla mediante código en cada uno de los casos en los que se actualiza la tabla del usuario en la aplicación, o bien podríamos crearnos un trigger que cuando se actualice la tabla de usuario (aunque sea “a mano”) se actualice directamente los datos de la otra tabla.

Un ejemplo para la creación de un trigger sería el siguiente:

CREATE TRIGGER disparador
AFTER INSERT ON usuarios
FOR EACH ROW
UPDATE tabla2
SET campo = valor;

Más información

Ease database management and automate functions with triggers in MySQL

Disparadores (triggers)

Vía / dzone

| |

Zend Framework: uso básico de la base de datos

Algo que siempre se usa que realmente solo se debería crear una vez en nuestras aplicaciones web es el gestor de la base de datos. Y si seguimos con el estudio del framework de Zend, nos encontramos con unas funcionalidades sobre la BD bastante aceptables, aunque ellos mismos digan que deben añadir cosas.

La principal característica es olvidarnos de la BD en cuestión y usarla, sea cual sea, de forma genérica. Por ahora este framework admite entre otras Microsoft SQL Server, MySQL, PostgreSQL y SQLite, estando basado en PDO. Lo siguiente, es que mediante una clase, el uso que normalmente le damos a una base de datos (selección, inserción y borrado) queda perfectamente resuelto.

Read More “Zend Framework: uso básico de la base de datos”

Novedades en MySQL 5

mysql.pngUna traducción en español del manual de MySQL 5, que siempre viene bien tenerl en nuestro idioma para que sea más fácil entenderlo. Entre las cosas destacables, yo me centraría en las novedades que ofrece la versión 5 de MySQL:

Manual de referencia de MySQL 5.0

Vía / menéame

|

MySQL se acerca a Microsoft

mysql.pngMySQL ha pagado 3000 dólares para ser socio de Microsoft’s Visual Studio Industry Partner (VSIP) para poder consolidar su base de datos en el entorno Windows.
Según informan desde MySQl, el 40% de las descargas son desde Windows, y este movimiento permitirá una mayor integración entre en la base de datos y el entorno de desarrollo de Microsoft. Mediante el uso de plugin, los desarrolladores de C# o Visual Basic podrá integrar MySQL en sus aplicaciones de una forma sencilla.
Esta cercanía supone un beneficio para ambas compañías, para MySQL el que las aplicaciones en Windows puedan desarrollarse usando su base de datos, y para Microsoft, que los desarrolladores seguirán en el entorno Windows al no tener la necesidad de migrar a otro entorno, o usar base de datos como Oracle que son más partidarios de Linux que de Oracle.
MySQL gets cosy with Microsoft

Vía / dzone

| |

Crear un sistema de registro con PHP y MySQL

Algo común en muchas de las páginas que visitamos, por ejemplo en foros, es la necesidad de registrarnos para poder acceder a los contenidos. El tutorial que ponemos a continuación explica muy bien como hacerlo paso a paso:

Creating a Membership System with PHP and MySQL

Vía / dzone

| |

Simples optimizaciones para tus aplicaciones MySQL/PHP

Una serie de trucos que podemos utilizar para mejorar nuestras aplicaciones MySQL / PHP, traducido (lo mejor posible) de la fuente:

MySQL

  • MySQL interpreta de derecha a izquierda, por lo que los limitadores más significativos los debes poner lo más a la derecha posible.
  • Selecciona los campos que vayas a necesitar, no todos (*).
  • No pongas en datos que se vayan a modificar rara vez, utiliza ficheros de propiedades.
  • Usa índices para las columnas que aparezcan en el WHERE y en el ORDER BY.
  • Los índices son buenos cuando la tabla se modifica con frecuencia, pero hace lentas las inserciones.
  • Usa el comando EXPLAIN para analizar tus índices.
  • Si solo quieres obtener una fila, usa LIMIT 1 así parará de buscar datos.
  • Si usas $linea = mysql_fetch_array($resultado), hay dos modos de obtener los datos: $linea[n] y $linea[‘columna’]. Si vas a acceder solo por el nombre de la columna, usa $linea = mysql_fetch_assoc($resultado), así no se creará el índice numérico.
  • Algunas veces mysql_free_result() gasta mas memoria que la que salva, comprueba la diferencia con memory_get_usage().
  • No hagas siempre la misma consulta en la BD, guarda los resultados.
  • Usa NOT NULL siempre que puedas, agiliza la ejecución y ahorra un bit.
  • Usa tipos de datos que se ajusten a las necesidades, por ejemplo, en vez de usar INT, que puede ser muy grande, usa MEDIUMINT o SMALLINT cuando sea posible.
  • Usa valores por defecto, inserta solo cuando sean diferentes a estos, agilizarás las inserciones.

PHP

  • Intenta agrupar bloques de código
    <?php
    ...
    ...
    ...
    ?>

    es mas efectivo que

    <?php
    ...
    ?>
    <?php
    ...
    ?>
    <?php
    ...
    ?>
  • No concatenes texto cuando no sea necesario
    "SELECT * FROM $tabla ORDER BY campo"

    es más efectivo que

    "SELECT * FROM ".$tabla." ORDER BY campo"
  • Utiliza la comilla simple (‘) en vez de la comilla doble (“) siempre que no vayas a usar variables dentro, la comilla doble hace que el intérprete analice lo que hay dentro de las comillas.
  • La forma más rápida de concatenar texto es usando comillas simples.
  • Cuando uses echo, separa los strings por comas mejor que con puntos, es más rápido. Esto solo funciona con echo.
  • echo es más rápido que print.
  • Indica el valor máximo para tus bucles for fuera del bucle en vez de dentro del bucle, porque si no, se evaluará la expresión en cada pasada del bucle
    $max = 100/10;
    for($i=0; $i<$max; $i++){
    ...
    }

    es más rápido que

    for($i=0; $i<100/10; $i++){
    ...
    }
  • Libera variables siempre que puedas, sobre todo arrays pesados.

Simple Optimization for PHP and MySQL

Vía / Digg