with control database postgresql firebird

database - control - Postgres vs Firebird



liquibase (8)

Estoy buscando utilizar Firebird o Postgres en mi próximo proyecto de desarrollo ... en gran parte porque ambos están disponibles bajo una licencia similar a BSD.

Encontré una gran comparación de las dos bases de datos en http://web.archive.org/web/20100305134128/http://www.amsoftwaredesign.com/pg_vs_fb

Pero esta comparación tiene más de 4 años y ambas bases de datos han avanzado mucho desde entonces.

¿A alguien le importa actualizar la tabla de comparación para que sea relevante para las versiones actuales de Firebird y Postgres ... o tiene un enlace a un sitio que hace una buena comparación reciente entre las dos bases de datos?


Posibles copias de seguridad basadas en el sistema de archivos
Sí (el administrador de correo debe ser detenido)

no es verdad. desde 8.1 (si recuerdo bien) es posible activar el archivo WAL y luego crear copias de seguridad basadas en sistemas de archivos sin cerrar nada. Busque PITR (punto en el tiempo de recuperación) en los documentos para obtener más información


AFAIK cada uno de los No en la columna de Postgres de la página que citó sigue siendo un No, aunque las bases de datos de solo lectura se pueden tener efectivamente al otorgar solo permisos de selección en todas las tablas de una base de datos. Sin embargo, hay muchas características nuevas desde 8.2. Algunos de 8.4 :

  1. Funciones de ventana
  2. Expresiones de tablas comunes y consultas recursivas
  3. Parámetros por defecto y variados para funciones.
  4. Restauración paralela
  5. Permisos de columna
  6. Configuración regional por base de datos

... y algunos de 8.3 :

  1. La búsqueda de texto completo está integrada en el sistema de base de datos central.
  2. Soporte para el estándar SQL / XML, incluyendo nuevos operadores y un tipo de datos XML
  3. Tipos de datos enumerados (ENUM)
  4. Arreglos de tipos compuestos
  5. Tipo de datos de identificador único universal (UUID)
  6. Agregar control sobre si los NULL ordenan primero o último
  7. Cursores actualizables
  8. Los parámetros de configuración del servidor ahora se pueden establecer por función
  9. Los tipos definidos por el usuario ahora pueden tener modificadores de tipo

... Si Firebird tiene esto, no lo sé.


Debe elegir una tecnología como RDBMS no (solo) para comparar la lista de características, sino para responder a preguntas como estas:

  • ¿Es lo suficientemente confiable para sus necesidades?
  • ¿Se adapta a todas sus necesidades?
  • ¿Qué son las perspectivas / soporte / desarrollo / documentación?

Para mí, FB no es una buena opción. Puedo señalar dos historias:

  • Escribí restricción en la mesa. Los usuarios agregan algunas cadenas a la tabla. Después de un tiempo, el usuario está intentando agregar una cadena más, pero FB se queja por la restricción. Que pasa Esta nueva cadena está seguramente bajo restricción. ¡El problema está en una última cadena que se agregó antes! Esa cadena se agregó hace algún tiempo, estaba equivocada, y hasta ahora está en DB, y quién sabe cuántos datos erróneos están ahora en DB. Muy mal. FB implementa las restricciones de una manera incorrecta.
  • Escribí un procedimiento almacenado (SP). FB lo almacenó en DB, FB puede ejecutarlo y funciona: seleccione los datos como se espera. No hay una sola advertencia. Entonces la copia de seguridad se realiza sin errores. Y solo en la restauración, FB se queja de que algo anda mal con SP y ... no tiene una copia de respaldo recuperable ahora.

Puedo señalar dos o tres más, pero esto es suficiente para que lo diga: no, FB no es mi elección, no es RDBMS, es un juguete.

Y tienen mala documentación. De hecho no hay referencias reales con cada lanzamiento. Cuando la gente pregunta en los foros: ¿qué es una lista completa de funciones en la versión XX? La respuesta estándar es: tomar una lista de la última versión oficial de Interbase y agregar (eliminar) funciones de las "notas de la versión" de todas las versiones posteriores.

Y tienen extraña estrategia de apoyo / desarrollo. Están trabajando en lo que es interesante para ellos, en problemas técnicos profundos, no en lo que es realmente crítico o molesto para los usuarios.


He estado trabajando con Firebird durante mucho tiempo y recomiendo NO usarlo de ninguna manera. Tienen muchos problemas fundamentales que Postgres no tiene. Por no decir muchos, solo diga que todavía no tienen el comando "alterar vista". Para alterar una vista, debe soltarla y volver a crearla y todas las vistas, en función de ella. Este es uno de los muchos errores de FB. No es correcto comparar estos motores DB en absoluto. He tenido muchos casos en los que la base de datos Firebird estaba dañada incluso sin pérdida de energía, con las cargas de trabajo habituales, etc. Si aún estás decidiendo, ¡no uses Firebird! Si ya eligió FB, recordará mis palabras más tarde :)


Para aquellos que usan Firebird, sugeriría leer las Notas de la versión de Firebird 2.1 para comprender un problema de corrupción de la base de datos en versiones anteriores de Firebird que se ejecutan en Linux.

En resumen, tiene que ver con un error en Linux. Para Firebirds más antiguos, la solución es montar el sistema de archivos afectado con la opción de sincronización . El problema se soluciona en FB2.1.


Puedo comentar sobre Firebird. Lo siguiente cambió desde la primera comparación:

¿Arquitectura multihilo disponible? Si (super servidor)

En realidad, Classic Server es el tipo de servidor preferido para la escalabilidad. A partir de Firebird 2.5 también hay una arquitectura llamada SuperClassic. Escribí un pequeño post sobre las diferencias: ¿ SuperServer, ClassicServer o SuperClassic?

¿Almacena la información de transacción en el mismo archivo que los datos? Si (en rojo)

No veo cómo esto podría ser un problema para ser escrito en rojo. Firebird usa escrituras cuidadosas para asegurar que la estructura de la base de datos sea siempre consistente.

¿Tablas temporales? No

Disponible en Firebird 2.1. Notas de lanzamiento

Rico construido en funciones? No

Firebird 2.1 también mejoró esto. Notas de lanzamiento

Múltiples métodos de autenticación (es decir, LDAP) No

Si bien no hay compatibilidad con LDAP, Firebird 2.1 permite la autenticación de Windows. Notas de lanzamiento

Crear tipos definidos por el usuario? No

No estoy seguro de qué quiere decir el autor aquí, pero Firebird ha tenido dominios para siempre.

¿Requiere copia de seguridad / restauración para compactar? Si (en rojo)

Discutible. El espacio de la base de datos se reutiliza. Me resulta difícil imaginar la necesidad de reducir una base de datos en producción.

¿Utilizar expresiones regulares POSIX en consultas? No

Firebird 2.5 soporta expresiones regulares. Notas de lanzamiento

Monitoreo de la base de datos? No

Sí, Firebird 2.1 admite la supervisión de bases de datos a través de tablas del sistema. Firebird 2.5 agrega soporte para instalaciones de rastreo.
Conozco al menos una excelente herramienta de monitoreo de bases de datos para Firebird . ;)

Posibilidad de consultar bases de datos en otros servidores locales o remotos. No

Firebird 2.5 puede consultar bases de datos remotas. Notas de lanzamiento



Una cosa importante es la implementación:

  • Firebird no funciona bien con ext3 en Linux, debe usar XFS o algo similar.
  • Por lo que sé, PostgreSQL todavía no se ejecuta en los servidores de Windows.