Mostrando entradas con la etiqueta Gestión de bases de datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Gestión de bases de datos. Mostrar todas las entradas

21 de febrero de 2016

:: Sentencia Explain en MySQL

La sentencia EXPLAIN de MySQL, quizás poco conocida y utilizada puede servirnos para optimizar las consultas sobre nuestra base de datos.
Esta sentencia devuelve una relación de registros  con información sobre cada una de las tablas empleadas en la consulta a la que acompaña.

El formato de la misma es la siguiente:
EXPLAIN SELECT * FROM tabla1, tabla2; 

Los registros devueltos como resultado de la consulta anterior  muestran la lista las tablas en el orden en el que MySQL las leería al procesar la consulta, es decir, el primer registro (fila) devuelto sería la primera tabla que se lee, y último registro sería la última tabla que sería leída.
Este orden es importante ya que nos indicará el plan de ejecución de la consulta y, por tanto, será información relevante para llevar a cabo las posibles optimizaciones.

Adicionalmente puede utilizarse la sentencia EXTENDED para obtener información más detallada del plan de ejecución. En este caso, nos devolverá una columna adicional denominada “filtered”, que nos indicará el porcentaje aproximado de filas filtradas por la condición empleada en la tabla.

El formato es el siguiente:
EXPLAIN EXTENDED SELECT * FROM tabla1, tabla2; 
Utilizada esta sentencia con SHOW WARNINGS nos mostrará la consulta reescrita tras la actuación del optimizador.
 EXPLAIN SELECT * FROM tabla1, tabla2 SHOW WARNINGS; 
Otro posible uso sería con PARTITIONS, para obtener información sobre las tablas particionadas de la consulta.
 EXPLAIN PARTITIONS SELECT * FROM tabla1, tabla2;
Tras la ejecución de la consulta con la sentencia EXPLAIN obtendremos una serie de filas con distintos campos, que pasaremos a describir a continuación:

  • id: identificador de cada una de las tablas procesadas en la consulta
  • select_type: indica el tipo de SELECT que se ha ejecutado. En función del tipo de SELECT nos permitirá identificar qué tipo de consulta se trata; Existen varios tipos: SIMPLE, PRIMARY, UNION, DERIVED…
  • table: nombre de la tabla a la que se refiere la información de la fila. También, puede ser alguno de los siguientes valores:
    • : tabla resultante de la unión de las tablas cuyos campos id son M y N
    • : tabla resultante de una tabla derivada (una subconsulta en la cláusula FROM)cuyo id es N
    • : tabla resultante de una subconsulta cuyo id es N
  • partitions: particiones cuyos registros coinciden con los de la consulta (cuando se utiliza EXPLAIN PARTITIONS)
  • type: tipo de unión utilizado
  • possible_keys: indices disponibles sobre la tabla. Si esta columna es NULL, indica que no hay índices que puedan ser utilizados para optimizar la consulta
  • key: índice utilizado por MySQL para ejecuar la consulta. Puede ocurrir que el nombre del índice no esté presente en la lista de possible_keys
  • key_len: tamaño del índice utilizado por MySQL para ejecutar la consulta.
  • ref: columnas o constantes comparadas con el índice especificado en la columna key
  • rows: número de filas aproximado que MySQL considera que deben ser examinadas para ejecutar la consulta
  • filtered: porcentaje estimado de filas que serán filtradas por la condición de la consulta (cuando se utiliza EXPLAIN EXTENDED)
  • Extra: información adicional sobre cómo MySQL ejecuta la consulta

 Más información sobre MySQL: http://dev.mysql.com/doc/refman/5.7/en/




27 de julio de 2011

:: ORM. Object Relational Mapping.


De acuerdo a la información presente en la wikipedia, ORM es una técnica de programación que nos permite vincular los objetos de nuestra aplicación con el modelo relacional de la base de datos. Por así decirlo, en lugar de tener una base de datos relacional tendremos una base de datos orientada a objetos "virtual".

Podemos señalar diversas ventajas y desventajas -o inconvenientes- de su uso en proyectos.
En primer lugar las ventajas:
- Menor tiempo de desarrollo de las aplicaciones
- Mayor abstracción, al lograr que la aplicación sea agnóstica - en mayor o menor medida - del motor de base de datos
- Lenguajes y sintaxis de consulta de datos, por ejemplo: "LinQ" o "Hibernate".

Como desventajas podemos señalar:
- La curva de aprendizaje no es reducida ya que requiere de un estudio y pruebas del framework seleccionado
- Quizás no sea una ventaja demasiado evidente en sistemas complejos
- Menor rendimiento de la aplicación al incluir una capa intermedia

Algunos frameworks ORM que podemos utilizar en PHP (existen muchos más, pero quizás estos sean los más conocidos):
Propel
Doctrine

24 de diciembre de 2009

:: SQLDesigner. Modelar bases de datos


Se trata de una herramienta para construir el modelo de datos de nuestros proyectos.
Su uso es muy sencillo e intuitivo, creando tablas, relaciones, importar y exportar ficheros xml, generar los scripts de base de datos correspondientes,... existiendo tambien una version online.
En el caso de descargarnos la aplicaciones, sera necesario montar la plataforma necesaria para ejecutarlo:
- Apache
- Soporte para PHP
- Base de datos MySQL

Puedes ver una demo online en el siguiente enlace: http://ondras.zarovi.cz/sql/demo/

Mas informacion y descarga: http://code.google.com/p/wwwsqldesigner

29 de septiembre de 2009

:: PostgreSQL


PostgreSQL es un software libre de gestión de bases de datos relacional, orientada a objetos.
Algunas de las caracteristicas destacables:
- Concurrencia. Permite que mientras un proceso escribe en una tabla, otros pueden acceder a la misma tabla, sin necesidad de implementar bloqueos
- Tipos nativos
- Claves ajenas
- Triggers
- Lenguaje propio PL/pgSQL
- Extensiones con soporte para datos geográficos, por ejemplo PostGIS

pgAdmin III es una interfaz gráfica para la administración y desarrollo bajo la plataforma PostgreSQL. Su instalación es muy sencilla; tan sólo tendremos que descargarnos la aplicación y seguir los pasos del instalador.

Más información: www.postgresql.org

:: Liferay DXP 2026. Habilitar RSS

En la versión Liferay DXP 2026 para habilitar las fuentes de datos RSS debemos seguir los pasos siguientes: 1.- Accederemos a la Configuraci...