Architettura MySQL. E Motori MySQL



Похожие документы
L architettura di un DBMS

Introduzione all Architettura del DBMS

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

DATABASE.

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Lezione 8. Metadati, Viste e Trigger

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

DBMS (Data Base Management System)

PROGRAMMA DI CLASSE 5AI

Introduzione a MySQL

MySQL: il database open source che ha sfidato i giganti

La Gestione delle risorse Renato Agati

Definizione di domini

Le Basi di Dati. Le Basi di Dati

Tecnologia di un Database Server (centralizzato) Introduzione generale

MYSQL CLUSTER. Di Stefano Sardonini

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Database. Francesco Tapparo Informatica e Bioinformatica /16

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Organizzazione degli archivi

Base di dati e sistemi informativi

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

File system II. Sistemi Operativi Lez. 20

Gestionale Open 9.xx

Lezione V. Aula Multimediale - sabato 29/03/2008

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Antivirus. Lezione 07. A cosa serve un antivirus

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Archivi e Basi di Dati

DATABASE. A cura di Massimiliano Buschi

Access. P a r t e p r i m a

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Trasformazione DB Access In SQL Server. Michele De Nittis

Architettura di storage

Sistemi avanzati di gestione dei Sistemi Informativi

SurfCop. Informazioni sul prodotto

Caratteristiche principali. Contesti di utilizzo

Il file seme o file modello del disegno

Transazioni in SQL. Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013

Corso di Sistemi di Elaborazione delle informazioni

MySQL Adoption. Esperienze in ambienti mission-critical. Emilio Scalise, Senior System Engineer, Babel MySQL Tech Tour 18/02/2014

Indice Prefazione SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Sistemi centralizzati e distribuiti

COSTER. Import/Export su SWC701. SwcImportExport

Introduzione. Dicom in Oracle 11g: gestione e vantaggi

GERARCHIE RICORSIVE - SQL SERVER 2008

Al giorno d oggi, i sistemi per la gestione di database

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Capitolo 13. Interrogare una base di dati

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Lezione 1. Introduzione e Modellazione Concettuale

Facoltà di Farmacia - Corso di Informatica

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO IMPIEGATO

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione al data base

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Apache e Mysql cluster

Database & FreeBSD. Come configurare il sistema operativo ottimizzando le prestazioni sul DB. GufiCon#3 Milano, 12 Ottobre 2002

Architetture Applicative

Informatica per le discipline umanistiche 2 lezione 10

Introduzione a phpmyadmin

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Introduzione alla Virtualizzazione

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Acronis Universal Restore

Le transazioni. Dott. Doria Mauro

Che cosa è un VIRUS?

Corso di Basi di Dati e Conoscenza

Database MySQL: 10 trucchi per migliorarne le performance

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Laboratorio di Basi di Dati e Web

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

CONCETTO DI ANNIDAMENTO

Транскрипт:

E Motori 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

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.

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

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

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

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

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 ;

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

MVCC InnoDB, Falcon e PBXT non usano un semplice rowlocking 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.

MVCC

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.

Sommario Locking e Concorrenza

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

MyIsam Engine 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;

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

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

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

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

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

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

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

Black-hole Engine Nessun meccanismo di memoria Utile per simulare la replication o verificare il logging

NDB Cluster Engine Alta velocità (Sony- Ericson 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.

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.

Solid DB Engine Simile all InnoDB Transazionale, usa MVCC e supporta foreign key

PBXT (PrimeBaseXT) Engine Innovativo Transazionale, usa MVCC, supporta foreign key, riduce commit

Maria Storage Engine Vuole sostituire MyIsam Adatto per tabelle di privilegi e tabelle temporanee.

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

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

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;