Char vs varchar en MySQL: la diferencia que impacta almacenamiento, rendimiento y consultas
En MySQL, la elección entre "CHAR" y "VARCHAR" influye directamente en el espacio ocupado, el rendimiento de las consultas y el comportamiento de las comparaciones.
Introducción a MariaDB: un sgbd potente y de código abierto
MariaDB se ha consolidado como una de las alternativas más sólidas en el panorama de los sistemas gestores de bases de datos relacionales. Nacido a partir de MySQL, este proyecto
En muchos casos el problema no radica en la existencia del índice, sino en la forma en que se escribe la consulta.
Una consulta sargable permite que el optimizador de MySQL tome mejores decisiones de
Los tipos de datos de fecha y hora son fundamentales en casi cualquier base de datos. En MySQL existen varios tipos específicos para manejar fechas, ...
MySQL 9.x incorpora un servicio rest nativo: apis directamente
MySQL 9.x trae una novedad importante para los desarrolladores: un servicio REST integrado gracias a un plugin de servidor HTTP. Esto permite exponer ...
Diferencias entre explain vs explain analyze en MySQL
Cuando una consulta tarda más de lo esperado, el primer paso suele ser examinar el plan de ejecución. En MySQL existen dos herramientas principales ...
En las consultas con agrupaciones, el momento en el que se aplica un filtro determina por completo el resultado final. WHERE y HAVING cumplen la misma...
Cómo crear una base de datos distribuida con MySQL
Lasbases de datos distribuidas permiten repartir los datos entre varios servidores (nodos) para ganar escalabilidad, alta disponibilidad, tolerancia a...
Una de las confusiones mas comunes, en MySQL, al trabajar con agregaciones es la diferencia entre "COUNT(*)" y "COUNT(columna)". Aunque ambos cuentan ...
¿Qué es la integridad referencial en MySQL? Guía práctica
La Integridad Referencial es uno de los conceptos más importantes en el diseño de bases de datos relacionales. En MySQL se implementa principalmente...
MySQL ndb cluster: solución de base de datos distribuida de alta disponibilidad y escalabilidad
MySQL NDB Cluster, es una tecnología de base de datos distribuida que combina el popular servidor MySQL con el motor de almacenamiento NDB, Network ...
Un alias es un nombre alternativo que se da a una columna o a una tabla dentro de una consulta SQL. Este nombre solo existe durante la ejecución de ...
El mantenimiento de MySQL y MariaDB de forma periódica es una de las tareas más importantes para garantizar el rendimiento, seguridad y estabilidad ...
Las >Las expresiones regulares o regex son una herramienta muy potente para realizar búsquedas y manipulaciones de texto avanzadas en bases de datos....
El operador EXCEPT es un operador de conjuntos del estándar SQL que devuelve las filas de la primera consulta que no existen en la segunda consulta. ...
"require_secure_transport" es una variable del sistema en MySQL que permite forzar el uso de conexiones cifradas, TLS/SSL, para todas las conexiones ...
El comando "REBUILD" en MySQL se utiliza para reconstruir una tabla o sus particiones. Es una operación muy útil, especialmente en tablas grandes o ...
Las Generated Columns (columnas generadas) son una funcionalidad muy potente introducida en MySQL 5.7 que permite crear columnas cuyo valor se calcula...
Crud con motor merge en MariaDB y MySQL (mrg_myisam)
El motor merge es un motor de almacenamiento especial de MySQL y MariaDB. Se suele usar para manejar tablas muy grandes dividiéndolas en partes más ...
MariaDB tiene una arquitectura modular, lo que significa que se puede elegir un motor de almacenamiento diferente por tabla, según el tipo de carga ...
Muchos desarrolladores y DBAs siguen pensando que MariaDB es un fork de MySQL con otro nombre. Son dos motores que han divergido significativamente en...
Desde MySQL 8.0 las funciones de ventana revolucionaron las consultas analíticas. Y el corazón de casi todas es PARTITION BY: divide el conjunto de ...
Después de explicar los privilegios en MySQL hay que explicar los privilegios dinámicos en MySQL. Son permisos introducidos a partir de MySQL 8 que ...
En MySQL, los comodines, o wildcards, se utilizan principalmente en consultas con el operador LIKE para buscar patrones dentro de cadenas de texto. ...
La búsqueda difusa Fuzzy en MySQL permite encontrar coincidencias aproximadas en lugar de coincidencias exactas, lo que es útil para manejar errores...
Las vistas materializadas son objetos de base de datos que almacenan físicamente el resultado de una consulta SQL, como una tabla, pero se actualizan...
Fulltext en MySQL: búsquedas de texto y cómo utilizarlas
Cuando realizamos búsquedas de textos o coincidencias de palabras en una base de datos generalmente utilizamos la sentencia WHERE LIKE. Sin embargo,...
Un uuid en mysql, Universally Unique Identifier, o Identificador Único Universal, es un valor de 128 bits que se utiliza para generar identificadores...
Calidad de datos en MySQL: principios y buenas prácticas
La calidad del dato en bases de datos se refiere a que los datos sean precisos, completos, consistentes, actuales, íntegros y relevantes. Garantizar ...
En varios proyectos en los que he trabajado en necesitado cargar datos en una base de datos de mysql desde un fichero, ya que es una forma bastante ...
Hace un tiempo hablé de las copias de seguridad en mysql, en las que se crea un fichero sql con todas las tablas y los datos de la base de datos de ...
Columnas dinámicas en MySQL: cómo trabajar con ellas
Las columnas dinámicas en mysql permiten almacenar diferentes conjuntos de columnas para cada fila en una tabla .Funciona almacenando un conjunto de ...
Cuando nos conectamos a mysql por consola tenemos que hacerlo mediante el comando mysql -h host -u usuario -p clave siendo largo y pesado. Pero hay ...
Como realizar consulta entre varias bases de datos en MySQL
Para realizar consulta entre varias bases de datos en mysql lo único que hay que hacer es especificar la base de datos antes del nombre de la tabla y...
Cualquier persona que haya usado mysql o cualquier base de datos relacional que usa sql habrá usado join, left join, etc... pero hay un tipo de join ...
Hoy quiero comentar el uso de insert ignore en mysql que resulta bastante útil para evitar ciertas duplicidades en las bases de datos. La sintaxis es...
Como cambiar el directorio de base de datos en MySQL
Estoy en un proyecto en el que me conecto a otro entorno y tenía que importar una base de datos que su fichero de importación ocupaba 20 GB y en mi ...
Antes de empezar con este post ¿Qué es percona? Percona es una empresa de software y servicios especializada en bases de datos MySQL y desde sus orígenes ha mantenido el 100% de compatibilidad...
Copias de seguridad en MySQL: métodos y buenas prácticas
Hay una manera bastante sencilla de realizar copias de seguridad del contenido de una una tabla de una base de datos a un fichero plano y también de volver a cargar dicho fichero a la tabla ...
Hace un tiempo escribí sobre procedimientos y funciones almacenados en mysql y hoy voy a hablar sobre como crear cursores en mysql, que son bucles que sirven para recorrer el resultado de una ...
Hace un tiempo escribí un post sobre el tipo de dato enum en mysql y ahora voy a describir como recuperar valores campo enum en mysql. La consulta es bastante sencilla pero hay que hacerla sobre...
En MYSQL también se permite el manejo de TRIGGERS como en ORACLE y la verdad es que resulta bastante sencillo. Su código no es nada complejo si se tienen nociones de programación.
En MySQL es posible crear procedimientos y funciones como en cualquier lenguaje de programación. No es difícil, solo hay que conocer la sintaxis y ya se pueden crear. A continuación pongo un ...
En bb.dd una VISTA es una tabla virtual, que puede estar formada por varias tablas, que es resultado de una consulta. El motivo principal de las vistas es agilizar el proceso de consulta de ...
Caché de consultas en MySQL: cómo optimizar consultas
MySQL permite la opción de guardar las consultas en caché, lo más lógico es guardar las consultas de tipo select ya que las consultas de tipo insert, delete o update rara vez van a coincidir....
Siempre había pensado que MySQL solo tenía dos motores de almacenamiento MyISAM y InnoDB, escribí un post en este blog para hablar de sus diferencas. Pero hace poco descubrí que MySQL tiene ...
En MySQL hay una manera de saber si se están usando el tipo de datos óptimo para una tabla. Es una manera de hacerlo bastante poco conocida y la verdad es que de utilidad. Basta con usar el ...
Cuando en una base de datos se tiene que hacer una búsqueda por texto se usa el operador LIKE y si se quieren mostrar varios resultados que concuerden con esa búsqueda se usa LIKE '%%'. Pero ...
Explain en MySQL: cómo analizar y optimizar consultas
En mysql hay una sentencia que permite optimizar las queries usadas para obtener datos de la base de datos. Dicha sentencia es explain que se usan poniendo dicha sentencia justo antes de la ...
Slow queries en MySQL: cómo detectarlas y optimizarlas
Uno de los problemas más comunes de mysql son las consultas de sql que tardan demasiado tiempo en ejecutarse.
Un opción es analizar la query con la opción EXPLAIN.
Otra opción es activar el ...
Una transacción es un conjunto de operaciones sql que se ejecutan como un único bloque, es decir, si falla una operación fallan todas. Es una unidad única de trabajo. Si una transacción ...
Information_schema de MySQL: qué es y cómo consultarlo
La base de datos information_schema de Mysql almacena todo lo relacionado a todas las bases de datos creadas en el servidor de mysql y de esa base de datos se pueden obtener diferentes datos como...
Too many connections en MySQL: causas y soluciones
El error too many conections de mysql significa que ha mysql le están llegando demasiadas peticiones. Para arreglar este problema hay que cambiar la configuración de mysql. Para saber el número...
Procedure analyse en MySQL: cómo analizar columnas
Hay una funcionalidad de MySQL que es poco conocida que es procedure analyse y se añade al final de la consulta. El resultado es un listado con los nombres de los campos de la consulta con los ...
Priorización de consultas en MySQL: cómo optimizarlas
Una forma de optimizar el acceso a nuestra base de datos myswl se pueden establecer prioridades a las queries. La verdad es que es bastante sencillo:
-INSERT DELAYED: Añadiendo el parámetrod ...
Un índice es un puntero a una fila de una determinada tabla de nuestra base de datos, es decir, asocia el valor de una determinada columna (o el conjunto de valores de una serie de columnas) con...
En MySQL se pueden usar variables como en los lenguajes de programación y puede resultar bastante útil. Y se puede guardar el valor de una consulta Select a una variable.El sintaxis para ...
Optimizar innodb en MySQL: técnicas y buenas prácticas
Buscoando información sobre MySQL en internet me he encontrado con varios posts de como optimizar MySQL cuando se usan bases de datos con motor de almacenamiento InnoDB.Cuando se instala MySQL ...
Este post va a ser muy breve. Para obtener la ip y el puerto de la base de datos MySQL basta con lanzar la siguiente query:
SHOW VARIABLES
WHERE Variable_name IN (
'hostname',
'port')...
Siempre hay que buscar la manera de optimizar la recuperación de información de una base de datos desde un buen esquema de base de datos, uso de índices hasta hacer unas queries óptimas.En ...
Revisando un manual que tengo sobre MySQL he visto que en los JOIN se puede usar la directiva USING en vez de ON cuando los campos tienen el mismo nombre. Voy a poner un ejemplo para que quede ...
Hacer copias de seguridad de la base de datos, con cierta regularidad es bastante importante. En Mysql hay varias formas de hacer copias de seguridad:
mysqldump: Este comando, se encarga de ...
Hoy he tenido que buscar las veces que se repetía un campo en una misma tabla. Aunque no he tenido que hacer en oracle es prácticamente igual en mysql. La query es:
SELECT campo, COUNT(*) ...
Los eventos en MySQL consisten en la ejecución planificada de ciertas sentencias que pueden ser llamadas a procedimientos almacenados o simples conjuntos de sentencias SQL. La ventaja de estos ...
Mysqlcheck en MySQL: cómo comprobar y reparar tablas
mysqlcheck es un comando de MySQL que sirve tanto para analizar, reparar y optimizar todas las bases de datos de un servidor. Para poder usar este comando hya que tener permisos de root y hay que...
Es útil poder modificar la contraseña del usuario root, ya sea por la instalacion o porque se ha perdido la contraseña de root de MySQL. Para poder cambiar la contraseña de root de MySQL, es ...
El atributo unsigned guarda el valor positivo del tipo de dato seelccionado. Así que si voy a tener un campo que almacenará un precio, una edad, etc... convendría usar este atributo ya que ...
Insertar registros duplicados en MySQL: métodos y soluciones
Hay veces, que sin darnos cuenta intentamos insertar valores duplicados en mysql y claro salta un error, sobre todo por duplicidad de primary key ante ésto mysql ofrece dos soluciones:
INSERT...
Siempre que se programa un sistema de contenidos con paginación, como pueden ser los comentarios de una noticia, o mostrar los post de un blog se suele programar con dos queries:
Una query ...
Como es sabido por todos el puerto por defecto de MySQL es el puerto 3306 (tcp). Las razones por las que cambiar este puerto son:
si se tienen varias bases de datos MySQL sin riesgo a que vaya...
Bloqueo de tablas en MySQL: cómo funciona y cuándo usarlo
MySQL permite bloquear tablas para que diversas queries puedan ejecutarse al mismo tiempo sin distorsionar sus resultados. Este bloqueo puede ser de escritura o de lectura. Después de realizar ...
En las tablas MyISAM no hay diferencia entre las dos opciones. La única
diferencia es que los índices de clave primaria no pueden contener valores NULL. De esa
manera, un índice PRIMARY es ...
Tablas temporales en MySQL: cómo crearlas y utilizarlas
MySQL permite la creación de tablas temporales que permiten acceder a los datos de una manera más óptima ya que se crea una versión en memoria de un bloque de información almacenado en una ...
Por defecto MySQL no permite el acceso desde otro servidor, pero se puede cambiar dicha configuración para conectarse a una base de datos MySQL. Para permitir ésto MySQL hay que modificar el ...
En mi post sobre transacciones con varias queries en MySql no comenté la posibilidad de añadir puntos donde, si hay un problema, hacer un rollback a un punto determinado y no perder toda la ...
Hace un tiempo escribí un post de como crear triggers en mysql pero no comenté que se podían activar y desactivar y puede resultar útil en determinados momentos.
Hace un tiempo escribí un post sobre los motores de almacenamiento en Mysql y hoy quiero commentar el motor de almacenamiento federated que permite tener replicas de tablas en mysql. Para saber ...
Gestión de errores en MySQL: técnicas y buenas prácticas
La gestión de errores en mysql no es difícil en cierto modo. El único impedimento que veo es que hay que conocerse los código de errores para tartar el error que se quiere gestionar. La ...
Hoy he aprendido una funcionalidad nueva en MySql que es la función FIND_IN_SET y se usa en campos en los que sus elementos están separados por comas. Por ejemplo en la base de datos de mi blog...
Blind SQL injection en MySQL: qué es y cómo prevenirla
Hace un tiempo hablé de la inyección de sql y el otro día aprendí lo que era la blind injection o la inyección ciega. La blind injection consiste en utilizar la inyección SQL y se evidencia...
Los join se usan para recuperar datos de varias tablas al mismo tiempo y las tablas tienen que estar relacionadas de algún modo, normalmente mediante un id. En Mysql, como en la mayoría de las ...
Una manera de optimizar mysql es usar la fragmentación de tablas en MySQL que consiste eb reducir la cantidad de lecturas físicas a la base de datos en la lectura de datos de base de datos. ...
Hace poco hablé sobre las fragmentación de tablas en MySQL y en este post quiero hablar de la fragmentación horizontal en mysql ya que es útil si se van a manejar grandes volúmenes de ...
El tipo de dato enum en mysql representa una enumeración. Puede tener un máximo de 65535 valores distintos y es una cadena cuyo valor se elige de una lista enumerada de valores permitidos que ...
Mcuhas veces se realizan consultas MySQL para mostrar totales, por ejemplo, totales por categoría y es fácil hacerlo usando el agregador count de MySQL por ejemplo con mi blog:
SELECT ...
Existe una sentencia, que es una alternativa al INSERT INTO, en la que se diferencia en que si existe algún registro en la base de datos con el mismo valor para una clave primaria o única, se ...
Hace poco descubrí que se pueden devolver las consultas MySQL en json y la verdad es que es bastante sencillo. Hay que usar la función JSON_OBJECT. Voy a poner varios ejemplos para entenderlo ...
El tipo de dato set en mysql representa un conjunto de cadenas. Puede tener un máximo de 64 valores distintos y es una cadena cuyo valor se elige de una lista enumerada de valores permitidos que...
Siempre que se instala una base de datos MySQL siempre viene creada con un usuario root y sin ninguna contraseña pero hay veces que es necesario crear diferentes usuarios con diferentes ...
Para mostrar los procesos en ejecución en mysql y así saber que procesos se están ejecutando y que usuario lo está ejecutando hay que hacer es lanzar el comando show processlist; donde nos ...
Hay en ocasiones que en varios proyectos se necesitan hacer varias inserciones y actualizaciones en la base de datos en bloque y evitar que si hay dos, o más, solicitudes de dichas ...
Myisam vs innodb en MySQL: diferencias y cuál elegir
A la hora de diseñar una base de datos hay que tener en cuenta, entre otras muchas cosas, el número de consultas que se van a realizar y el número de datos que se van a modificar / insertar.
...
Formato de fechas en MySQL: cómo convertirlas y mostrarlas
En los diferentes proyectos que he trabajado cuando se ha recuperado una fecha de mysql muchas veces se ha recuperado la fecha con la hora en formato diferente a dd/mm/aaaa y luego se procesaba ...