sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué PostgreSQL es tan lento en Windows?

Hay casos en los que PostgreSQL en Windows paga una sobrecarga adicional en comparación con otras soluciones, debido a las compensaciones realizadas cuando lo portamos.

Por ejemplo, PostgreSQL usa un proceso por conexión, MySQL usa un hilo. En Unix, esto no suele ser una diferencia de rendimiento notable, pero en Windows crear nuevos procesos es muy costoso (debido a la falta de la llamada al sistema fork()). Por esta razón, usar conexiones persistentes o un agrupador de conexiones es mucho más importante en Windows cuando se usa PostgreSQL.

Otro problema que he visto es que PostgreSQL temprano en Windows se asegurará de forma predeterminada de que sus escrituras pasen por el caché de escritura, incluso si está respaldado por batería. AFAIK, MySQL no hace esto y afectará en gran medida el rendimiento de escritura. Ahora, esto es realmente necesario si tiene un hardware no seguro, como una unidad barata. Pero si tiene un caché de escritura respaldado por batería, desea cambiar esto a fsync regular. Las versiones modernas de PostgreSQL (ciertamente 8.3) tendrán por defecto open_datasync en su lugar, lo que debería eliminar esta diferencia.

Tampoco menciona nada sobre cómo ha ajustado la configuración de la base de datos. De forma predeterminada, el archivo de configuración enviado con PostgreSQL es muy conservador. Si no ha cambiado nada allí, definitivamente necesita echarle un vistazo. Hay algunos consejos de ajuste disponibles en el wiki de PostgreSQL .

Para dar más detalles, deberá proporcionar muchos más detalles sobre exactamente qué funciona lento y cómo ha ajustado su base de datos. Sugeriría un correo electrónico a la lista de correo pgsql-general.