Tengo un script que genera decenas de miles de inserciones en un db postgres a través de un ORM personalizado. Como puedes imaginar, es bastante lento. Esto se usa con fines de desarrollo para crear datos ficticios. ¿Hay una optimización simple que puedo hacer en el nivel de Postgres para hacer esto más rápido? Es el único script que se ejecuta secuencialmente y no requiere seguridad de subprocesos.Optimización de inserción de Postgres
¿Puedo desactivar todas las cerraduras, controles de seguridad, disparadores, etc.? Solo estoy buscando una solución rápida y sucia que acelere en gran medida este proceso.
Gracias.
Acepto: fsync nunca se debe apagar en producción (a menos que tenga un controlador respaldado por batería muy confiable). Pero synchronous_commit = false en realidad podría mejorar las cosas y no impone un gran riesgo –
En mi entorno de prueba 'synchronous_commit' no mejoró la velocidad lo suficiente como para hacer la diferencia. IIRC esto cortó a la mitad un proceso de creación y población de DB de 2 minutos, pero apagar fsync lo hizo funcionar en 10 segundos. No tengo decenas de miles de registros, así que mi base de datos de prueba nunca golpea el disco con 'fsync = off'. – jmz
¡Un caché respaldado por batería no puede evitar que se desactive fsync! Si su sistema operativo se bloquea o pierde potencia después de tener una sincronización ficticia, antes de que los datos se escriban en un disco, PERDERá los datos. También hay preguntas sobre las escrituras de página completa que ahora son 100% seguras incluso en los controladores RAU de caché de BBU. –