mysql - test - run mariadb in docker
¿Qué MySQL Fork/Versión para elegir? (7)
Como la mayoría de ustedes saben, Sun adquirió MySQL (y luego Oracle adquirió Sun), y durante estas adquisiciones, hubo una gran cantidad de FUD en la comunidad de MySQL que dio lugar a la creación de varios tenedores.
Hoy tenemos MySQL de MySQL, Percona (XtraDB) MySQL, OurDelta MySQL, MariaDB, Drizzle por nombrar algunos. Lo que nos lleva a la fuente del problema.
Estamos en el proceso de actualizar nuestras bases de datos (hardware / software) y me gustaría saber con cuál de las bifurcaciones debo usar. Cada uno tiene su propio conjunto de pros / contras. Actualmente estamos utilizando MySQL 5.0.x de MySQL / Linux en una máquina de 8 núcleos. Nuestro nuevo hardware es un monstruo con 32 núcleos y 32 GB de memoria que se conecta a un rápido almacenamiento de NetApp a través de FC.
Me gustaría seguir con MySQL desde MySQL, pero he escuchado historias de horror sobre el mal desempeño de MySQL 5.1 en muchos núcleos. También he oído que MySQL 5.4 funciona mejor en máquinas de múltiples núcleos, pero aún no está listo para la producción. Además, también he escuchado muchas cosas buenas sobre las construcciones de Percona.
Esto es lo que sé hasta ahora:
MySQL 5.1 de MySQL: opción confiable, pero no escala bien en una máquina grande
Percona: Escala bien, buena compañía de respaldo. No tengo mucha experiencia con eso.
MariaDB: No sé mucho sobre eso, además de que fue fundada por desarrolladores de MySQL originales (incluido Monty)
OurDelta: No sé mucho.
Drizzle: Mayormente optimizado para cloud computing
Me gustaría saber cuál es la noción general sobre este problema. ¿Con qué compilación / versión debo ir? ¿Cómo están eligiendo sus versiones / compilaciones?
¡Gracias!
Creo que todavía es demasiado pronto para cancelar MySQL por completo. No me entusiasma que Sun / Oracle obtenga las riendas, pero no tengo una idea clara de qué dirección tomarán con eso. En cualquier caso, esperaría otro año antes de pensar seriamente en cambiar a un tenedor. El tiempo dirá qué proyecto tiene los recursos y la motivación para sobrevivir, o si es necesario un tenedor.
De todos modos, si está actualizando sus bases de datos, debe considerar otros sistemas FMSS DBMS o sistemas de software de administración de datos, no solo MySQL.
Por ejemplo, si su carga de trabajo de base de datos es analítica más que transacciones, y la mayoría de los datos se agregan en lotes, debe considerar usar MonetDB , un DBMSes en columnas que es aproximadamente 1.5-2 órdenes de magnitud más rápido que MySQL cuando se realiza solo analítica.
Otra opción es PostgreSQL . Es más orientado a las transacciones, como MySQL; de hecho, son lo suficientemente similar para ser competidores adecuados. Hay argumentos para preferir PostgreSQL y argumentos para preferir una variante de MySQL .
En DB-engines.com puede encontrar otros DBMS potencialmente relevantes, FOSS y código cerrado / comercial.
Google tiene un parche de la biblioteca de memoria que supuestamente mejora el rendimiento en instalaciones de mysql multihilo / core Supuestamente, el cuello de botella del rendimiento estaba en las rutinas de asignación de memoria, y se manifestaría a partir de 4 núcleos. Actualmente estoy ejecutando un cuadro de proceso dual con 4 núcleos cada uno, y no tengo problemas con 5.1.x sin el parche de la biblioteca de memoria.
Mi mayor sugerencia para usted sería instalar 5.4 y ejecutar un conjunto de pruebas comparativas contra él. Si hace el trabajo, ve con ello. La fragmentación de las diversas bifurcaciones apesta, pero quizás sea lo mejor. Al menos los fundadores tienen dinero ahora para financiar su propia dirección ... No tomaría el consejo de seguirlos a ciegas, aunque ... Tomó mucho tiempo y esfuerzo configurar inicialmente la infraestructura mysql, y aunque no lo haría. No duelen en apoyar al equipo que lo hizo la primera vez, no hay garantía de que tengan éxito la segunda vez. Así que ... apóyelos, pero no confíe en ellos hasta que sepa que puede confiar en ellos.
Personalmente, creo que todos los que necesitan configurar una nueva instalación de MySQL hoy deberían estar usando MariaDB. MariaDB se basa en la última versión de MySQL 5.1, mantenida activamente (incluidas las correcciones de errores informados en MySQL) y en los paquetes Percona XtraDB / InnoDB.
Ni siquiera sé si "fork" describe a María con precisión, ya que están comprometidos a mantenerse al día con las versiones actuales de MySQL .
En resumen: MariaDB 5.1 = MySQL 5.1 + Percona XtraDB + parches útiles adicionales + desarrollo activo y mantenimiento
Actualización de finales de 2011 a mayo de 2012 : cambié de MariaDB a Percona Server para llegar a MySQL 5.5, pero tengo la intención de volver a cambiar una vez que el equipo de Maria tenga una versión estable basada en 5.5. Creo que todos los que necesitan configurar una nueva instalación de MySQL hoy deberían estar ejecutando Percona Server. Si está utilizando SSD , * debe * ejecutar Percona Server.
2013-2018 : Ejecuté felizmente el servidor Percona 5.6 todo este tiempo.
2018 : actualizado al servidor Percona 5.7 y luego casi inmediatamente a MySQL 8.0. [En este punto, no tengo el conocimiento suficiente para hablar sobre las diferencias entre MySQL 8, Percona Server 5.7 y MariaDB 10 y no puedo decir por qué es posible que desee elegir una sobre las otras]
Solo es una actualización en esto. Elegimos ir con Percona y no podemos estar más felices. Los chicos de Percona definitivamente saben lo que hacen y se mantienen al día con las nuevas tecnologías. Simplemente http://www.mysqlperformanceblog.com/ Top notch software más gente de primera clase y gran soporte, no puede salir mal.
Todos los "bifurcaciones" que mencionaste (excepto Drizzle) se basan en los nuevos lanzamientos oficiales de MySQL. Creo que la palabra bifurcación puede llevarlo por el camino equivocado, ya que la intención es simplemente proporcionar modificaciones posteriores al mercado. Escribí sobre esto aquí:
http://mtocker.livejournal.com/50931.html
Dado que vuelven a basarse en MySQL, y MySQL 5.0 está en "mantenimiento extendido", solo se deben corregir las vulnerabilidades principales. Esto significa que quieres moverte a 5.1. Si trabajamos con esta suposición, esto excluye a OurDelta de sus decisiones, ya que son solo los socios 5.1 de construcción / empaquetado de MariaDB.
Creo que también puedes descartar Drizzle, ya que actualmente es pre-beta. Están planeando una versión beta para el final del verano, pero aún es mucho antes de lo que querrás. Realmente no creo que uses una base de datos que no esté lista para la producción, por lo que esto también excluye a MySQL 5.5.
Así que esto deja a Percona Server, Official MySQL 5.1 y MariaDB. Es cierto que 5.1 tiene una escalabilidad pobre con muchos núcleos, pero si habilitas el complemento InnoDB es mejor.
El resto de mi respuesta de aquí en adelante está sesgada: trabajo para Percona:
Percona XtraDB tiene correcciones adicionales de escalabilidad de la CPU que el complemento MySQL 5.1 + InnoDB. Los que van a importar están cubiertos aquí:
http://www.percona.com/docs/wiki/percona-xtradb:features:start
Uno en el que puedo comentar en particular lo que importa es este: http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_split_buf_pool_mutex
Utilice MariaDB. Acaban de lanzar una versión últimamente. El motor de Maria también es mucho mejor que MyISAM. Con el proyecto opensource, vas donde va el fundador.