Agilizar tus aplicaciones PHP con la elección correcta de funciones

Hay muchos consejos para agilizar tus scripts de PHP, pero en este caso se concentran en el uso de funciones y sus funciones alias. Por lógica la llamada a una función será más rápida que la llamada a una función alias, salvo en un caso que la verdad me sorprende.

Los porcentajes que se muestran son reales, pero quizás no sean perceptibles, ya que el uso de estas funciones puede ser mínimo en un desarrollo, pero bueno, si algo de tiempo obtenemos, mejor que mejor.

Las funciones son las siguientes:

  • sizeof y count: count es un 12% más rápida.
  • is_int y is_integer: is_int es un 9% más rápida.
  • chop y rtrim: rtrim es un 7% más rápida.
  • doubleval y floatval: floatval es un 4% más rápida.
  • fwrite y fputs: fputs es un 23% más rápida, esta es la comparativa que me sorprende, porque fputs es alias de fwrite. Que alguien me lo explique, ¿una diferencia del 23%? o no son alias o el ejemplo está mal medido.
  • implode y join: implode es un 5% más rápida.
  • ini_alter y ini_set: ini_set es un 19% más rápida.

7 tips for lightning fast PHP sites

Consejos iniciales para MySQL

Una serie de consejos para aquellos que empiezan con MySQL o que vienen de usar otra base de datos.

  • Motores de almacenamiento: los storage engines son podríamos decir que tipos de tablas, y la elección de estos puede ser fundamental, ya que algunos poseen características que otros no tienen, por ejemplo InnoDB tiene constraints de claves secundarias.
  • Escalado (scale-out vs scape-up): el escalado puede ser de dos tipos scale-out que se refiere a la capacidad de mejorar el servidor, y scale-up que es la capacidad de añadir más servidores. MySQL realiza mejor el scale-out que el scale-up.
  • Copias de seguridad: para realizar las copias de seguridad se usa el comando mysqldump, aunque si dispones de Linux puedes usar LVM, o también puedes usar la replicación.
  • Permisos: no existen los roles, los permisos se crean a partir del USERID.
  • Collations: por defecto, si se comparan strings no son sensibles a mayúsculas minúsculas (a=A).
  • Autocommit: activo por defecto.
  • Optimización: es recomendable usar los logs de las slow queries para ver qué va mal en nuestro sistema.
  • SQL_MODE: si estás preocupado por la integridad de los datos, deberás leer información sobre el SQL_MODE.
  • Isolation levels: importante leer sobre los isolation levels ya que tiene distinto comportamiento que en otras bases de datos como Oracle.

tips for MySQL newbies