Optimización MySQL: evita usar el comodín al realizar consultas

MySQL optimización rendimientoLa velocidad es algo básico en la red. Es de tal relevancia, que hoy en día se valora como un factor más a la hora de posicionarte en el mundo de los buscadores, el llamado Google Speed Index. La red está llena de sitios hacen consultas a bases de datos MySQL, así que una buena idea sería optimizar esta interacción.

Comenzaremos hoy con algo básico. A la hora de hacer consultas es muy típico que hagamos algo así como:

SELECT *
FROM personas

Cuando en realidad solo queríamos dos campos de la tabla personas: nombre y apellidos por ejemplo:

Leer más » 2 Comentarios

¿Dónde almacena los datos MySQL?

Seguro que muchos de vosotros habréis oído hablar de MySQL e incluso otros muchos lo habréis llegado a manejar. MySQL es una base de datos relacional, en la que almacenamos datos que luego manejamos usando sentencias SQL.

MySQL logo

Sin embargo, esos datos tienen que guardarse en algún sitio. El lugar suele ser: /var/lib/mysql pero para asegurarnos, debemos mirar el fichero my.cnf. Este fichero se encuentra en:

  • Ubuntu, Debian y derivados: /etc/mysql/my.cnf
  • Red Hat, Fedora y derivados: /etc/my.cnf

Allí podemos ver el valor de datadir. La forma concreta en que se almacenan los datos dependerá del motor de almacenamiento que uses: MyISAM, InnoDB, etc.

Leer más » 7 Comentarios

¿Cómo hacer una copia de seguridad (backup) de WordPress?

Las copias de seguridad o backup  de todo tipo de sistemas e instalaciones son el medio de mantenimiento preventivo más popular en el mundo de la informática. De forma puntual o rutinaria, creamos una réplica que nos permitirá hacer funcionar un sistema en caso de fallo, recuperando los datos del estado anterior. WordPress no puede ser menos y aunque existen plugins y otros métodos para hacerlo voy a mostraros la mecánica básica.

WordPress copias de seguridad - backup

Cualquier instalación de WordPress tiene dos partes diferenciadas:

  • La común: el núcleo de WordPress
  • La propia de cada blog: la que hace que tu instalación de WordPress sea diferente a todas las demás

La parte propia consiste en:

  • El directorio /wp-content, en donde se encuentran los temas, las subidas y los plugins con los ficheros que generan
  • El fichero wp-config.php
  • Los datos dentro de MySQL

Leer más » 5 Comentarios

Diferencia entre DELETE, TRUNCATE y DROP en SQL

Cuando manejamos una base de datos SQL, además de manejar creaciones de tablas (CREATE TABLE), inserciones (INSERT), consultas (SELECT) y actualizaciones (UPDATE); dentro de las operaciones básicas también tenemos las que implican borrado. Borrado de diferentes tipos: de filas que cumplan una serie de condiciones, de todos los datos de una tabla o de la tabla con su estructura. Veamos cada una de ellas, con su sintaxis y un ejemplo.

Manejamos para el ejemplo una tabla entradas, que trata sobre la entradas de un blog y que almacena básicamente la siguiente información: identificador, título, cuerpo y tiempo de salida.

DELETE

Borra una serie de filas de la tabla. Podemos usar una claúsula WHERE para limitar las filas a borrar, a las que cumplan una condición. La sintaxis sería:

DELETE FROM nombre_tabla WHERE condicion

Leer más » 3 Comentarios

Formatear y redondear un número en MySQL

Cuando trabajamos con cantidades con decimales en MySQL, es posible que queramos formatear nuestro número. Este problema es muy usual si usamos números en coma flotante: FLOAT y DOUBLE. Yo siempre suelo recomendar excepto para aplicaciones de muy alto rendimiento usar el tipo DECIMAL, de forma que guardemos el valor exacto y no aproximado (otro día hablaremos de la representación de números decimales en forma de coma flotante y las ventajas e inconvenientes que tiene).

Imaginemos que guardamos las cantidades de un determinado importe en DOUBLE, al hacer una consulta nos sale una cantidad de números decimales demasiado grande. La idea es redondear el número de forma que sólo aparezcan sólo dos decimales:

SELECT ROUND(importe, 2)
FROM compras;

Leer más » 3 Comentarios

Unir cadenas en MySQL

Es muy frecuente que a la hora de almacenar los nombres y apellidos, por ejemplo, de unas personas en la base de datos los pongamos en dos columnas separadas. A la hora de hacer consultas, necesitaremos hacer unirlas, es decir concatenarlas.

En MySQL esta operación puede ser directa, imaginemos una tabla personas con la siguiente estructura:

  • DNI: varchar que es clave primaria
  • Nombre: varchar
  • Apellidos: varchar

Queremos hacer una consulta en la que aparezca el dni seguido de los apellidos y el nombre unidos y separados por una coma. Sólo tendremos que hacer lo siguiente, usar la función CONCAT():

Leer más » 4 Comentarios

Diferencias entre un servicio de alojamiento con Linux y otro con Windows

En muchas ocasiones cuando contratamos un plan de hosting, no nos fijamos en uno de los detalles más importantes, el sistema operativo sobre el que va a estar ejecutando el servidor que nos provea de alojamiento web y otras muchas funciones. Aparte de otras alternativas que existen derivadas de sistemas como la familia BSD, las empresas que proporcionan hosting suelen decantarse mayoritariamente por dos sistemas operativos, GNU/Linux y Windows. Sin tener estadísticas fiables, no puedo decir a ciencia cierta que la mayoría usan GNU/Linux, aunque dando una paseo por la red, podemos hacernos una idea de que sí puede ser cierta dicha afirmación. También podremos ver bastantes empresas de hosting que ofrecen planes basados en servidores de Microsoft, por lo que en este artículo veremos en qué influye como clientes de un servicio de alojamiento web, que elijamos uno u otro sistema.

Introducción

Como en otros tantos aspectos de las nuevas tecnologías, en el mercado del hosting, tenemos varias posibilidades en cuanto a sistema operativo se refiere. Las dos mayoritarias a día de hoy, GNU/Linux y Microsoft Windows, se reparten una gran cuota de mercado lo que no quiere decir que no existan otras alternativas, como por ejemplo servidores basados en NetBSD o FreeBSD. En este artículo veremos desde el punto de vista de cliente de una empresa de hosting, qué puede hacer que nos decantemos entre una u otra opción.

Leer más » 6 Comentarios

Curso ADO.NET con MySQL – Conclusiones

Se acaba el año y con él quiero dar por finalizado el curso de ADO.NET sobre Mono con MySQL que desde hace unos meses empecé en este portal. Llegamos a las conclusiones. En breve, anunciaré un nuevo curso de algo que domine y que no me cueste mucho tiempo desarrollar, cuando se me acaben las ideas, ya os pediré directamente recomendaciones.

Conclusiones

Aunque existen otras opciones para realizar labores similares a ésta, como Hibernate o directamente JDBC, siempre es bueno como he dicho desde un comienzo, conocer más posibilidades sobre todo en el caso de este tipo de tecnologías tan difundidas a día de hoy. No digo que Mono esté tan difundido como algunos querríamos, pero sí es verdad que por suerte o por desgracia, .NET Framework está presente en cada vez más ordenadores, y la compatibilidad de Mono con la plataforma de Microsoft le augura un futuro muy prometedor.

Leer más » 3 Comentarios

Curso ADO.NET con Mono y MySQL – Rellenando un DataSet

Posiblemente, leer hacia delante sea una opción muy interesante en algunas ocasiones… pero en otras muchas no lo será y tendremos que recurrir a los versátiles DataSet. Haremos un uso básico de los mismos en este ejemplo, porque como os he dicho ya sus posibilidades son realmente amplias. Insertaremos un nuevo concepto, el de la clase MySqlAdapter que será quien se encargue de rellenar el DataSet a través del comando que ejecute el SELECT.

Previamente deberemos incluir la referencia a nuestro proyecto para el ensamblado System.Data que lo encontraréis dentro del menú de referencias en la pestaña “Paquetes”. En el comienzo del fichero también deberéis rellenar su respectivo using System.Data.

Una vez hecho esto, para rellenar el DataSet sólo tendremos que hacer:

Leer más » 1 Comentario

Curso ADO.NET con Mono y MySQL – Primeras consultas

La clase que utilizaremos ahora será MySqlCommand y nuestra primera consulta, será una inserción sobre la base de datos. Insertaremos un registro más. La secuencia de pasos a efectuar es la siguiente:

  1. Creamos la consulta y la asignamos a una cadena
  2. Creamos el comando con la consulta que acabamos de crear
  3. Asignamos la conexión pertinente al comando
  4. Lo ejecutamos

Ampliando nuestro ejemplo, quedaría así:

public static void Main(string[] args)
{
	MySqlConnection conexion = new MySqlConnection();
	conexion.ConnectionString = "database=linuxhispano;
server=localhost;user id=root; pwd=contraseña";
	conexion.Open(); 

	try
	{
		string consulta = "INSERT INTO ejemplo (numero , tema)
 VALUES ('27', 'Sonido')";
		MySqlCommand comando = new MySqlCommand(consulta);
		comando.Connection = conexion;
		int resultado = comando.ExecuteNonQuery();
		Console.WriteLine("Filas afectadas : "
 + resultado.ToString());
	}
	catch(MySqlException exc)
	{
		Console.WriteLine("Ocurrió un error : " + exc.Message);
	}
	finally
	{
		conexion.Close();
	}
}

Como se puede apreciar, hemos cuidado que se finalice la conexión aunque existan errores, con finally y hemos controlado los posibles errores que aparezcan. En nuestro caso debería decir: “Filas afectadas: 1”, puesto que la inserción sólo realiza una.

Leer más » 2 Comentarios