Soy relativamente nuevo en la configuración de bases de datos PostgreSQL en general y AWS.
Estoy tratando de averiguar cuáles son las diferencias prácticas entre los tipos de instancias de Amazon RDS . Un poco de contexto sobre mi organización y casos de uso:
Empecé con la capa gratuita por ahora db.t2.micro solo para ganar algo de experiencia, desarrollar y probar lo que necesito. Sin embargo, es difícil para mí entender cómo se compara esto con otros casos. Nuestro equipo también es muy consciente del presupuesto en este momento, así que estoy tratando de analizar esto antes de recomendar una actualización.
Operaciones de ejemplo que estoy tratando de hacer
\copy ) de un archivo de 11 GB (35,401,551 filas y 40 columnas) tomó alrededor de 27 minutos. ¿Actualizar la instancia ayudaría con eso? Si es así, no estoy seguro de a qué me gustaría actualizar.select count(*) de esa tabla tomó alrededor de 15 minutos (en la primera ejecución, en la segunda ejecución tomó alrededor de 3 minutos, ¿probablemente porque está almacenando en caché las estadísticas? 3 minutos todavía me parecen lentos). Nuevamente, ¿no está seguro de si actualizar la instancia ayudaría con eso? También debo señalar que no tengo claves primarias o índices agregados. Entonces, ¿podría haber otras formas de optimizar el rendimiento sin actualizar la instancia? Por ejemplo, es posible que la partición sea útil: https://www.postgresql.org/docs/10/ddl-partitioning.html . La tabla tiene una columna de state que suele ser uno de los primeros filtros que usan los usuarios, ya que a menudo los usuarios solo quieren ver uno o un conjunto de estados particulares.select ColA, count(*) group by ColA tomó alrededor de 2.5 minutosEDITAR Solo notando algunos otros recursos útiles que he encontrado:
Principalmente con los tipos de instancia dentro de RDS, las diferencias clave son las siguientes:
T usa créditos ampliables, una vez que se agota, su CPU está limitada). Como está utilizando un T2.micro , solo tiene una CPU disponible. Una vez que se agoten los créditos, solo tendrá un límite del 20% de la CPU máxima, lo que limitará lo que puede hacer.
También me gustaría señalar que si puede invertir más en la plataforma AWS, hay una solución de almacenamiento de datos dedicada para análisis que es Redshift , es probable que tenga un mejor rendimiento pero costará más, también está bifurcado de Postgres.
Si lo que busca es apegarse a Postgres en RDS, también debe considerar Aurora Postgres , que generalmente proporciona 2 o 3 veces el rendimiento de Postgres normal en RDS.