Algo de bases de datos en Linux...
Daniel Serpell
dserpell en gmail.com
Jue Jul 26 16:26:29 CLT 2007
Hola!
El Thu, Jul 26, 2007 at 03:36:01PM -0400, Ricardo Mun~oz A. escribio:
> Alvaro Herrera wrote:
>> Ricardo Mun~oz A. escribió:
>>
>>
>>> - usar solo tablas InnoDB y crear siempre sus relaciones mediante Foreign
>>> Keys [3] (esto es igual para PostgreSQL)
>>>
>>
>> Observa que en cuanto usas tablas InnoDB, MySQL se vuelve *l*e*n*t*o*
>>
>
> tienes datos concretos al respecto? alguna URL con benchmarks o algo asi?
Mira en: http://www.sqlite.org/cvstrac/wiki?p=SpeedComparison
Es necesario mirar los resultados que dicen "sync", que corresponden en
MySQL a tablas InnoDB y a SQLite en modo ACID. Los scripts de medición
están disponible en esa misma página, junto con los comentarios.
Lamentablemente, la metodología de medición no parece ser favorable a
PostgreSQL, ya que al utilizarse "psql" para la conexión eso alenta las
cosas.
IMHO, MySQL nunca es una buena opción :-)
Yo recomiendo SQLite para bases locales sin multiples procesos
escribiendo, (o cuando las escrituras son esporádicas), y PostgreSQL
cuando tienes bases remotas o más de un proceso escribiendo en la base
al mismo tiempo, o bases muy grandes.
En la práctica, he utilizado SQLite con bases de hasta unos 150MB y
PostgreSQL con bases de hasta un poco más de 2GB, ambos sin ningun
problema de rendimiento o confiabilidad.
Y con respecto a los respaldos, lamentablemente con un sistema de base
de datos los respaldos no son suficientes, ya que por más que tu
respaldo de hace X horas esté completo, has perdido todas las
transacciones de las últimas X horas, lo que podría ser vital. Por esto,
en mi experiencia es mejor contar con sistemas redundantes si es
importante no perder los datos (respondiendo a la pregunta, ¿cuál es la
probabilidad de pérdida de datos que se puede tolerar?)
Daniel.
Más información sobre la lista de distribución Linux