Mysql
 sql >> Database >  >> RDS >> Mysql

15 utili suggerimenti per l'ottimizzazione e l'ottimizzazione delle prestazioni di MySQL/MariaDB

MySQL è un potente sistema di gestione di database relazionali open source o in breve RDBMS . È stato rilasciato nel 1995 (20 anni). Utilizza il linguaggio di query strutturato che è probabilmente la scelta più popolare per la gestione dei contenuti all'interno di un database. L'ultima versione di MySQL è 5.6.25 ed è stato rilasciato il 29 maggio 2015 .

Un fatto interessante su MySQL è il fatto che il nome deriva da Michael Widenius (la creatrice di MySQL) figlia My. Anche sebbene ci siano molti fatti interessanti su MySQL, questo articolo ha lo scopo di mostrarti alcune pratiche utili per aiutarti a gestire il tuo server MySQL.

Ad aprile 2009 il progetto MySQL è stato acquistato da Oracle. Di conseguenza un fork della community MySQL chiamato MariaDB è stato creato. Il motivo principale per la creazione del fork era mantenere il progetto libero sotto la General Public License.

Oggi MySQL e MariaDB sono uno degli RDBMS più (se non il più) utilizzati per applicazioni web come WordPress , Joomla , Magento e altri.

Questo articolo ti mostrerà alcuni suggerimenti di base ma utili su come ottimizzare la messa a punto delle prestazioni di MySQL/MariaDB. Tieni presente che questo articolo presuppone che MySQL o MariaDB siano già installati. Se ti stai ancora chiedendo come installarli sul tuo sistema, puoi seguire le nostre guide complete qui:

  1. Installazione di LAMP su RHEL/CentOS 7
  2. Installazione di LAMP su Fedora 22
  3. Configurazione di LAMP su Ubuntu 15.04
  4. Installazione di MariaDB su Debian 8
  5. Installa MariaDB su Gentoo Linux
  6. Installa MariaDB su Arch Linux

Importante :Prima di iniziare, non accettare ciecamente questi suggerimenti. Ogni configurazione di MySQL è unica e richiede un'ulteriore riflessione prima di apportare qualsiasi modifica.

Cose che devi sapere:

  1. Il file di configurazione MySQL/MariaDB si trova in /etc/my.cnf . Ogni volta che modifichi questo file dovrai riavviare il servizio MySQL in modo che le nuove modifiche abbiano effetto.
  2. Per aver scritto questo articolo MySQL versione 5.6 è stato utilizzato come modello.

1. Abilita file per tabella InnoDB

Innanzitutto è importante spiegare che InnoDB è un motore di archiviazione. MySQL e MariaDB utilizzano InnoDB come motore di archiviazione predefinito. In passato MySQL utilizzava per mantenere le tabelle e gli indici del database in un tablespace di sistema. Questo approccio è stato pensato per i server il cui unico scopo è l'elaborazione del database e il loro disco di archiviazione non viene utilizzato per altri scopi.

InnoDB fornisce un approccio più flessibile e ogni informazione del database è conservata in un .ibd file di dati. Ogni .ibd file rappresenta un tablespace a sé stante. In questo modo operazioni di database come "TRUNCATE ” può essere completato più velocemente e puoi anche recuperare lo spazio inutilizzato quando si elimina o si tronca una tabella del database.

Un altro vantaggio di questa configurazione è il fatto che è possibile mantenere alcune delle tabelle del database in un dispositivo di archiviazione separato. Ciò può migliorare notevolmente l'I/O carica sui tuoi dischi.

Il innodb_file_per_table è abilitato per impostazione predefinita in MySQL 5.6 e versioni successive. Puoi vederlo in /etc/my.cnf file. La direttiva si presenta così:

innodb_file_per_table=1

2. Archivia i dati del database MySQL su partizioni separate

Nota :questa configurazione funziona solo con MySQL, ma non con MariaDB.

A volte la lettura/scrittura del sistema operativo può rallentare le prestazioni del server MySQL, soprattutto se si trova sullo stesso disco rigido. Consiglierei invece di utilizzare un disco rigido separato (preferibilmente SSD) per il servizio MySQL.

Per completare, dovrai collegare la nuova unità al tuo computer/server. Ai fini di questo articolo, presumo che l'unità sia in /dev/sdb .

Il passaggio successivo consiste nel preparare la nuova unità:

# fdisk /dev/sdb

Ora premi "n ” per creare una nuova partizione. Quindi premi "p ” per rendere primaria la nuova partizione. Successivamente, imposta il numero di partizione da 1-4 . Dopodiché selezionerai la dimensione della partizione. Premi invio qui. Nel passaggio successivo dovrai configurare la dimensione della partizione.

Se desideri utilizzare l'intero disco, premi invio ancora una volta. Altrimenti puoi impostare manualmente la dimensione della nuova partizione. Quando sei pronto, premi "w ” per scrivere le modifiche. Ora dovremo creare un filesystem per la nostra nuova partizione. Questo può essere fatto facilmente con:

# mkfs.ext4 /dev/sdb1

Ora monteremo la nostra nuova partizione in una cartella. Ho chiamato la mia cartella “ssd ” e creato nella directory principale:

# mkdir /ssd/

Siamo pronti per montare la nuova partizione che abbiamo appena creato nella nuova cartella:

# mount /dev/sdb1  /ssd/

Puoi eseguire il montaggio all'avvio aggiungendo la seguente riga in /etc/fstab file.

/dev/sdb1 /ssd ext3 defaults 0 0

Ora sei pronto per spostare MySQL sul nuovo disco. Per prima cosa arresta il servizio MySQL con:

# service mysqld stop

Ti consiglierei di fermare anche Apache/nginx per impedire qualsiasi tentativo di scrittura nei database:

# service httpd stop
# service nginx stop

Ora copia l'intera directory MySQL nella nuova unità:

# cp /var/lib/mysql /ssd/ -Rp

Questo potrebbe richiedere del tempo a seconda del sito dei tuoi database MySQL. Una volta completato questo processo, rinomina la directory MySQL:

# mv /var/lib/mysql /var/lib/mysql-backup

Successivamente creeremo un collegamento simbolico.

# ln -s /ssd/mysql /var/lib/mysql

Ora sei pronto per avviare il tuo servizio Web e MySQL:

# service mysqld start
# service httpd start
# service nginx start

A questo punto sarà possibile accedere ai database MySQL dalla nuova unità.

Pagine:1 2 3 4