Optimització de consultes en MySQL (unes notes)

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

SQL Sigla del nombre “Structured Query Language”.
Fernando Velasco
OPTIMIZACIÓN DEL RENDIMIENTO
Consultas anidadas.
Características Objeto Relacionales en Oracle
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
MySQL M.C. Pedro Bello López.
Mini curso: Inteligencia de negocios (Bodega y Minería de Datos) aplicación práctica Mauro Callejas Cuervo Ecuador, Mayo 2014 Sesión 2 – TALLER 2 Grupo.
…Tablas DDL.
SQL Lenguaje de consulta estructurado
SQL Básico Prof. Nelliud D. Torres.
Motores de almacenamiento en MySQL por Mario López y Juan A. Sánchez.
“Optimización de sentencias MySQL” jueves 26 de septiembre de 2013.
D ISEÑO DE UNA B ASE DE D ATOS. F ASES DEL DISEÑO.
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Integridad Referencial 1. Integridad referencial 2.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
Aprenda MySQL en 120 minutos Tutorial. Dirigido a...
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
Lèxic: El sentit propi i el sentit figurat
Structured Query Language (Lenguaje Estructurado de Consultas)
SQL Sigla del nombre “Structured Query Language”.
Base de Datos I. SQL es el lenguaje estándar para trabaja con base de datos relacionales. MySQL, el sistema de gestión de bases de datos SQL Open Source.
Laboratorio de optimización de BD
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
HINTS ¿Cómo afectar el plan de ejecución? Por defecto, el SGBD tomará en cuenta el camino de ejecución (Execution Path) determinado por el optimizador.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Bases de Datos SQL.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Copyright  Oracle Corporation, All rights reserved. 2 Restricción y ordenación de datos.
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
Saregune CC 2009 SQL Introducción. base de datos Una estructura ordenada de información.
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
SQL 2: Structured Query Language
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
SQL: structured Query Language
Join en MySQL.
ENERGIA Energia és allò capaç de transformar la matèria.
Ciències per al món contemporani
Presentació de la base de dades
Presentació de la base de dades
Control de Retirada de Vehicles
Presentació de la base de dades
Disseny i implementació d’una base de dades relacional
Una forma fàcil d'obtenir algunes fórmules
SOCIOLINGÜÍSTICA COMUNICACIÓ Pàg
Viatge a l’interior de la matèria.
DE LA DURADA AL RITME.
Tutorials Campus Virtual Càrrega automàtica d’alumnes
Situacions Simuladores Preferencials (SSP)
Optimització de BDR (Oracle)
Imaginem que fa un segle haguéssim hibernat a un cirurgià i a un mestre...
Disseny de la persistència Serialització
Jonathan Ceballos Rodriguez ( ) Zenón Perisé Alía ( )
Repàs control matemàtiques
Disseny de la persistència Introducció i mapping objecte/relacional
Repàs control matemàtiques
Estructurant les aplicacions MVC JSTL Struts
ERIC Manual d’ús.
REAXYS.
Explica amb detall com ho has fet per decidir el tros que pintes.
LA NOVA SELECTIVITAT I L’ACCÉS A LA UNIVERSITAT
Principi del canvi (immanent)
Llengua catalana i literatura
Manteniment calendari d'exàmens
Transcripción de la presentación:

Optimització de consultes en MySQL (unes notes) Toni Navarrete Enginyeria del Software II – UPF 2007

Optimitzador de consultes MySQL també té un optimitzador que determina quina és la millor manera d’executar una consulta Basat en costos Intenta minimitzar el nombre de files a processar Basat en “força bruta” (analitza totes les possibilitats i en tria la millor)

Cache de consultes Permet que la consulta no s’executi sinó que la resposta s’obtengui de la cache Al fitxer ini: query_cache_type = 1 (sempre amb cache) query_cache_type = 2 (només quan s’especifiqui) select sql_cache * from T; select sql_non_cache * from T;

Explicació de plans de consulta Explicació de plans de consulta. Exemple amb un accés complet a una taula mysql> explain select poblacio1991 from municipi \G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: municipi type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 8404 Extra: 1 row in set (0.00 sec)

Explicació de plans de consulta. Descripció del pla Id: identifica la taula en la query (genera un registre per cada taula involucrada) Select_type: el rol de la taula en la query: SIMPLE PRIMARY UNION DEPENDENT UNION SUBSELECT DERIVED Table: el nom dela taula

Explicació de plans de consulta. Descripció del pla Type: el tipus d’accés a la taula: ALL (totes les files) CONST (a partir d’una constant) RANGE REF (en un join, la foreign key) EQ_REF

Explicació de plans de consulta. Descripció del pla Possible_keys: els possibles índexs que pot usar Key: el que n’utilitza Key_len: el tamany en bytes de l’índex Ref: el valor (o columna) que s’utilitza per fer la cerca (const si és un valor fixat) Rows: el número de files que s’espera que s’hagin de processar Extra: informació addicional

Explicació de plans de consulta. Exemple amb un join i índexs mysql> explain select m.* from municipi m, comunitat c where c.nom='Illes Balears' and c.ca_id=m.ca_id\G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: c type: ref possible_keys: index_canom key: index_canom key_len: 53 ref: const rows: 1 Extra: Using where *************************** 2. row *************************** table: m possible_keys: index_mcaid key: index_mcaid key_len: 5 ref: municipis.c.ca_id rows: 210 2 rows in set (0.03 sec) Explicació de plans de consulta. Exemple amb un join i índexs

Hints Tot el que va entre /*! i */ no és SQL i el gestor s’ho “saltarà” si no ho entén Exemple: select /*! sql_cache */ * from T; Forçar índex: Un dels possibles: Select * from T use index(ca_id,nom,…); Forçar l’ús d’un índex concret: Select * from T force index(nom_index); Ignorar un índex concret: Select * from T ignore index(…); Forçar ordre del join: Select * from T1 straight_join T2 where …

Detecció de queries “lentes” En el fitxer ini podem establir un límit de temps a partir del qual una query es considera “lenta” (per exemple, 2 segons) En aquests cassos s’escriu a un registre de log No sempre indica un problema, però sovint sí