Soy un DBA novato y tengo experiencia en Microsoft SQL Server pero quiero saltar a FLOSS.
Estoy comenzando una empresa, y desarrollamos una aplicación (PHP) con un backend de Postgres, e hicimos algunas pruebas en comparación con MySQL también. Observamos que MySQL es dos veces más rápido que PostgreSQL.
Hice una prueba de rendimiento tangible:
- Las mismas columnas en la tabla con tipos de datos de columna equivalentes.
- El mismo número de filas.
- Los mismos índices en ambos (clave primaria incluida).
- La carga de la CPU está inactiva y la máquina Postgres es significativamente mejor.
- Y la misma consulta (obviamente).
¿Qué estoy haciendo mal?
PD: leí muchos "howtos" sobre ajuste de rendimiento para motores de bases de datos.
PS (2): Estamos usando InnoDB (un archivo por tabla) en la base de datos MySQL.
Hola mat
Hice las tres consultas de selección comunes (y más difíciles).
La pregunta sobre el disco, ciertamente no es lo mismo; En Postgres es un SSD (casi tres veces más rápido).
Datos de caché de MySQL:
+------------------------------+----------------------+
| Variable_name | Value |
+------------------------------+----------------------+
| binlog_cache_size | 32768 |
| have_query_cache | YES |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| max_binlog_cache_size | 18446744073709547520 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 16777216 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| table_definition_cache | 256 |
| table_open_cache | 64 |
| thread_cache_size | 8 |
+------------------------------+----------------------+
No sé cómo ver esto en PostgreSQL.
Gracias por adelantado.
explain analyze
. Para que sea más fácil de leer, puede cargar el plan para explicar.depesz.com
postgresql.conf