Blog de Gonzalo

Blog de programación de Gonzalo López

CUANTOS USUARIOS DEBE TENER UNA BASE DE DATOS DE UNA WEB
MySQL  134 visitas

Hace un tiempo vi que en linkedin alguien hacía la pregunta: "cuantos usuarios debe tener una base de datos de una web" y estuve analizándolo y le ...

Leer más

BIGDATA Y MYSQL
MySQL  160 visitas

El bigdata consiste en manejar grandes cantidades de datos y usar esas cantidades de datos con MySQL puede ser un desafío, pero usando varias ...

Leer más

OBTENER VERSIÓN MYSQL MEDIANTE QUERY
MySQL  178 visitas

Hay varias maneras de saber que versión de mysql hay instalada en el servidor. Para mí la más fácil es obtener version mysql mediante query y no ...

Leer más

ELIMINAR CLÁUSULA DEFINER EN BACKUP DE MYSQL
MySQL  152 visitas

Si tenemos una base de datos mysql y tenemos vistas declaradas y se hace una copia de seguridad de dicha base de datos, se va a añadir la línea: ...

Leer más

FUNCIÓN RUNNING TOTAL EN MYSQL
MySQL  189 visitas

La función running total de mysql asigna el número de fila, empezando desde el "1" y de forma secuencial con el orden de las filas dentro de la ...

Leer más

FUNCIÓN LAG EN MYSQL
MySQL  226 visitas

La función lag de mysql se utiliza para obtener el valor anterior de la fila actual, es una función ventana. La función lag siempre se utiliza con ...

Leer más

FUNCIÓN LEAD DE MYSQL
MySQL  166 visitas

La función lead de mysql se utiliza para obtener el valor siguiente de la fila actual, es una función ventana. La función lead siempre se utiliza ...

Leer más

FUNCIÓN ROW NUMBER EN MYSQL
MySQL  150 visitas

La función row number en mysql se utiliza para devolver el número secuencial de cada fila dentro de su partición, es una función ventana. El ...

Leer más

FUNCIÓN DENSE RANK DE MYSQL
MySQL  147 visitas

La función rank de mysql. se engloba dentro de lo que son las funciones ventana de mysql y es similar a la función rank en mysql.Esta función ...

Leer más

FUNCIONES VENTANA EN MYSQL
MySQL  148 visitas

Las funciones ventana (window functions) son funciones sql que realizan cálculos sobre el conjunto de filas relacionadas con la fila actual. Este ...

Leer más

OBTENER EL VALOR MÁS GRANDE DE UNA LISTA EN MYSQL
MySQL  305 visitas

Para obtener el valor más grande de una lista en mysql hay que usar la función GREATEST una serie de valores, que pueden ser cadenas o numéricos. ...

Leer más

OBTENER EL VALOR MÁS PEQUEÑO DE UNA LISTA EN MYSQL
MySQL  286 visitas

Para obtener el valor más pequeño de una lista en mysql hay que usar la función LEAST una serie de valores, que pueden ser cadenas o numéricos. ...

Leer más

CAMPOS ESPACIALES EN MYSQL
MySQL  1118 visitas

MySQL soporta datos espaciales y funciones espaciales, lo que te permite trabajar con datos geográficos y geométricos. Los campos espaciales en ...

Leer más

OPERADOR UNION EN MYSQL
MySQL  539 visitas

El operador union en mysql, al igual que la mayoría de bases de datos, se usa para combinar los conjuntos de resultados de dos o más declaraciones ...

Leer más

CARGAR DATOS EN MYSQL DESDE UN FICHERO
MySQL  852 visitas

Mysql permite cargar datos a una tabla desde un fichero con la instrucción LOAD DATA INFILE que sirve para tomar cualquier archivo separado por ...

Leer más

TAMAÑO DE TABLA EN MYSQL
MySQL  536 visitas

Para saber cual es el tamaño de las tablas de nuestra base de datos MySQL hay que ejecutar la siguiente sentencia: SELECT table_name AS "Tabla", ...

Leer más

CROSS JOIN EN MYSQL
MySQL  804 visitas

La cláusula CROSS JOIN en mysql retorna todas las líneas de las tablas cruzadas, es decir, para cada línea de la tabla izquierda queremos todas las...

Leer más

COPIAS DE SEGURIDAD INCREMENTALES EN MYSQL
MySQL  2465 visitas

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 ...

Leer más

COLUMNAS DINÁMICAS EN MYSQL
MySQL  1645 visitas

Las columnas dinámicas en mysql permiten almacenar diferentes conjuntos de columnas para cada fila en una tabla .Funciona almacenando un conjunto de ...

Leer más

FUNCIÓN COALESCE EN MYSQL
MySQL  7229 visitas

La función coalesce en mysql, o función de coalescencia, se usa para reemplazar un valor "null" retornado en una consulta. Supongamos que tenemos ...

Leer más

ACORTAR LA CONEXIÓN A MYSQL POR LÍNEA DE COMANDOS
MySQL  604 visitas

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 ...

Leer más

CONECTARSE DESDE PHPMYADMIN A UN SERVIDOR MYSQL EXTERNO
MySQL  893 visitas

Normalmente la herramienta de phpmyadmin se suele usar para conectarse a bases de datos locales, que están en el mismo alojamiento. Pero si alguna ...

Leer más

PHPMYADMIN
MySQL  476 visitas

PhpMyAdmin es una aplicación web que permite administrar bases de datos MySQL de forma bastante intuitiva. Está desarrollado en php. La mayoría de ...

Leer más

REALIZAR CONSULTA ENTRE VARIAS BASES DE DATOS EN MYSQL
MySQL  3788 visitas

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...

Leer más

NATURAL JOIN EN MYSQL
MySQL  1754 visitas

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 ...

Leer más

RECUPERAR LA CLAVE DEL USUARIO ROOT EN MYSQL
MySQL  1972 visitas

Para recuperar la clave del usuario root en mysql hay que seguir los pasos siguientes: Parar el servicio mysql con el comando sudo systemctl stop ...

Leer más

INSERT IGNORE EN MYSQL
MySQL  4606 visitas

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...

Leer más

CONCATENAR EN MYSQL
MySQL  966 visitas

Cuando ya se lleva un tiempo usando mysql se ha tenido que usar la función concat para concatenar dos campos de una tabla, por ejempplo, el campo ...

Leer más

OPERADOR ALL EN MYSQL
MySQL  1745 visitas

Hace poco descubrí que la existencia del operador all en mysql. El operador ALL, permite comparar un valor, usando los comparadores de "<, >, ...

Leer más

OPERADOR ANY EN MYSQL
MySQL  1110 visitas

Hace poco descubrí que la existencia del operador any en mysql. El operador ANY, permite comparar un valor, usando los comparadores de ", =, ", ...

Leer más

COMO CAMBIAR EL DIRECTORIO DE BASE DE DATOS EN MYSQL
MySQL  1204 visitas

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 ...

Leer más

COMPRIMIR Y DESCOMPRIMIR DATOS EN MYSQL
MySQL  1165 visitas

Si vamos a tener una base de datos con una cantidad enorme de textos largos lo mejor será guardar esos datos comprimidos y luego descomprimirlos. ...

Leer más

DISTANCIA LEVENSTEIN EN MYSQL
MySQL  922 visitas

Hace poco escribí un artículo sobre distancia Levenstein en php donde se explcaba lo que era y para que se usaba así que solo voy a explicarlo como...

Leer más

FUNCIÓN RANK DE MYSQL
MySQL  5323 visitas

Hoy he descubierto la función rank de mysql. La función RANK asigna un rango a cada fila dentro de la partición de un conjunto de resultados. El ...

Leer más

COMO SABER EN QUE TABLA ESTÁ UN CAMPO EN MYSQL
MySQL  10636 visitas

En este post os cuento como saber en que tabla está un campo en mysql es una query bastante sencillita SELECT DISTINCT TABLE_NAME FROM ...

Leer más

MYSQL DE PERCONA
MySQL  1056 visitas

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...

Leer más

COPIAS DE SEGURIDAD
MySQL  2638 visitas

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 ...

Leer más

CREAR CURSORES EN MYSQL
MySQL  22503 visitas

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 ...

Leer más

RECUPERAR VALORES CAMPO ENUM EN MYSQL
MySQL  2834 visitas

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...

Leer más

TRIGGERS
MySQL  1844 visitas

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.

Leer más

PROCEDIMIENTOS Y FUNCIONES ALMACENADOS
MySQL  33431 visitas

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 ...

Leer más

VISTAS
MySQL  2050 visitas

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 ...

Leer más

CACHÉ DE CONSULTAS
MySQL  4396 visitas

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....

Leer más

MOTORES DE ALMACENAMIENTO
MySQL  2888 visitas

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 ...

Leer más

TIPO DE CAMPOS ÓPTIMOS
MySQL  1994 visitas

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 ...

Leer más

BÚSQUEDA POR TEXTO
MySQL  2232 visitas

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 ...

Leer más

EXPLAIN
MySQL  2669 visitas

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 ...

Leer más

SLOW QUERIES
MySQL  3283 visitas

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 ...

Leer más

TRANSACCIONES CON VARIAS QUERIES
MySQL  3144 visitas

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 ...

Leer más

INFORMATION_SCHEMA DE MYSQL
MySQL  2474 visitas

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...

Leer más

TOO MANY CONECTIONS
MySQL  1606 visitas

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...

Leer más

PROCEDURE ANALYSE
MySQL  2595 visitas

Hay una funcionalidad de MySQL que es poco conocida que es procedure analyse y se añade al final de la consulta. Elr esultado es un listado con los nombres de los campos de la consulta con los ...

Leer más

PRIORIZANDO QUERIES
MySQL  1826 visitas

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 ...

Leer más

ÍNDICES
MySQL  2647 visitas

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...

Leer más

VARIABLES MYSQL
MySQL  43009 visitas

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 ...

Leer más

MYSQL Y ACID
MySQL  4009 visitas

El modelo ACID es un conjunto de principios de diseño de base de datos que enfatiza aspectos de fiabilidad que son importantes para datos de negocio. MySQL incluye componentes como el motor de ...

Leer más

OPTIMIZAR INNODB
MySQL  3096 visitas

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 ...

Leer más

OBTENER IP Y PUERTO DE MYSQL
MySQL  4937 visitas

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')...

Leer más

OPTIMIZANDO QUERIES
MySQL  2537 visitas

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 ...

Leer más

USING EN JOINS
MySQL  2606 visitas

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 ...

Leer más

COPIAS DE SEGURIDAD DE BASE DE DATOS
MySQL  2179 visitas

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 ...

Leer más

BUSCAR REGISTROS DUPLICADOS EN UNA TABLA
MySQL  1790 visitas

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(*) ...

Leer más

EVENTOS
MySQL  3488 visitas

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 ...

Leer más

MYSQLCHECK
MySQL  2730 visitas

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...

Leer más

MODIFICAR CLAVE USUARIO ROOT
MySQL  2586 visitas

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 ...

Leer más

TAMAÑO BASE DE DATOS
MySQL  1732 visitas

Para saber cual es el tamaño de nuestra base de datos MySQL hay que ejecutar la siguiente sentencia...

Leer más

UNSIGNED
MySQL  1723 visitas

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 ...

Leer más

INSERTAR DUPLICADOS
MySQL  6549 visitas

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...

Leer más

MEJORAR LA PAGINACIÓN CON MYSQL
MySQL  1977 visitas

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 ...

Leer más

CAMBIAR PUERTO
MySQL  4424 visitas

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...

Leer más

BLOQUEO DE TABLAS
MySQL  12041 visitas

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 ...

Leer más

PRIMARY KEY VS UNIQUE
MySQL  4887 visitas

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 ...

Leer más

TABLAS TEMPORALES
MySQL  1741 visitas

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 ...

Leer más

CONEXIONES EXTERNAS
MySQL  2022 visitas

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 ...

Leer más

ROLLBACK TO SAVEPOINT
MySQL  3048 visitas

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 ...

Leer más

CHARSET Y COLLATION
MySQL  2059 visitas

Nunca me había planteado la diferencia entre charset y collation en MySQL y la verdad es que si que es algo que es importante. charset:Define el juego de caracteres con el que MySQL guardará...

Leer más

ACTIVAR Y DESACTIVAR TRIGGERS EN MYSQL
MySQL  13109 visitas

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. Para activar un trigger en...

Leer más

REPLICAS DE TABLAS EN MYSQL
MySQL  3290 visitas

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 ...

Leer más

GESTIÓN DE ERRORES EN MYSQL
MySQL  1839 visitas

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 ...

Leer más

FIND IN SET EN MYSQL
MySQL  2797 visitas

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...

Leer más

BLIND INJECTION
MySQL  1776 visitas

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...

Leer más

JOINS EN MYSQL
MySQL  8813 visitas

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 ...

Leer más

FRAGMENTACIÓN DE TABLAS EN MYSQL
MySQL  8185 visitas

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. ...

Leer más

FRAGMENTACIÓN HORIZONTAL EN MYSQL
MySQL  17699 visitas

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 ...

Leer más

TIPO DE DATO ENUM EN MYSQL
MySQL  62366 visitas

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 ...

Leer más

MODIFICADOR ROLLUP DE MYSQL
MySQL  3372 visitas

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 ...

Leer más

REEMPLAZAR REGISTROS EN MYSQL
MySQL  1567 visitas

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 ...

Leer más

TRABAJAR CON JSON EN MYSQL
MySQL  2198 visitas

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 ...

Leer más

TIPO DE DATO SET EN MYSQL
MySQL  17070 visitas

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...

Leer más

SENTENCIAS PREPARADAS EN MYSQL
MySQL  3542 visitas

Hace eun tiempo hablé en este blog de programación sobre blind injection y sobre la inyección de sql y en este post quiero hablar de como funcionan las sentencias preparadas en mysql que es ...

Leer más

CREAR USUARIOS EN MYSQL
MySQL  5917 visitas

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 ...

Leer más

VER PRIVILEGIOS DE LOS USUARIOS
MySQL  1224 visitas

Hace poco escribí un post de como crear usuarios en mysql y como otorgarles permisos.Hoy voy a comentar como ver privilegios de los usuarios: SHOW GRANTS;: Muestra los privilegios de todos ...

Leer más

PROCESOS EN EJECUCIÓN EN MYSQL
MySQL  16539 visitas

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 ...

Leer más

GESTIONAR CONCURRENCIAS EN MYSQL
MySQL  1650 visitas

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, solicititudes de dichas ...

Leer más

MYISAM VS INNODB
MySQL  1651 visitas

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. ...

Leer más

FORMATO FECHA
MySQL  1975 visitas

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 ...

Leer más