MySQL Query Performance Optimization

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Architettura MySQL E Motori MySQL L. Vigliano.
Microsoft SQL Server 2008 Utilizzo. Creazione DataBase CREATE DATABASE CREATE DATABASE Cinema.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
PHP.
Java: programmazione concorrente con condivisione di memoria
1 Classi di memorizzazione. 2 Definiscono le regole di visibilità delle variabili e delle funzioni quando il programma è diviso su più file Stabiliscono.
Generalità Linguaggio e Macchina Astratta
Connessione con MySQL.
Biglietti e Ritardi: schema E/R
Biglietti e Ritardi: schema E/R
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Realizzazione del file system
Operating System Concepts
Realizzazione del file system
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Un DataBase Management System (DBMS) relazionale client/server.
Scomposizione di stringhe
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
TCP Transmission Control Protocol. Programmazione II: Programmazione su Reti -- Prof. G. Persiano 2 TCP TCP fornisce un servizio di connessione –orientato.
Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Algoritmo di Query Optimization
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Daniel Stoilov Tesi di Laurea
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Qualità di servizio in ambiente wireless Progetto per il corso di Reti di Calcolatori L-S Prof. Antonio CorradiValentina Maraldi.
PuntoPunto Reliable peer-to-peer overlay network con capacità di NAT traversal Vincenzo Pacella matr
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Il componente Query Manager del sistema MOMIS: testing ed analisi delle performance UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA _____________________________________________________.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Valutazione costi di una QUERY. A.1-Nome di tutti i fornitori che forniscono il prodotto P2 forpro fornitori CP=P2 Nome fornitori (CF, Nome, Citta) prodotti(CP,
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
AICA Corso IT Administrator: modulo 4 AICA © EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Risoluzione dei Problemi e Analisi del Traffico.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
BIOINFO3 - Lezione 341 INTERAZIONE CON UN SERVER MYSQL Quando abbiamo parlato dei database relazionali SQL vi avevo già accennato che linterazione (invio.
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Interrogazioni (parte 2)
Ordinamenti nelle query di ricerca. verso crescente e decrescente.
SMTP Sniffing for Intrusion Detection Purposes Gianluca Papaleo Consiglio Nazionale delle Ricerche Istituto di Elettronica.
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Basi di dati Funzionalità e Progettazione Giorgio Ghelli.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Approfondimenti SQL.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Esercizio Una tabella Pubblicazioni ha chiave primaria CodPubbl e come chiave candidata l'ISBN. La tabella contiene di tuple ed è memorizzata.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
#sqlsatPordenone #sqlsat495 February 27, 2016 SQL Server 2016 Query Store: un nuovo modo di monitorare le query Saverio Lorenzini PFE Principal Engineer.
PHP HyperText Prepocessor.  Linguaggio di scripting lato server sviluppato per generare pagine web.  Permette ad un sito web di diventare dinamico 
Transcript della presentazione:

MySQL Query Performance Optimization

MySQL Query Performance Optimization Per ottimizzare le query bisogna capire come MySQL le esegue In generale bisogna verificare : se i dati richiesti sono tutti necessari se il server e l’ applicazione lavorano con più dati del dovuto l’execution time il numero di righe esaminate il numero di righe tornate

Esecuzione di base delle query

MySQL client/server protocol Protocollo half duplex Aspetta tutti i pacchetti di dati della risposta Query states : sending data, sleep, query, locked, analyzing and statistics,ecc. Show full processlist;

MySQL Query cache Cerca, con metodo hash, se è già presente la query Eventuali risultati già ottenuti vengono memorizzati nella cache

MySQL Parser e Preprocessor Verifica dei privilegi Il parser spezza la query in token e costruisce il “parse tree” Usa la grammatica SQL per interpretare la query Il preprocessor effettua controlli semantici non risolti dal parser

MySQL Query Optimizer Trova il migliore ! (!?!?) …prevedendo il costo di diversi piani di esecuzione costruiti dal ‘parse tree’ Show status like ‘last_query_cost’;

MySQL Query Optimizer (2) Ragioni di malfunzionamento : Statistiche sbagliate; Unità di costo errata; Non considerare la concorrenza di altre query; Piani di escuzione non considerati.

MySQL Query Optimizer (3) Ottimizzazioni statiche : semplicemente ispezionando il ‘parse tree’ Ottimizzazioni dinamiche : Dipendenti dal contesto Riesaminate ogni volta

MySQL Query Optimizer (4) Compiti : riordina i join; converte outer join; applica regole di equivalenza dell’ algebra; crea e usa indici Btree; crea e usa covering index; converte subquery; valuta e riduce espressioni; riconosce uguaglianze colonne.

MySQL Query Execution Plan Semplice piano di istruzioni, non un byte code. Ogni query è un albero ‘left-deep’ Explain extended… show warnings; ‘quicksort’, se buffer

MySQL Query Execution Engine Usa il piano di escuzione come struttura dati non eseguibile. Invoca metodi implementati dalle API. L’interfaccia Storage engine ha molte funzionalità, ma solo una dozzina di operazioni (“building block”)

MySQL ritorno dei risultati I risultati vengono subito inviati al client e poi eventualmente memorizzati nella cache

MySQL Query Performance Optimization Casi in cui l’ottimizzatore (MySQL) non funziona bene : Query nidificate e correlate Alcune Union Alcune equality propagation Alcuni ‘between’… Alcuni min() e max() Select e update sulla stessa tabella

MySQL Query Performance Optimization Consigli e trucchi per ottimizzare query : Usare, bene, count() Indici per i join Usare LIMIT e OFFSET Evitare le Union