MySQL diventa grande
<giovanni@openbsd.org>
Mi presento
● Titolare della SnB, azienda di
assistenza e sviluppo software
● Sviluppatore OpenBSD
Perchè MySQL ?
● Opensource
● Multi piattaforma
● Molto diffuso presso molti ISP
● Enterprise-ready
Miti da sfatare
● MySQL solo per semplici siti web
● MySQL non ha le caratteristiche di
altri database di livello “Enterpr...
MySQL: i “Pro”
● Buona velocità delle query
● Supporto alle transazioni ACID (atomicity,
consistency, isolation, durabilit...
MySQL: i “Contro”
● Possibilità di replica del db server
● Allocazione dello spazio nel
tablespace InnoDB
Database engines
● MyISAM
● InnoDB
● Memory
● Blackhole
● Federated
MyISAM
● Utitilizzato da molti provider perchè
molto veloce
● Non supporta transazioni, viste,
stored procedures, partitio...
InnoDB
● Engine di default in MySQL 5.5
● Supporta ogni caratteristica di un db
server di livello “Enterprise”
● Se ottimi...
Blackhole
● I dati non vengono salvati
● Utile per fare dei benchmark e per le
repliche multi livello
Memory
● I dati vengono salvati in “memoria
volatile”
● Utile soprattutto per utilizzare le
tabelle temporanee
Federated
● I dati vengono letti da un altro server
MySQL e visti come se fossero locali
● Occorre studiare attentamente l...
Quando i record diventano tanti..
In caso di aumento dei record si ha un
naturale calo delle performance
● Correzione dei ...
Quando i record diventano tanti..
● Usare il comando EXPLAIN per
verificare le query
● Fare il profiling delle query
● Met...
Quando i record diventano tanti..
● Le “Partitioned tables” sono uno degli
strumenti per velocizzare l'esecuzione
delle qu...
“Partitioned tables”, quando ?
● Se si hanno tabelle di grandi
dimensioni
● Se le ricerche verranno fatte sempre
per l'ind...
Percona Toolkit
● Set di tools che semplificano
l'amministrazione di MySQL
● pt-summary, pt-mysql-summary,
pt-variable-adv...
MySQL Tuner
● Tool molto utile per ottimizzare la
configurazione del server MySQL
● Suggerisce delle configurazioni
ottima...
MySQL Workbench
Facciamo un po' di pratica..
Domande ?
Upcoming SlideShare
Loading in …5
×

Mysql diventa grande

664 views

Published on

Advanced features in Mysql 5.1 and later.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
664
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mysql diventa grande

  1. 1. MySQL diventa grande <giovanni@openbsd.org>
  2. 2. Mi presento ● Titolare della SnB, azienda di assistenza e sviluppo software ● Sviluppatore OpenBSD
  3. 3. Perchè MySQL ? ● Opensource ● Multi piattaforma ● Molto diffuso presso molti ISP ● Enterprise-ready
  4. 4. Miti da sfatare ● MySQL solo per semplici siti web ● MySQL non ha le caratteristiche di altri database di livello “Enterprise” ● Facebook utilizza MySQL
  5. 5. MySQL: i “Pro” ● Buona velocità delle query ● Supporto alle transazioni ACID (atomicity, consistency, isolation, durability) ● Viste, stored procedures e altri stumenti avanzati
  6. 6. MySQL: i “Contro” ● Possibilità di replica del db server ● Allocazione dello spazio nel tablespace InnoDB
  7. 7. Database engines ● MyISAM ● InnoDB ● Memory ● Blackhole ● Federated
  8. 8. MyISAM ● Utitilizzato da molti provider perchè molto veloce ● Non supporta transazioni, viste, stored procedures, partitioned tables, … ● Vivamente sconsigliato per un utilizzo professionale
  9. 9. InnoDB ● Engine di default in MySQL 5.5 ● Supporta ogni caratteristica di un db server di livello “Enterprise” ● Se ottimizzato è molto veloce anche con considerevoli quantità di dati
  10. 10. Blackhole ● I dati non vengono salvati ● Utile per fare dei benchmark e per le repliche multi livello
  11. 11. Memory ● I dati vengono salvati in “memoria volatile” ● Utile soprattutto per utilizzare le tabelle temporanee
  12. 12. Federated ● I dati vengono letti da un altro server MySQL e visti come se fossero locali ● Occorre studiare attentamente le query perchè ci sono dei limiti in questo tipo di tabelle
  13. 13. Quando i record diventano tanti.. In caso di aumento dei record si ha un naturale calo delle performance ● Correzione dei bug nell'applicazione ● Ottimizzazione del db server ● Miglioramento dell'hardware
  14. 14. Quando i record diventano tanti.. ● Usare il comando EXPLAIN per verificare le query ● Fare il profiling delle query ● Mettere (o togliere) i corretti indici ● Configurare i parametri in my.cnf (i parametri di default sono “scarsi”)
  15. 15. Quando i record diventano tanti.. ● Le “Partitioned tables” sono uno degli strumenti per velocizzare l'esecuzione delle query ● I dati vengono suddivisi in “partizioni” e la query cerca solo all'interno della partizione che serve
  16. 16. “Partitioned tables”, quando ? ● Se si hanno tabelle di grandi dimensioni ● Se le ricerche verranno fatte sempre per l'indice di “partizionamento” ● Se si vogliono eliminare dati storici velocemente ● Se gli indici occupano più spazio della ram disponibile
  17. 17. Percona Toolkit ● Set di tools che semplificano l'amministrazione di MySQL ● pt-summary, pt-mysql-summary, pt-variable-advisor per l'ottimizzazione del database ● pt-query-advisor per l'ottimizzazione delle query
  18. 18. MySQL Tuner ● Tool molto utile per ottimizzare la configurazione del server MySQL ● Suggerisce delle configurazioni ottimali ma non sostituisce un buon DBA
  19. 19. MySQL Workbench
  20. 20. Facciamo un po' di pratica..
  21. 21. Domande ?

×