El porno prefiere Redis

(13 comentarios)

YouPorn es una página que nadie aquí visita nunca, pero que, misteriosamente, se ha convertido en la 94ª página más visitada de Internet. Supera los 100 millones de páginas vistas por día, consume más de 3 terabytes de ancho de banda cada 24 horas, y tiene que hacer frente a más de 300.000 consultas SQL por segundo.

Muy impresionante, sí, pero, ¿por qué este interés repentino en el tedioso mundo del porno? La respuesta es que hace un par de semanas migraron toda su infraestructura de MySQL a Redis, y parece que están muy impresionados con el rendimiento de este motor de base de datos. No está de más recordar el papel tan determinante que tuvo esta industria en el triunfo de VHS frente a Beta, por ejemplo.

Si queréis saber más sobre el funcionamiento interno de YouPorn, y no os queda muy lejos, podéis acercaros a la ConFoo.CA, en Montreal, Canadá, donde hablaran sobre la migración y otros temas igual de tórridos.

Vía

Guardar consultas con parámetros en Navicat

(14 comentarios)

Navicat es, desde que lo redescubrí gracias a un compañero de trabajo, mi cliente de base de datos preferido. Tal vez sea por costumbre. Quizás, el que sea multiplataforma (Windows, Linux y Mac OS). O el hecho de que se pueda utilizar con los sistemas gestores de bases de datos más populares del mercado (MySQL, SQL Server, SQLite, Oracle y PostgreSQL). Lo importante es que me gusta. Y una de las características que me gustan, aunque no sea muy impresionante, es que permite guardar las consultas que utilices habitualmente. Es más, se pueden guardar consultas con parámetros, y Navicat mostrará un diálogo para que introduzcamos un valor al intentar ejecutarla.

Para ello sólo tenemos que preceder el nombre del parámetro con el símbolo del dólar, y rodearlo con corchetes, de esta forma:

Consultas con parámetros en Navicat

MySQL

(49 comentarios)

MySQL es uno de los sistemas de gestión de bases de datos más populares del mercado. Se trata de un SGBD basado en el modelo relacional, con licencia dual GPL y propietaria, desarrollado por MySQL AB, una compañía propiedad de Sun Microsystems, creadores de Java, desde Enero de 2008.

En esta entrada veremos algunos de los comandos básicos utilizados a la hora de trabajar con MySQL. Si programas en Java también te puede interesar nuestra entrada sobre JDBC; si programas en Python, nuestra entrada sobre DB-API.

[Pulsa para continuar]

Bases de datos en Python

(34 comentarios)

Existen problemas para los que guardar nuestros datos en ficheros de texto plano, en archivos XML, o mediante serialización con pickle o shelve pueden ser soluciones poco convenientes. En ocasiones no queda más remedio que recurrir a las bases de datos, ya sea por cuestiones de escalabilidad, de interoperabilidad, de coherencia, de seguridad, de confidencialidad, etc.

A lo largo de este capítulo aprenderemos a trabajar con bases de datos en Python. Sin embargo se asumen una serie de conocimientos básicos, como puede ser el manejo elemental de SQL. Si este no es el caso, existen miles de recursos a disposición del lector en Internet para introducirse en el manejo de bases de datos.

[Pulsa para continuar]

Hibernate

(65 comentarios)

Usar JDBC es complejo y muy dependiente de la estructura de los datos. Sería más natural y mucho más sencillo trabajar directamente con objetos, pero es imposible con las BBDD relacionales, y las BBDD orientadas a objeto están todavía muy verdes.

La mejor opción entonces es utilizar un motor de persistencia, que es el componente software encargado de traducir entre objetos y registros. Un motor de persistencia de código abierto es Hibernate, que nos permitirá hacer cosas como poder guardar un objeto en la base de datos simplemente con session.save(miObjeto) o borrarlo con session.delete(miObjeto).

[Pulsa para continuar]

Probando, probando

(12 comentarios)

Esta entrada sirve para comprobar que todo funciona correctamente ahora que Mundo Geek se ha mudado de servidor.

Lamento los comentarios perdidos en los últimos días pero como habreis visto he tenido que lidiar con un pequeño problema con el charset de la base de datos.

Después de preguntar en varios foros (WordPress, MySQL, phpMyAdmin, …) sin encontrar la cura, la solución ha venido de manos de UTRAC (Universal Text Recognizer and Converter), un pequeño programa bajo GPL que permite auto detectar la codificación utilizada en un archivo y la conversión a cualquier otra codificación de caracteres. Recordadlo si alguna vez teneis algún problema de este tipo.

Facilitando el uso de MySQL: phpMyAdmin

(41 comentarios)

En esta serie de artículos sobre el uso de Windows como servidorDNS dinámicas con No-IP, instalación de Apache, instalación de PHP y MySQL e instalación de Zend Optimizer que hemos ido viendo estos últimos días hemos llegados al punto en que tenemos ya instalados en nuestro PC Apache, PHP y MySQL.

En esta ocasión vamos a ver cómo administrar las bases de datos MySQL de forma sencilla, sin tener que recurrir a comandos crípticos introducidos en la consola, sino a través de la potente interfaz web que nos ofrece la aplicación phpMyAdmin, escrita en PHP y código abierto.

Descarga el archivo zip de la última versión estable de phpMyAdmin desde su página web y descomprime el fichero en un directorio cualquiera, por ejemplo phpmyadmin, dentro del DocumentRoot de ApachePor defecto, C:\Archivos de programa\Apache Group\Apache2\htdocs. Lo cierto es que esto no es lo más seguro, pero si lo más sencillo, y no merece la pena complicarse.

Para configurar phpMyAdmin tendremos que editar un archivo de texto (a estas alturas ya estamos acostumbrados) llamado config.inc.php.

Sustituye $cfg[‘PmaAbsoluteUri’] = ”; por $cfg[‘PmaAbsoluteUri’] = ‘http://localhost/phpmyadmin’; para indicar a la aplicación la URL con la que se accederá a phpMyAdmin. Evidentemente, en el caso de que no hayamos colocado la aplicación en la base de DocumentRoot o hayamos utilizado un nombre distinto para el directorio de phpmyadmin, tendremos que modificar la URL de la forma correspondiente.

Si queremos ser capaces de acceder a MySQL a través de phpMyAdmin desde un PC remoto tendremos que introducir el nombre de dominio correspondiente (o la IP, si es estática) en lugar de localhost, además de haberlo activado en su momento en el wizard de configuración de MySQL, aunque es más inseguro.

Busca ahora la variable $cfg[‘Servers’][$i][‘password’] e introduce la contraseña que utilizaste durante la configuración de MySQL. Evidentemente esto no es seguro si cualquiera tiene acceso físico a nuestro PC, en cuyo caso deberíamos utilizar autentificación http ($cfg[‘Servers’][$i][‘auth_type’] = ‘http’;) o un .htaccess de forma que se nos pida el login cada vez que queramos acceder a la aplicación.

Una vez realizados estos sencillos pasos seremos capaces de iniciar la aplicación dirigiendo nuestro navegador a la URL correspondiente. En nuestro ejemplo, http://localhost/phpmyadmin/.

Captura de la interfaz de phpMyAdmin