¿Por qué el rendimiento de postgrelsql no es tan bueno como el de mysql?
2. Cualquier sistema tiene su límite de rendimiento. En el caso de una alta lectura y escritura simultáneas y la carga está cerca del límite, el índice de rendimiento de PG aún puede mantener una curva hiperbólica o incluso logarítmica. Al alcanzar el pico, ya no disminuirá, mientras que MySQL muestra claramente un pico y luego disminuye (después de la versión 5.5, hay un complemento en la versión empresarial que puede mejorar mucho, pero requiere pago).
3. PG ha dominado el campo SIG durante muchos años porque tiene una gran cantidad de tipos geométricos. De hecho, PG no solo tiene una gran cantidad de diccionarios, matrices y tipos geométricos. mapa de bits y otros tipos de datos es mucho peor que mysql. Instagram adopta PGS porque la extensión de base de datos espacial POSTGIS de PG es muy superior a myspatial de MYSQL. instagram se debe a que POSTGIS, la extensión de base de datos espacial de PG, es muy superior a myspatial de MYSQL y usa PGSQL.
4. La función "sin bloqueo" de PG es muy destacada e incluso incluye operaciones como aspirar para organizar el espacio de datos. Esto está relacionado con la implementación MVCC de PGSQL.
5. PG puede usar funciones e índices condicionales, lo que hace que el ajuste de la base de datos PG sea muy flexible. MySQL no tiene esta función, y los índices condicionales son muy importantes en las aplicaciones web.
En sexto lugar, PG tiene capacidades de programación SQL extremadamente sólidas (¡Turing 9.x completo, admite recursividad!) y tiene un conjunto muy rico de funciones estadísticas y recursividad. En quinto lugar, hay funciones estadísticas muy ricas y soporte de sintaxis estadística, como funciones analíticas (llamadas funciones de ventana para ORACLE y funciones de ventana para PG). Los procedimientos almacenados también se pueden escribir en varios idiomas y el soporte para R también es muy bueno. En este punto, MYSQL está muy por detrás. Muchas funciones de análisis no son compatibles. El almacenamiento de datos interno de Tencent es principalmente MYSQL, pero el análisis de datos es principalmente HADOOP PGSQL.
7. PG tiene una variedad de arquitecturas de clúster para elegir. plproxy puede admitir duplicación o división a nivel de declaración, slony puede realizar configuraciones de sincronización a nivel de campo y el modo de espera puede crear configuraciones de sincronización a nivel de archivos WAL. En espera, puede construir un clúster de separación de lectura y escritura a nivel de archivo WAL o de transmisión. La frecuencia de sincronización y la estrategia del clúster son fáciles de ajustar y la operación es muy simple.
8. La longitud de la cadena de las bases de datos relacionales generales es limitada, solo alrededor de 8k. El tipo de TEXTO ilimitado tiene funciones limitadas y solo se puede acceder a ellos como big data externos. Se puede acceder directamente al tipo TEXTO de PG y la sintaxis SQL tiene expresiones regulares incorporadas, que se pueden indexar, buscar en texto completo o se puede usar xml xpath. Con PG, se puede guardar la base de datos de documentos.
9. Para las aplicaciones WEB, la función de replicación es muy importante. MySQL ahora se replica de forma asincrónica y pgsql puede lograr una replicación sincrónica, asincrónica y semisincrónica. Además, la sincronización MySQL se basa en la replicación binlog, que es similar a la replicación basada en secuencias de Oracle. Es muy difícil lograr la sincronización. Este método es más adecuado para la replicación externa. WAL, que puede lograr una replicación sincrónica. Al mismo tiempo, pgsql también proporciona replicación de transmisión.
10. pgsql tiene mejor soporte para la arquitectura numa que mysql y su rendimiento de lectura es mejor que MYSQL.
El envío de pgsql puede ser completamente asincrónico, pero la tabla de memoria de mysql no es lo suficientemente práctica (debido a los bloqueos de la tabla)
Finalmente, aquí hay algunos puntos que me hacen sentir que PG es inferior a MySQL.
En primer lugar, MySQL tiene soporte operativo útil, como slow-query.log, que PG definitivamente puede personalizar de inmediato, pero sería bueno poder configurarlo para usarlo. . está bien.
El segundo punto es el motor innodb de mysql, que puede optimizar completamente el uso de toda la memoria en el sistema, mientras que PG no utiliza completamente la memoria en memorias extremadamente grandes.
El tercer punto es que la replicación de MySQL se puede hacer con repositorios esclavos de múltiples niveles, pero antes de 9.2, PGSQL no se podía usar con esclavos que tuvieran esclavos.
El cuarto punto, a juzgar por los resultados de la prueba, la mejora del rendimiento de mysql 5.5 es muy grande. El rendimiento independiente es mejor que el de pgsql, y 5.6 debería ser aún mayor.
El quinto punto es que para aplicaciones de red, la función MC API incorporada de mysql 5.6 es muy buena, mientras que PGSQL es peor.
Algunas cosas más:
Tanto PGSQL como mysql están respaldados por empresas comerciales, pero ninguna es la misma empresa. En la mayoría de los casos, la mayoría de los desarrolladores reciben un salario.
No es correcto decir que mysql se ejecuta mucho más rápido que pgsql, la velocidad de ambos es cercana y depende en gran medida de su configuración.
Para procedimientos almacenados, funciones, vistas, etc., ambas bases de datos ahora pueden admitirlo.
Además, no existe una diferencia absoluta entre la arquitectura multiproceso y la arquitectura multiproceso. Oracle tiene una arquitectura multiproceso en Unix, mientras que en Windows es una arquitectura multiproceso.
Muchas aplicaciones de pg también son aplicaciones 24 horas al día, 7 días a la semana, como Skype. Las versiones recientes de VACUUM básicamente no afectan el funcionamiento de PGSQL después de 8.0 y pueden ejecutarse en Windows sin cygwin.
En cuanto al soporte de transacciones, no hay problema con mysql y pgsql.