Architettura MySQL E Motori MySQL L. Vigliano.

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
DBMS (DataBase Management System)
Database MySql.
Sicurezza e concorrenza nelle basi di dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Introduzione al datawarehouse
Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.
Data Bases Distribuiti Finalità Caratteristiche Struttura Mario Capurso
Gestione del processore
Connessione con MySQL.
WebProfessional Web Content Management System
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA FACOLTA DI INGEGNERIA – SEDE DI MODENA Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Confronto.
Valutazione delle Tecnologie XML, Web Service
IN QUESTA PRESENTAZIONE…
Biglietti: schema E/R.
G. Mecca – – Università della Basilicata Basi di Dati Tecnologia di un DBMS: Concorrenza e Affidabilità Concetti Avanzati versione 2.0.
RCS - Revision Control System Cosè A cosa serve Funzionalità principali Documentazione e installazione Corso di Programmazione Internet 1.
Un DataBase Management System (DBMS) relazionale client/server.
Limplementazione del database Oracle in Aleph500 Udine, marzo 2001.
SCHEDA INFORMATIVA DI UNITÀ
Tecnologie di un database server: la gestione della concorrenza
Nataliya Rassadko SQL: Lezione 8 Nataliya Rassadko
Aspetti sistemistici dellSQL. SQL environment Un SQL environment è un framework dove esistono dati e possono aversi istruzioni SQL eseguite su questi.
Gioco di Ruolo Sicurezza su Reti II /07 Commessa – Ufficiale Pagatore Gruppo 1 - NIC Albano Pietro Castiglione Arcangelo Rossomando Enrico Tortora.
SIMULAZIONE RETE INTERNET INTERNET SERVICE PROVIDER GRUPPO 2 COMMESSA – INFORMATICA GRANATA Corso Sicurezza su Reti II Prof. A. De Santis Anno Accademico.
Le transazioni Itis Max Planck.
Transazioni.
MySQL Query Performance Optimization
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
PuntoPunto Reliable peer-to-peer overlay network con capacità di NAT traversal Vincenzo Pacella matr
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
DAGLI ARCHIVI AI DATABASE
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Cos’è una transazione? Una transazione è un’unità logica di elaborazione richiesta da un’applicazione che dà luogo a una serie di operazioni fisiche elementari.
Docente: Roberto Basili Fond Inf (a.a ) Introduzione alla Progettazione Concettuale R. Basili.
BIRT Business Intelligence Reporting Tools
Corso di Basi di Dati Il Linguaggio SQL
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
© Giuseppe Berio – DI - UNITO
L’architettura a strati
1 Sistemi Informativi e Servizi in Rete Università degli Studi di Brescia Facoltà di Ingegneria Parsing di documenti XML Esercizi.
FUNZIONI Dichiarazione: Definizione:
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: –COMMIT –SAVEPOINT nome_punto.
1 Tecnologia di un Database Server S. Costantini Dispensa per il Corso di Basi di dati e Sistemi Informativi Il materiale per queste slide e’ stato tratto.
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;
Sviluppo per Pocket PC con SQL Server CE 2.0 Fabio Santini Silvano Coriani.NET Developer Evangelist Microsoft Corporation.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Tipo Documento: unità didattica 4 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Transazioni in MySQL 4 Transazioni in MySQL 4
Basi di dati Funzionalità e Progettazione Giorgio Ghelli.
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Gaetano Anastasi Beatrice Miotti Lorenzo Guerriero Monica Pellegrinelli Massimiliano Sartor Giorgio Macauda SQLite Esempi di utilizzo della libreria in.
Basi di Dati attive. Sistemi Informativi DEE - Politecnico di Bari E. TinelliBasi di dati attive2 Definizione Una base di dati si dice attiva quando dispone.
Anno Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Proprieta’ e caratteristiche strutturali dei sistemi.
Anno Architetture dati - DBMS Centralizzati Recovery management Carlo Batini.
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: COMMIT SAVEPOINT nome_punto.
Transcript della presentazione:

Architettura MySQL E Motori MySQL L. Vigliano

Architettura MySQL Caratteristiche Differente dagli altri DBMS Non perfetta Ma flessibile Gestisce DataWarehouses, OLTP, ecc. Architettura delle Storage Engine Separa il query processing dai task di memorizzazione e ricerca dati L. Vigliano

Architettura MySQL 1° liv. : servizi di rete, connessione, ecc. Simile ad altri DBMS. 2° liv. : cuore di MySql. Codice per query parsing, analisi, ottimizzazione, caching, ecc. 3° liv.: Motori di storage. Memorizzazione e ripescaggio di tutti i dati. L. Vigliano

Architettura MySQL Cosa avviene Connessione client Il server autentica e verifica privilegi client Controllo query cache MySQL analizza le query per creare il “parse tree” Ottimizzatore La Storage Engine scelta influisce sull’ ottimizzazione L. Vigliano

Architettura MySQL Controllo concorrenza MySQL lo deve effettuare su due livelli : Livello server Livello storage engine Lock di due tipi : shared lock exclusive lock Granularità dei lock Fissarne il giusto grado (table lock, row lock) La gestione dei lock è all’ interno delle storage engine L. Vigliano

Architettura MySQL Transazioni Decido, tramite le storage engine, se il DB è transazionale Ogni motore implementa 4 livelli di isolamento (in maniera però differente) : Read uncommitted Read committed Repeatable read (default) Serializable Alcune storage engine utilizzano il Transaction logging L. Vigliano

Architettura MySQL Deadlock aggiorna 3 aggiorna 4 commit t1 t2 T2 : aggiorna 4 aggiorna 3 commit 3 4 I DBMS adottano, per evitare il deadlock, varie forme di riconoscimento dello stallo e di timeout InnoDB riconosce le dipendenze circolari. L. Vigliano

Architettura MySQL Transazioni MySQL ha tre storage engine transazionali : InnoDB, NDBCluster e Falcon MyIsam non è trasazionale MySQL opera in “autocommit mode”, ma si può variare: Select @@autocommit; set autocommit = 0 ; L. Vigliano

Architettura MySQL Transazioni MySQL setta livello di isolamento sull’ intero server o sulla singola sessione di lavoro : Set session transaction isolation level read committed; MySQL non permette di avere, in una singola transazione, un mix di storage engine….. o meglio….. L. Vigliano

Architettura MySQL MVCC InnoDB, Falcon e PBXT non usano un semplice row-locking ma l’ MVCC. La tecnica MVCC (MultiVersion Concurrency Control) dà a tutti un’ istantanea (snapshot) consistente dei dati. MVCC (di InnoDB) assegna ad ogni riga di tabella due valori (versione della transazione) : Un valore quando la riga viene creata; Un valore quando la riga viene cancellata; Ogni transazione mantiene la riga con la sua versione. L. Vigliano

Architettura MySQL MVCC L. Vigliano

Architettura MySQL MVCC InnoDB, in pratica, deve trovare una versione della riga che è vecchia almeno come quella della transazione. La versione dello storage engine deve essere quindi <= alla versione della transazione. Questo assicura che : o la riga esisteva prima che iniziasse la transazione o che la transazione stessa ha creato o cambiato la riga. L. Vigliano

Architettura MySQL Sommario Locking e Concorrenza L. Vigliano

Architettura MySQL Storage Engine Le Storage Engines, in generale, sono moduli software che si occupano della memorizzazione e del recupero delle informazioni. MySQL memorizza ciascun database come sottodirectory della sua directory di dati (file system). Ogni storage engine memorizza dati e indici della tabella differentemente, ma è il server che gestisce la table definition ; show engines; show table status like ‘nometabella’\G L. Vigliano

Architettura MySQL MyIsam Engine Era il default di MySQL. Buon compromesso tra efficienza ed utilizzo. Non supporta transazioni e lock a livello riga. Ogni tabella in due file (portabili) : uno di dati (.MYD) e uno di indice (.MYI). Tabelle di 256 Tb, indici anche su 500 char. Comprimere (‘pack’) tabelle : myisampack; Controllo e recupero automatico : check table ‘nometab’; repair table ‘nometab’; myisamchk; L. Vigliano

Architettura MySQL MyIsam Merge Engine Combinazione di tabelle MyIsam identiche in una tabella virtuale. Utile per logging e datawarehouses L. Vigliano

Architettura MySQL InnoDB Engine Il più popolare per storage transazionale…ma anche per efficienza e crash-recovery automatico. Dati memorizzati in una serie di file detti ‘tablespace’ Usa MVCC e i 4 livelli di isolamento Repateable read default Strategia ‘next-key locking’ L. Vigliano

Architettura MySQL InnoDB Engine (2) Tabelle costruite su “clustered index”. Primary key molto veloci. Indici secondari meno veloci (no sort). Non comprime gli indici Supporta il constraint sulle foreign key Ottimizzazioni interne L. Vigliano

Architettura MySQL Memory Engine Tabelle heap (con dati in memoria); Accesso molto veloce a tabelle che non cambiano e che non recuperi. A un restart del server le tabelle sopravvivono, ma i dati no Utili per tenere il risultato periodico di dati aggregati, risultati intermedi…. e per le query di MySQL L. Vigliano

Architettura MySQL Archive Engine Solo insert e select; Non ha indici; Supporta il row-level locking ed emula l’MVCC Utili per logging e acquisizione dati L. Vigliano

Architettura MySQL CSV (Comma Separeted Value) Engine Tratta come tabelle, i file con valori separati da virgole Niente indici Utile per lo scambio di dati L. Vigliano

Architettura MySQL Federate Engine Tabelle Federated fanno riferimento a tabelle su un MySQL server remoto (nessun dato locale) Adatto per singole richieste sporadiche L. Vigliano

Architettura MySQL Black-hole Engine Nessun meccanismo di memoria Utile per simulare la replication o verificare il logging L. Vigliano

Architettura MySQL NDB Cluster Engine Alta velocità (Sony- Ericsson 2003) Loggato al disco, ma mantiene tutti i suoi dati in memoria Architettura complessa basata sul ‘non condivido nulla’ Il database NDB consiste in nodi di dati, nodi di gestione, nodi SQL Ciascun nodo di dati (server) mantiene un “fragment” dei dati. Frammenti duplicati. L. Vigliano

Architettura MySQL Falcon Engine Jim Starkey, inventore MVCC Progettato per processori multipli a 64 bit e tanta memoria Usa MVCC e cerca di mantenere le transazioni tutte in memoria Non finito. L. Vigliano

Architettura MySQL Solid DB Engine Simile all’ InnoDB Transazionale, usa MVCC e supporta foreign key L. Vigliano

Architettura MySQL PBXT (PrimeBaseXT) Engine Innovativo Transazionale, usa MVCC, supporta foreign key, riduce commit L. Vigliano

Architettura MySQL Maria Storage Engine Vuole sostituire MyIsam Adatto per tabelle di privilegi e tabelle temporanee. L. Vigliano

L. Vigliano

Architettura MySQL Scegliere le Storage Engine Sceglierle al momento del design del DB Verificare se ho bisogno di: Transazioni Concorrenza Backup Crash-recovery Altre caratteristiche particolari L. Vigliano

Architettura MySQL Esempi Logging di ogni chiamata telefonica : MyIsam, Archive, PBXT Non sottovalutare i bugs di MyIsam di fronte a un crash Operazioni bancarie, prenotazioni voli, ecc.: InnoDB o simili L. Vigliano

Architettura MySQL trasformare Storage Engine di tabelle Ci sono tre modi di trasformare tabelle da un tipo di storage engine a un altro: Alter table mytable Engine= Falcon; Usare mysqldump per usare i dati in una nuova create table; Misto dei precedenti : Create table innodb_table like myisam_table; Alter table innodb_table engine=InnoDB; Insert into innodb_table as select * from myisam_table; L. Vigliano