Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son las ventajas de PostgreSQL en comparación con MySQL?

¿Cuáles son las ventajas de PostgreSQL en comparación con MySQL?

PostgreSQL es similar al marco multiproceso de Oracle y puede admitir escenarios de aplicaciones de alta concurrencia.

Mover OracleDBA a una base de datos PostgreSQL es relativamente fácil, después de todo PostgreSQL es muy similar a la base de datos Oracle.

PostgreSQL admite casi todos los estándares SQL y los tipos admitidos también son bastante ricos. El código fuente de la base de datos PostgreSQL es más fácil de leer y comprender que la base de datos MySQL. Si la capacidad del lenguaje C del equipo es relativamente fuerte, pueden desarrollar en la base de datos PostgreSQL, por ejemplo, implementar un sistema similar a greenplum, que también está en. en línea con la tendencia distribuida actual.

Para ilustrar las capacidades de PostgreSQL, aquí hay una breve comparación de las diferencias entre las bases de datos PostgreSQL y MySQL en "50 cosas que debe saber antes de migrar de Oracle a MySQL". 50 Dificultades al migrar de Oracle a Mysql

1. Mala optimización de subconsultas. (PostgreSQL puede resolver este problema)

2. La capacidad de procesamiento de consultas complejas es débil. (PostgreSQL puede solucionarlo)

3. El optimizador de consultas no es lo suficientemente maduro. (PostgreSQL puede resolverlo)

PostgreSQL es totalmente compatible con el estándar SQL-92, tiene un soporte muy completo para SQL y puede admitir consultas SQL complejas.

4. Información insuficiente sobre herramientas e indicadores de optimización del rendimiento. (PostgreSQL puede resolverlo)

PostgreSQL proporciona planes de ejecución y valores de costos detallados, lo que facilita verificar la eficiencia de ejecución de SQL.

5. La función de auditoría es relativamente débil.

6. La función de seguridad es inmadura, no existe un concepto de grupos de usuarios y roles, y no existe una función para retirar permisos (solo se pueden otorgar permisos). Cuando usuarios de diferentes hosts/redes inician sesión con el mismo nombre de usuario/contraseña, pueden ser tratados como usuarios completamente diferentes y no existe una función de cifrado incorporada como Oracle.

7. La autenticación está completamente integrada y no es compatible con LDAP, ActiveDirectory u otras funciones de autenticación externas similares.

8. MysqlCluster puede ser diferente de lo que piensas.

9. Los procedimientos almacenados y los desencadenadores tienen una funcionalidad limitada. (PostgreSQL puede resolver este problema)

PostgreSQL proporciona soporte completo para procedimientos almacenados y activadores.

10. Débil capacidad de expansión vertical.

11. MPP (procesamiento masivo paralelo) no es compatible. (

PostgreSQL es una arquitectura multiproceso, similar a la base de datos Oracle, a diferencia de MySQL, que es una arquitectura multiproceso, por lo que puede admitir MPP.

12. Admite SMP ( multiprocesador simétrico), pero si cada procesador tiene más de 4 u 8 núcleos, el rendimiento de escalabilidad de Mysql será pobre

13 No existe un segundo nivel para hora, fecha, intervalo y otros tipos de tiempo. siguientes tipos de almacenamiento.

14. El lenguaje utilizado para escribir procedimientos almacenados, activadores, eventos programados y funciones almacenadas es débil.

15) No hay recuperación. solo recuperación en avance.

16. No se admiten instantáneas. 17. El enlace de la base de datos no se admite como retransmisión para pasar declaraciones de consulta a tablas en servidores remotos. muy tosco y lleno de agujeros.

18. Las comprobaciones de integridad de los datos son muy débiles y, a menudo, ni siquiera se pueden implementar restricciones de integridad básicas. (PostgreSQL puede resolverlo)

PostgreSQL proporciona un mecanismo completo de verificación de la integridad de los datos y admite claves externas.

19. Hay algunas sugerencias de optimización para optimizar los planes de ejecución de declaraciones de consulta.

20. Solo hay un tipo de conexión de tabla: bucle anidado, que no admite sort-mergejoin ni hashjoin. (PostgreSQL puede resolver este problema).

PostgreSQL admite estos tipos de uniones de tablas.

21. La mayoría de las consultas solo pueden usar un único índice en una tabla; en algunos casos, algunas consultas pueden usar múltiples índices, pero el optimizador de consultas generalmente subestima su costo y, por lo general, son más costosos que el escaneo de tablas. es lento. (Supongamos que hay dos índices idx_1 e idx_2 en los dos campos col1 de la tabla T. En la consulta select*fromtwherecol1=:aandcol2=:b;, la base de datos PostgreSQL puede convertir esta consulta en select*fromtwherecol1=:aintersectselect* fromtwherecol2=: b, por lo que puede utilizar estos dos índices.

22. El índice de mapa de bits (bitmapindex) no es compatible. Cada motor de almacenamiento admite diferentes tipos de índices. >

23. Hay pocas herramientas de administración y las funciones no son lo suficientemente maduras.

24 No existen herramientas IDE ni programas de depuración maduros y completos, y es posible que deba escribir procedimientos almacenados en un. editor de textos insertando registros en la tabla (tabla de registro de depuración)

25. Cada tabla puede usar un motor de almacenamiento diferente (PostgreSQL puede resolver este problema)

26. puede tener comportamientos, características y funcionalidades muy diferentes (PostgreSQL resuelve este problema)

27. La mayoría de los motores de almacenamiento no admiten claves externas (PostgreSQL resuelve este problema)

28. El valor predeterminado El motor de almacenamiento (MyISAM) no admite transacciones y se rompe fácilmente (PostgreSQL puede resolver este problema)

29. InnoDB es el motor de almacenamiento más avanzado y popular, propiedad de PostgreSQL, puede resolver este problema)<. /p>

30. Ciertos planes de ejecución solo admiten motores de almacenamiento específicos. Un tipo específico de consulta de recuento que se ejecuta rápidamente en un motor de almacenamiento puede ser lento en otro motor de almacenamiento (PostgreSQL puede resolverlo).

PostgreSQL tiene un solo motor de almacenamiento, por lo que la situación anterior no existe. Además, PostgreSQL admite transacciones perfectas.

El plan de ejecución no es global****. conexión

32 La funcionalidad de búsqueda de texto completo es limitada y solo funciona con motores de almacenamiento no transaccionales (PostgreSQL puede resolver este problema)

La base de datos PostgreSQL admite búsqueda de texto completo. Hay más tipos de índices (como índices B-tree, R-tree, Hash, GiST, GIN, R-tree, GIST, GIN) para tipos espaciales y consultas

33. Un usuario completamente no autorizado puede agotar sin esfuerzo toda la memoria de un servidor y bloquearlo, o agotar todos los recursos de la CPU. 34. No hay inteligencia empresarial integrada, **Conjunto de datos y otros paquetes de software.

35. No existe ninguna herramienta similar a GridControl

36 No existe ninguna función similar a RAC. Si pregunta "Cómo construir RAC usando Mysql", solo se puede decir que está haciendo la pregunta equivocada.

37. Los tipos o campos definidos por el usuario no son compatibles. (PostgreSQL puede resolver este problema)

PostgreSQL admite tipos enriquecidos y tipos personalizados.

38. El número máximo de conexiones admitidas por consulta es 61.

39.MySQL sólo soporta una pequeña parte de la sintaxis SQL (estándar ANSISQL). No se admiten consultas recursivas, expresiones de tabla generales (instrucciones with de Oracle) ni funciones de ventana (funciones analíticas). Admite algunas extensiones de sintaxis SQL, como fusiones o funciones similares, pero es muy simple en comparación con Oracle. (

La base de datos PostgreSQL admite estas características, como funciones de ventana.

40. No se admiten columnas funcionales (columnas basadas en cálculos o expresiones). Oracle 11g admite columnas calculadas y versiones anteriores Las versiones admiten columnas virtuales (wnum, rowid)).

41. Los índices funcionales no son compatibles, solo se pueden crear índices basados ​​en columnas específicas (PostgreSQL puede resolver este problema)

PostgreSQL. admite índices funcionales.

42. Las vistas materializadas no son compatibles

43 Las estadísticas de los diferentes motores de almacenamiento varían mucho y todos estos motores solo admiten complementos simples y un determinado. rango de registros (filas en un rango). En otras palabras, las estadísticas de distribución de datos son limitadas. También hay pocos mecanismos para actualizar las estadísticas.

44. mecanismo de conmutación por error.p>

45. La función de replicación es asincrónica y tiene grandes limitaciones. Por ejemplo, es de un solo subproceso, por lo que la velocidad de recuperación del dispositivo esclavo más potente (esclavo) es muy lenta. manténgase al día con el dispositivo maestro relativamente lento

46. El clúster no es tan perfecto como parece. Tal vez haya mencionado esto antes, pero es necesario repetirlo. El diccionario de datos (INFORMATION_SCHEMA) es muy limitado y de acceso muy lento (y propenso a fallar en sistemas ocupados).

48 No se admiten operaciones de AlterTable en línea. p>49. No se admiten secuencias (PostgreSQL puede resolver este problema)

PostgreSQL admite operaciones como ALTERTABLE o CREATETABLE y no se pueden revertir ni ejecutar. en el sistema de archivos, independientemente del motor de almacenamiento que utilice (PostgreSQL puede resolver este problema)

PostgreSQL no tiene este problema.

Cada base de datos tiene diferentes escenarios de aplicación. mayor confiabilidad que MySQL y tiene mayor soporte para la coherencia e integridad de los datos. Por lo tanto, PostgreSQL es más adecuado para escenarios de aplicaciones empresariales estrictas y la velocidad de consulta de MySQL es más rápida y más adecuada para escenarios de aplicaciones de Internet con lógica empresarial relativamente simple y pocos datos. Requisitos de confiabilidad.

Lo anterior es mi opinión personal, y todos pueden criticarme y corregirme.

Cualquiera que esté de acuerdo con mi opinión es bienvenido, dale me gusta antes de irte. gracias!

Si te gusto, sígueme, ¡gracias de nuevo!