MySQL es conocido como un sistema para gestionar bases de información relacional que se desarrolla con una licencia dual. Esta es licencia comercial y licencia pública general por Oracle Corporation y se considera la base de datos caracterizada por tener código abierto más popular y usada en el mundo. También es una de las más empleadas en general junto a Microsoft SQL Server y Oracle, exclusivamente para ambientes de desarrollo web.
Al principio, MySQL no tenía elementos que se consideraran como esenciales o principales en las bases de informaciones relacionales, en los que se pueden mencionar las transacciones y la integridad referencial. A pesar de esto, llamó la atención de los desarrolladores de páginas cuyo contenido es dinámico, principalmente por su simplicidad. Paso a paso, los elementos y componentes que no formaban parte de MySQL han sido añadidos a través de desarrollos internos y también por desarrolladores enfocados en software libre.
Este sistema llamado MySQL es utilizado por múltiples sitios web populares y de gran tamaño tales como Facebook, Wikipedia, YouTube, Flickr, Twitter y Google. Aunque en este último no se usa en búsquedas.
Características de MySQL
Las características de mayor importancia incluidas en las versiones más recientes de MySQL son las siguientes:
- Está disponible en múltiples cantidades de sistemas y plataformas.
- Posee un subconjunto amplio del lenguaje SQUL. De igual forma, algunas extensiones se incluyen.
- Claves y transacciones foráneas.
- Existe la posibilidad de seleccionar mecanismos de almacenamiento con los cuales se puede optar por distintas velocidades de operación, capacidad, soporte físico, transacciones, distribución geográfica, entre muchos otros.
- Indexación y búsqueda de campos de texto.
- Tiene replicación.
- Existe una conectividad segura.
- Los multihilos se utilizan a través de hilos del kernel.
- Hace uso de Libtool, Autoconf y GNU Automake destinado a la portabilidad.
- Hay tablas hash ubicadas en memorias temporales.
- Se utilizan tablas en disco b-tree para realizar búsquedas rápidas junto a comprensión de índice.
- Soporte completo para funciones y operadores en cláusulas where y select.
- El código MySQL es probado con Valgrind, la cual es una herramienta GPL, y con Purify, un detector usado para encontrar memoria perdida comercial.
- Tiene seguridad al ofrecer un sistema de privilegios y contraseñas de alta calidad a través de verificación que se basa en el tráfico y en el host de contraseñas cifradas al tener conexión a un servidor.
- Soporte completo para cláusula order by y group by, también en soporte para funciones de agrupación.
- Es permitido hasta 60 índices por cada tabla, antes de MySQL 4.1.2 eran 32. Cada índice puede estar compuesto por partes de columna o desde 1 hasta 16. El ancho del límite máximo son 1 bytes, antes de eran 500.
- Soporta una cantidad de datos grandes. MySQL Server posee bases de datos que albergan hasta 50 millones de registros.
- MySQL tiene su paquete de pruebas de rendimiento propio, el cual es proporcionado junto al código de fuente que distribuye a MySQL.
- En la versión de MySQL 5.0, los servidores y clientes Windows pueden conectarse utilizando memoria compartida.
- Los clientes hacen conexión al servidor MySQL utilizando sockets TCP/IP en todas las plataformas. En los sistemas Windows es posible establecer conexión al usar named pipes, mientras que en los sistemas Unix se emplean ficheros socket Unix.
Características distintivas de MySQL
Las características expuestas a continuación son exclusivas de MySQL, por que solo se implementan en este sistema:
- Se realizan agrupación de transacciones al reunir diversas transacciones de distintas conexiones para aumentar la cantidad de transacciones por segundo.
- Es posible seleccionar entre diversos motores de almacenamiento para cada una de las tablas. En la versión MySQL 5.0, estos debían agregarse en tiempo de compilación. Partiendo de la versión MySQL 5.1, es posible añadir de forma dinámica a estos en tiempo de ejecución, los cuales son:
- Desarrollados por la comunidad tales como httpd, memcache, Revision y PBXT.
- Desarrollados a manera de partners como NitroEDB, solidDB, TokuDB, ScaleDB, Kickfire, Infobright (anteriormente llamado Brighthouse), IBM DB2 Y XtraDB. InnoDB fue desarrollado de esta manera, pero actualmente forma parte de Oracle.
- Motores de almacenamiento nativos tales como Falcon, MyISAM, InnoDB, Merge, Memory/heap, BDB, Federated, MySQL Cluster, CSV, Archive, Example y Blackhole.