LinuxParty
Resumen: Aunque MySQL es uno de los programas más populares, muchos desarrolladores han sentido la necesidad de diversificarse en otros proyectos, cada uno con su propia especialidad. Esta necesidad, junto con el temor de que Oracle relentice el crecimiento del producto principal, ha llevado a la creación de muchos sub-proyectos y ramas de interés para los desarrolladores.
Introducción:
MySQL es uno de los programas más populares de código libre y abierto de la historia. Es la columna vertebral de la base de datos de miles de sitios web y posiblemente podría compartir el crédito (junto con Linux ®) por el crecimiento explosivo de Internet en los últimos 10 años.
Por lo tanto, si MySQL es tan importante, ¿por qué está aumentando la cantidad de alto perfil fuera de los brotes del producto de la base MySQL? Debido a que MySQL es gratuito y de código abierto, los desarrolladores siempre han sido capaces de tomar el código, modificarlo como lo estimen conveniente, y distribuirlo por su cuenta. Durante mucho tiempo, no había ninguna rama de MySQL en el que un desarrollador pudiera confiar en su propio entorno de producción. Sin embargo, eso está cambiando rápidamente. Varias ramas están recibiendo mucha atención.
En este artículo discutiremos tres populares BBDD como MySQL que están ganando la atención: Drizzle, MariaDB y Percona, incluyendo el motor XtraDB. En este artículo hablaremos brevemente acerca de cada rama y sus objetivos, y si se debe utilizar en su propio entorno de producción. En el momento de terminar este artículo, usted debería ser capaz de responder a la pregunta "¿Son estos productos la rama de MySQL que yo necesito?"
¿Por qué la ramificación?
¿Por qué MySQL necesita ser ramificado? Esa es una pregunta muy legítima. Miles de sitios web dependen de él y parece ser una buena solución para muchas personas. Sin embargo, como suele ser el caso, lo que es bueno para muchas personas no es bueno para todas las personas. Algunos desarrolladores están motivados para hacer las cosas mejor para sus propias necesidades. ¿Qué podría ser mejor que convertir una gran solución en la solución perfecta?
Vamos a entrar en detalles más específicos acerca de lo que estas ramas tratan de cambiar. Algunas ramas sienten que MySQL se estaba volviendo demasiado hinchado y estaba ofreciendo muchas características que los usuarios nunca les interesó, a expensas de la simplicidad de funcionamiento. Si la gente estaba perfectamente feliz con la más ágil MySQL 4, ¿por qué deberían hacer frente a la complejidad adicional que se añadió en MySQL 5? Por esta rama, una rama preferida de MySQL sería (en principio) más sencillo y más rápido - ofrecen menos características, pero las hacen muy rápidas, teniendo en cuenta un público objetivo, en este caso, los sitios web de alta disponibilidad.
Para otras ramas, MySQL no ofrecía suficientes características nuevas, o se les ha ido añadiendo muy lentamente. Pueden haber sentido que MySQL no se mantiene actualizado en los mercados de destino de los sitios web de alta disponibilidad que se ejecutan en procesadores multi-core con una gran cantidad de memoria RAM. Como personas familiarizadas con MySQL sabrán, ofrece dos diferentes -enginges almacenamiento- MyISAM e InnoDB. Esta rama consideró que ninguno de los dos motores de almacenamiento que ofrece, se ajustaba a lo que exactamente estaban buscando, así que crearon un nuevo motor de almacenamiento ideal para sus objetivos.
Además, algunas ramas tienen un objetivo superior para ser un "drop in" de reemplazo para MySQL, en la que sólo basta utilizar su rama y no tener que cambiar una línea de código (del programa que usted usa). La rama utiliza el mismo código y las interfaces como MySQL, haciendo una transición lo más fácil posible. Sin embargo, otra rama se jacta de que no es compatible con MySQL, lo que requiere cambios en el código. Cada rama está también en un nivel de madurez diferente, con algunos diciendo que están listos para la producción, y algunos afirman que están muy lejos de esa meta en este punto.
Por último, hay incertidumbre sobre cómo evolucionará MySQL en un régimen de Oracle. Oracle compró Sun, que compró MySQL, Oracle y ahora controla el producto MySQL como propio, y lidera el desarrollo de la comunidad en la producción de nuevos productos terminados. Debido a que Oracle ya tiene una base de datos comercial, existe la preocupación de que no ponga los recursos suficientes en MySQL para mantenerlo en vanguardia. Por lo tanto, muchas ramas son también el resultado del temor subyacente de que MySQL, la base de datos principal de código abierto, puede ver menos características, o en más lentos ciclos de lanzamiento y soporte más caro.
XtraDB
XtraDB no es un producto independiente en sí, pero todavía se considera una rama de MySQL. XtraDB es en realidad un motor de almacenamiento de MySQL basado en bases de datos. Esto se considera un motor de almacenamiento adicional a la norma MyISAM e InnoDB que ya es parte de MySQL. MySQL 4 y 5 se instala con cada tabla utilizando el motor por defecto MyISAM. InnoDB también es una opción relativamente nueva para un motor de almacenamiento, y los administradores de bases de datos y desarrolladores pueden elegir los tipos de motor de almacenamiento, en base a tabla por habitante, cuando se creó la base de datos. La principal diferencia entre los dos motores de almacenamiento es que MyISAM no ofrece soporte transaccional, mientras que InnoDB si lo hace. Otras diferencias son muchas pequeñas diferencias de rendimiento, con InnoDB ofrece muchas mejoras de rendimiento más pequeñas y MyISAM más fiabilidad y seguridad cuando se trata de la pérdida potencial de datos. Como parece que InnoDB es el motor de almacenamiento más adecuado para futuras mejoras, MySQL ha cambiado el motor de almacenamiento InnoDB por defecto en lugar de MyISAM a partir de la versión 5.5.
Sobre la base de estas ventajas, el motor de almacenamiento InnoDB a sí mismo se ha ramificado en un motor de almacenamiento más nuevo llamado XtraDB. ¿Pero cómo es de nuevo este motor de almacenamiento? Fue lanzado por primera vez menos de 3 años por Percona. Por lo tanto, es relativamente nuevo. Fue diseñado específicamente para tratar con los modernos sitios web de alta disponibilidad en servidores modernos. Fue diseñado para ejecutarse en servidores con núcleos de una docena o más y un montón de RAM (32 GB y más). Estos son los tipos de servidores de cualquier empresa puede pedir a una empresa la gestión de servidores y, por tanto, una base de datos debe estar diseñado para sacar el máximo provecho de estos servidores.
La rama XtraDB tenía otro objetivo -ser una simple gota en el reemplazo para el motor de almacenamiento InnoDB, por lo que los usuarios podrían simplemente cambiar su motor de almacenamiento sin tener que cambiar nada de su código de la aplicación subyacente. XtraDB tenía que ser compatible hacia atrás con InnoDB, además de proporcionar todas las nuevas características y mejoras que ellos querían añadir. Ellos lograron esta meta.
¿Cuánto más rápido es XtraDB? Una prueba de rendimiento que encontré dijo que ofreció 2,7 veces más transacciones por minuto que los InnoDB MySQL en 5.1. Eso ciertamente no es algo a despreciar, especialmente teniendo en cuenta su caída-and-go.
Percona
XtraDB ofrece grandes mejoras más integrado en los motores de almacenamiento de MySQL, pero no es un producto independiente, y tampoco es algo que sólo tiene que caer en su instalación existente de MySQL. Por lo tanto, si usted desea utilizar este motor de almacenamiento nuevo, usted tiene que utilizar el producto que ofrece.
Servidor Percona es uno de esos productos, difundida por la empresa consultora líder MySQL, Percona. Es un producto de base de datos independiente que ofrece a los usuarios la posibilidad de intercambiar su instalación de MySQL y de intercambio en el producto servidor Percona, y de este modo, aprovechar el motor de almacenamiento XtraDB. Esto hace que la afirmación de que es totalmente compatible con MySQL, así que en teoría no hay que cambiar ningún código en el software. Eso es definitivamente una gran ventaja, y es genial para el control de calidad cuando usted está buscando para una rápida mejora en el rendimiento. Por lo tanto, una buena razón para mirar servidor Percona es tomar ventaja del motor XtraDB como con algunos cambios en su código principal como sea posible.
Además, son los autores originales del motor de almacenamiento XtraDB. Percona es de código abierto, los creadores originales del motor son los mismos que escribieron este producto. Puede utilizar esta información como desee.
Estas son las supuestas afirmaciones del Servidor Percona, procedentes de su propia página web:
Escalabilidad: Maneja más transacciones; escalas en los servidores de gran alcance Rendimiento: Servidor Percona con XtraDB es tremendamente rápido Fiabilidad: Resistencia a la corrupción, crash-safe replicación Gestión: copia de seguridad en línea, la importación de tabla en línea / export Diagnóstico: creación de perfiles avanzada e instrumentación Flexibilidad: Tamaño de página variable, una mejor gestión agrupación de almacenamientos intermedios
El final de la reclamación por el equipo Percona es que es "el más cercano a la release oficial de MySQL Enterprise de Oracle", con lo que lo diferencia de de otros que han cambiado el núcleo subyacente de MySQL. Lo Negativo del servidor Percona es que logran el código ellos mismos, y no aceptan las contribuciones de los desarrolladores externos sin revisar en primer lugar, garantizar que el control de las características puestas en el producto.
MariaDB
Otro de los productos que ofrece el motor de almacenamiento XtraDB es el producto MariaDB. Es muy similar a la del producto Percona, pero ofrece cambios de código más subyacentes en un esfuerzo para ajustar aún más las mejoras en el rendimiento sobre el estándar MySQL. Utiliza el motor XtraDB directamente desde Percona, por lo que no hay diferencias subyacentes en los motores de almacenamiento cada emplean, ya que utilizan el exacto mismo.
Además, MariaDB ofrece los motores de almacenamiento estándar que ofrece MySQL, "MyISAM e InnoDB". Así que, en efecto, puede ser considerado como un superconjunto de MySQL, MySQL ofrece todo lo que hace, y mucho más. También hace que la afirmación de que es una gota en el reemplazo para MySQL, así que usted puede instalar con el conocimiento de que no hay cambios en el código subyacente para migrar de MySQL a MariaDB.
Por último, y quizás lo más importante, el creador principal del MariaDB es Monty Widenius, el creador original de MySQL. Monty ha formado una compañía para gestionar el desarrollo de MariaDB llamado Monty Program, que contrata a los desarrolladores escribir y mejorar el producto MariaDB. Esto es potencialmente una cosa a la vez buena y malo, ya que el lidera las características y bugs corregidos con María, pero es potencialmente problemático en que la empresa no está centrada en los ingresos, sino que dependen más del producto. Las empresas que no generan ingresos no siempre duran para siempre.
Drizzle
El producto final que vamos a mirar es Drizzle. A diferencia de los otros dos productos terminados que hemos visto, Drizzle es una salida importante de MySQL e incluso hace la afirmación de que no son un drop-and-go con MySQL. Ellos están buscando para hacer los cambios más importantes de MySQL y tienen el objetivo de proporcionar una gran solución al problema de alta disponibilidad, incluso si eso significa cambiar aspectos de MySQL a los que estamos acostumbrados.
En la página FAQ de la compañía, pueden leerse a través de las preguntas que refuerzan aún más sus objetivos subyacentes. Ellos no estaban contentos con los cambios realizados en el núcleo de MySQL después de la versión 4.1, afirmando que muchos desarrolladores no querían que una sobrecarga adicional. Ellos admiten que su producto no es ni siquiera una base de datos de relación con SQL. Eso sí que es una desviación de MySQL.
Así que, con un cambio tan importante de su acostumbrada a MySQL, ¿por qué deberíamos siquiera considerar este producto? Exactamente por las mismas razones - es una reescritura importante de los motores MySQL, con las características calificadas de no-óptimo e innecesario, y con gran parte del código reescrito para ser optimizado, incluso yendo tan lejos sería comparable tanto como decir de pasar de C a C++ para el código. Y la cosa no acaba ahí, este producto tiene un mercado objetivo específico en mente con su diseño -servidores multi-core con una gran cantidad de memoria RAM, 64-bit máquinas con Linux, servidores utilizados en computación en nube, sitios web servidores de hosting, servidores reciben decenas de miles de visitas por minuto. Es un mercado muy específico. ¿Es demasiado específico? Tenga en cuenta la cantidad de dinero los tipos de sociedades gastan en sus bases de datos actualmente - si es que se puede instalar Drizzle en lugar de MySQL y reducir sus costes de servidor en un medio que es un montón de dinero!
Por lo tanto, todos deberíamos utilizar Drizzle entonces, ¿no? Espera, como señalan repetidamente, no es compatible con MySQL. Por lo tanto, si usted tiene una plataforma existente de MySQL, habría una gran cantidad de código reescritura para que funcione correctamente en su entorno.
A pesar de que requiere un trabajo extra para conseguir el funcionamiento y no parece ser lo más rápido y fácil de usar como Percona o MariaDB, incluyo Drizzle porque, aunque no sea tu elección hoy, en unos pocos años, es probable que ser la elección de algunas personas. Debido a que el objetivo de este artículo es dar a su conocimiento de las herramientas que va a utilizar en el futuro, esta es una buena oportunidad para mostrarle este producto. Muchos expertos creen que los principales DB Drizzle será la elección de instalaciones de alta disponibilidad de bases de datos en cinco años.
La Drizzle es el 100 por ciento de código abierto y toma abiertamente las contribuciones de los desarrolladores. No hay desarrollo de la empresa de soporte subyacente en ello como MariaDB, y no se cierra a recibir contribuciones de afuera, como Percona. Está en una buena posición para las características de crecimiento y nuevos, que se pueda necesitar, dado su alcance para volver a escribir la mayoría de MySQL.
Tabla comparativa
Este es un resumen de los tres productos ramificación MySQL mencionadas en este artículo.
Product | Price | Goal | Main Feature | Ready for Production? |
---|---|---|---|---|
Percona Server | Free |
Provee una capa para el almacenamiento XtraDB y herramientas adicionales de análisis |
XtraDB | Si |
MariaDB | Free |
Extensión de MySQL que incluye XtraDB y otros características incluidas |
XtraDB | Si |
Drizzle | Free |
Ofrece masiva escalbilidad y mejoras sobre MySQL |
Alta-Disponibilidad | Si |
Conclusión:
En este artículo se discuten tres nuevas ramas del producto MySQL que tienen por objeto resolver algún problema que han identificado con MySQL. Los tres son productos de código libre y abierto. Es necesario sopesar los pros y los contras de su uso en contra de lo que ya ofrece MySQL. Creo que, para casi todos los que lean este artículo, MySQL seguirá siendo la opción preferida para las necesidades de su base de datos. Dudo mucho que los lectores muy diversos de este artículo sean propietarios de sitios web que tengan más 1.000.000 visitas por hora. Quiero hacer hincapié en que de nuevo -MySQL sigue siendo un producto increíblemente grande, que es una base de datos perfectamente adecuado para la mayoría de los casos de uso.
Sin embargo, para aquellos de ustedes que piensan que su sitio requiere disponibilidad más alta, escalabilidad y rendimiento de MySQL puede ofrecer actualmente, uno de estos tres productos probablemente puede proporcionarle la solución que está buscando. Yendo más lejos, si usted siente que su sitio se convierta en una idea millones de dólares, podría considerar comenzando con uno de estos tres productos, y con ello resolver este tipo de problemas antes de que se inicia.
Por último, la causa fundamental de estas ramas de MySQL es cambiar alguna característica subyacente de MySQL que los autores consideraban que no podían esperar a que MySQL lo hiciera. Además, el espectro de Oracle se cierne sobre el futuro de MySQL, y muchos desarrolladores, incluyendo el desarrollador original de MySQL, están preocupados por el futuro del producto y si Oracle va a mostrar la devoción al producto que una base de datos de vanguardia requiere. Todas estas son preocupaciones válidas en mi opinión, y por esta razón, usted debe tener estos tres productos en mente a medida que avanzamos hacia el futuro.
Recursos
- Compare the results of a InnoDB vs. XtraDB performance test.
- Read the Percona home page to learn more about the Percona product.
- Go to the MariaDB home page to read about that branch.
- Visit the Drizzle home page to see the features of this branch.
- See more articles from this author.
- The Open source developerWorks zone provides a wealth of information on open source tools and using open source technologies.
-
Bases de Datos
- La última versión de MySQL es decepcionante, dicen algunos expertos en bases de datos
- Cómo instalar MongoDB en AlmaLinux 9 con ejemplos de uso
- Cómo instalar PostgreSQL 16 en distribuciones basadas en RHEL, AlmaLinux, RockyLinux y Fedora
- Cómo instalar PhpMyAdmin con Apache en sistemas RHEL, Alma Linux, Rocky Linux, Centos y Fedora
- Cómo hacer una copia de seguridad y restaurar una base de datos PostgreSQL en Linux
- Cómo instalar phpPgAdmin y PostgreSQL en CentOS, AlmaLinux, RHEL, RockyLinux y similares
- 20 comandos mysqladmin para la administración de bases de datos MYSQL/MariaDB
- Copiar y restaurar copias de seguridad de MySQL / MariaDB para la administración de bases de datos
- Crear Copias de Seguridad (Backups) de MariaDB o MySQL Automáticas con AutoMySQLBackup
- Grafana, software para análisis y supervisión
- Cómo configurar la replicación MariaDB (Maestro-Esclavo) en CentOS / RHEL y Debian
- Arrancar al inicio MySQL / MariaDB con Linux.
- Conocer que IPs están conectados a MySQL haciendo consultas a la base de datos.
- MariaDB, guía práctica para Administradores Linux
- Cómo configurar MariaDB Galera Cluster 5.5 en CentOS, RHEL y Fedora
Comentarios