Entradas etiquetadas ‘innodb

Personalmente creo haber tenido mucha suerte ya que por una cosa o por otra he participado en varios proyectos que manejan grandes bases de datos, actualmente con Resultados de fútbol y BeSoccer trabajo a diario con un gran volumen de datos que me ayuda a ir cogiendo experiencia a la hora de afrontar el planteamiento de nuevas funcionalidades o mejoras para el proyecto.

A mi manera de ver lo más importante es llegar a comprender que el problema al final se reduce en conocer perfectamente la tecnología utilizada y cuáles son sus ventajas y desventajas.

Un ejemplo claro está en el uso de MySQL, seguro que alguna vez has escuchado aquello de que MySQL no es recomendado para ser utilizado con grandes tablas. Pero realmente MySQL no es lento con grandes tablas sino que para conseguir un gran rendimiento con MySQL es necesario diseñar la base de datos siendo consciente de lo que puede y no puede hacer el motor de base de datos, tampoco digo con esto que MySQL es mejor que Oracle o PostgreSQL sino que lo que funciona y es eficaz en una no tiene porque serlo en las otras.

Claves en la escalabilidad de MySQL

Veamos algunas de las posibles claves a la hora de mejorar la escalabilidad de una base de datos MySQL:

1. Motor de base de datos
Acertar en la elección del motor de base de datos (MyISAM ó InnoDB)

Cómo comentamos hace unos días hay que ser conscientes de las ventajas y desventajas de cada uno de ellos.

2. Buffers
Cuando no hay memoria suficiente para el manejo de la base de datos notaremos un descenso gradual del rendimiento, la solución sería asegurarnos que tenemos memoria suficiente para el volumen de datos que estamos utilizando.

3. Índices
Es muy sencillo comprender la importancia de los índices, sin un índice, MySql tiene que iniciar una búsqueda por el primer registro y leer toda la tabla para encontrar los registros relevantes.

4. Consultas lentas
Si los anteriores puntos no nos dan la solución probablemente nos tengamos que centrar en la optimización de las consultas, una tarea complicada con la que podemos ahorrar mucho tiempo si conseguimos desde el principio detectar las consultas lentas (slow queries).

Si ninguno de estos puntos soluciona nuestro problema de escalabilidad tendremos que intentarlo con alguno de las siguientes soluciones que son algo más complicadas.

Llegado a este punto en el que necesitamos escalar nuestra base de datos y ninguna de las anteriores soluciones ya nos sirven tendremos que decidir entre:

Escalar verticalmente

Añadir más recursos a un nodo del sistema para mejorar el rendimiento de la base de datos, se trataría de hacer una inversión en hardware.

Pros:
Casi todos los sistemas escalan bien verticalmente.
Fácil de implementar
Fácil de administrar

Contras:
Alto coste del hardware

Escalar horizontalmente

Agregar más nodos al sistema. Se puede escalar horizontalmente con mejoras de hardware (agregar nuevas computadoras al sistema) ó con mejoras de software (Replicación de datos ó “Sharding” por ejemplo)

Pros:
Coste lineal

Contras:
Difícil de implementar
Difícil de administrar

Escalar horizontalmente y verticalmente

Se puede optar por está opción, habitualmente se escala de manera verticalmente mientras el presupuesto lo permita y cuando ya aumentan excesivamente los costos se escala horizontalmente.

Conclusiones

Es relativamente difícil llegar a tener problemas con la base de datos y si lo llegamos a tener será una buena noticia porque significa que nuestro proyecto es lo suficientemente grande como para comenzar a buscar solución a unos problemas que de ser solucionados nos van a permitir seguir creciendo.

Escalar verticalmente es relativamente fácil ya que mientras haya dinero para soportar el coste de hardware no tendremos problemas de escalabilidad, el verdadero reto es conseguir escalar de manera horizontal manteniendo controlado el coste de desarrollo, es realmente complicado porque si llegamos a este punto seguramente careceremos de ejemplos prácticos de cómo hacerlo ya que las estructuras de bases de datos pueden ser muy dispares, por ello no hay ningún método infalible.

El redondeo de Excel

27 de septiembre de 2007

en: Sin categoría

Se ha comentado mucho sobre este tema en estos dos últimos días, un usuario de Google Groups reporto hace poco, un error en el Excel 2007 de Microsoft. Dicho error ocurre cuando el resultado de una operación debe devolver 65535, pero no es así y devuelve 100.000 ¡Excel redondea a lo bestia!.

Veamos un ejemplo: si dispones de una versión de Microsoft Excel en tu Pc (espero que no!) prueba a hacer la siguiente operación.

- 850 por 77’1… El resultado es 100.000, este resultado puede llegar a ser creible si nuestra capacidad de cálculo no esta especialmente desarrollada.

- Ahora coge una calculadora o algún aparato capaz de realizar cálculos (un móvil por ejemplo), realiza la misma operación: 850 por 77’1… El resultado es 65.535, este resultado no concuerda con el anterior, esto nos lleva a pensar que uno de los dos sistemas está equivocado, en este caso hablamos de que se equivoca Microsoft Excel 2007 un programa que nos ha costado un mínimo de 150 €.

Google y PowerPoint

18 de abril de 2007

en: Negocio

Hace algún tiempo ya se rumoreó sobre este tema debido a las constantes actualizaciones y desarrollo de nuevos productos por parte de Google, ahora ya parece definitivo el acercamiento a este servicio de su futuro paquete ofimática debido a la compra de Tonic Systems, esta empresa cuenta con herramientas para la creación y edición de presentaciones… justo lo que anunciabamos que quería Google.

No hay que ser muy listo para decir que seguramente superará con creces la ofrecidad por Microsoft (Powerpoint), el nombre en código de esta aplicación aún no oficial es Presently y no es otra cosa que un juego de palabras que ya fué utilizado por los chicos de Writely (Servicio que a posteriori adquiriese Google).

Estos son los mensajes a partir de los cuales saltó este rumor sobre Presently, Google los borro a las pocas horas pero todavía se puede encontrar una copia aqui.

Clippit ha muerto

11 de febrero de 2007

en: Sin categoría

Se ha hablado mucho de Windows Vista y Microsoft Office 2007, pero ha pasado inadvertida la muerte de “Clippit“, bueno, morir no, simplemente Microsoft no lo ha incluido en su nueva versión de Office, la 2007.

¿No sabes quién es Clippit?, es ese pequeño clip que saltaba cada vez que movías el ratón en las anteriores versiones de Microsoft Office…

¿Cuántas veces has odiado a Clippit, el asistente de Microsoft Office? ¿Cuantas veces habrás querido graparle la cabeza? , con la salida de esta nueva versión ya no será posible a menos que sigas utilizando una de las versiones antiguas de Microsoft Office, se han hecho numerosas parodias sobre este personaje que poco a poco se ha ido ganando nuestros corazones, ahora le toca el turno a otro tipo de asistentes mucho más reales.

Cómo ya se sabe tras las nuevas adquisiciones y el desarrollo de nuevos productos parece que definitivamente Google se está decantando por la creación de un servicio que pueda competir con Microsoft Office, pues este servicio esta cada día más cerca y más aun viendo el último rumor que circula por la red (Presently), hace unos días hablábamos de una nueva característica en Gmail que apuntaba en esta dirección.

Ahora Google quiere lanzar una utilidad para presentaciones, no hay que ser muy listo para decir que seguramente superará con creces la ofrecidad por Microsoft (Powerpoint), el nombre en código de esta aplicación aún no oficial es Presently y no es otra cosa que un juego de palabras que ya fué utilizado por los chicos de Writely (Servicio que a posteriori adquiriese Google).

Nueva característica de Gmail

28 de enero de 2007

en: Negocio

Si hoy has utilizado Gmail (Versión US) posiblemente hayas notado que han incorporado una nueva característica, cómo he señalado antes unicamente esta para aquellos que lo teneis configurado en su versión en Inglés, para probar esta característica podreis cambiar el idioma en la pestaña de configuración.

Tras las nuevas adquisiciones y el desarrollo de nuevos productos parece que definitivamente Google se está decantando por la creación de un servicio que pueda competir con Microsoft Office.

Prueba de ello es la integración de una nueva característica en su servicio de correo Gmail, a partir de ahora una vez que recibimos un archivo adjunto compatible con alguna de las herramientas de Google Docs, se nos ofrecerá la posibilidad de abrir el archivo por medio de este servicio: