Archivo de la etiqueta: mysql

La selectividad de los índices en MySQL

Performance de base de datosAgrego la definición de selectividad respecto a índices en motores de bases de datos:

La selectividad es la relación que hay entre el número de valores posibles en una columna, y el número total de registros. La mejor selectividad es 1, y ocurre cuando hay tantos valores posibles como registros presentes, precisamente en el caso de una clave primaria sobre una columna; la peor selectividad es la que tiende a 0, y ocurre cuando hay muy pocos valores posibles en relación a los registros presentes, por ejemplo una columna sexo.

Sigue leyendo La selectividad de los índices en MySQL

Diferencias entre mysql, mysqli y PDO en PHP

Existen más, pero hay las tres formas más populares de conectarse desde PHP a una base de datos de MySQL: mysql, mysqli y PDO (PHP Data Objects). En cada proyecto se puede usar una manera u otra, pero para saber cuál es la más recomendada, hay que conocer en que se distinguen:

  • mysql es la API histórica que ofrece PHP desde hay varias versiones.
  • mysqli es la nueva versión de mysql, orientada a objetos.
  • PDO es una capa de abstracción de base de datos, con soporte para MySQL y otros sistemas gestores de bases de datos. Proporciona comandos preparados y otra serie de operaciones adaptadas al driver necesario.

Si no hubiera ningún motivo que hiciera variar la elección, se recomienda usar PDO; y si no es posible, entonces mysqli. Como último recurso, usar mysql. Visto en stackowerflow

ACTUALIZACIÓN (2010/08/01): En el foro "Foros del web", se abrío un hilo hace meses, hablando de los pros y contras sobre PDO o MySQLi. Desde ahí, se puede acceder a un artículo muy interesante del blog TuFunción: "PHP y MySql: una estrecha relación". Se muestran los resultados de unos test. para comprobar el rendimiento de los diferentes drivers. El driver MySqli demuestra un rendimiento de casi el doble respecto a PDO.

Las conclusiones del artículo son:

  • Rendimiento: MySqli o MySql
  • Características: MySqli
  • Facilidad de uso: PDO

Trabajando con el tipo de campo BIT de MySQL en PHP

BitsEl tipo de dato BIT en Mysql, antes de la versión 5.0.3 era almacenado como un TINYINT. En las versiones posteriores es utilizado para almacenar bits, y ya es soportado por los motores de almacenamiento MyISAM, Memory, InnoDB y NDBCluster. Al ser el tipo de dato de MySQL que se traduce como un booleano de los lenguajes de programación, es común usarlo para los campos en que almenamos información en que solo tiene dos estados: si es activo o no, si es apto o no, si es público o no, … No confundir con el tipo de datos BOOL, que en realidad es un TINYINT.

Sigue leyendo Trabajando con el tipo de campo BIT de MySQL en PHP

Características de mysql_unbuffered_query() en PHP

PHP MySQLA muchos programadores de PHP les debe sonar la función mysql_unbuffered_query(), que por el nombre se deduce que es como la función mysql_query() pero sin pasar por el buffer, no? Un razonamiento rápido y obvio. Pero hay que definir mejor que es lo que realiza y como lo realiza, y cuales son sus ventajas y desventajas para poder decidir cuando utilizar una o otra función.

mysql_unbuffered_query() realiza una peticion SQL a MySQL, que puede ser un SELECT, UPDATE, SHOW, EXPLAIN, DELETE, … Las filas que devuelve la petición no son almacenadas en un búfer como lo ha hace mysql_query().

Sigue leyendo Características de mysql_unbuffered_query() en PHP