Configurarea mysql

Configurația de bază a MySQL utilizând fișierul /etc/my.cnf sau /etc/mysql/my.cnf

Specificarea codificărilor și a colaționării

În secțiunea [mysqld] adăugăm linii:

caracter-set-server = utf8
collation-server = utf8_general_ci
init-connect = "SET NAMES utf8"

  • character-set-server - codare pentru întregul server;
  • server de colaționare - ordinea caracterelor și arurilor pe clase de ordine și echivalență alfabetică;
  • init-connect este șirul care este executat pentru fiecare client al conexiunii.

Limitarea cantității, limitele de timp și sursele de conectare

Măriți numărul de fișiere deschise

În majoritatea sistemelor Linix, limita prestabilită pentru deschiderea descriptorilor de fișiere este setată la 1024, acest lucru nu este suficient pentru a funcționa.

Să verificăm opțiunile curente:

Vom introduce limitele cerute în /etc/security/limits.conf

Modificați dinamic limitele curente:

Să verificăm limita soft:

Limitele curente din MySQL sunt verificate de interogarea SQL:

EVIDENȚI VARIABILE SIMILARE '% open_files%'

Optimizarea MySQL pentru MyISAM

Optimizarea parametrilor MySQL permite creșterea semnificativă a performanței MyISAM.

Principalii parametri sunt key_buffer_size (tampon pentru a lucra cu chei și indici) și sort_buffer (tampon de sortare).

key_buffer_size = 64M
sort_buffer_size = 32M

Dacă aveți 16 GB de memorie sau mai mult, se recomandă să măriți key_buffer_size la 128M-256M. Dacă nu utilizați tabelele MyISAM, se recomandă să se instaleze dimensiunea key_buffer_size de 32MB pentru stocarea indexurile de tabele temporare.

Cache-ul de interogare este specificat în opțiunea query_cache_size. limita elementului cache în query_cache_limit. cache a tablelor deschise în table_open_cache.

table_open_cache = 2048
query_cache_limit = 2M
query_cache_size = 128M
query_cache_type = 1
thread_cache_size = 16

max_heap_table_size = 128M
tmp_table_size = 128M

Transferarea fișierelor temporare MySQL în memorie

Verificați pentru / dev / shm:

nici unul / dev / shm tmpfs implicit, dimensiune = 1G 0 0

Dacă se fac modificările, atunci vom reimpona:

mount -o remount / dev / shm

În fișierul de configurare, specificați:

În cazul în care utilizați Apparmor. apoi face calea de utilizare (/ dev / SHM sau / run / mysql) în /etc/apparmor.d/usr.sbin.mysqld fișier de configurare, de exemplu:

service apparmor restart

Optimizarea MySQL pentru InnoDB

innodb_file_per_table = 1
table_open_cache = 4096
innodb_open_files = 4096

Când utilizați numai InnoDB, unele opțiuni necesită o ajustare:

key_buffer_size = 32M
max_allowed_packet = 1M
sort_buffer_size = 32M
read_buffer_size = 256K
read_rnd_buffer_size = 1M
thread_stack = 128K
query_cache_limit = 1M
query_cache_size = 0
query_cache_type = 1
thread_cache_size = 32
max_heap_table_size = 128M
tmp_table_size = 128M

Vă rugăm să rețineți, atunci când se lucrează cu InnoDB vom dezactiva setarea query_cache_size valoarea sa la 0, elimină etapele inutile pentru lucrul cu cache-ul, care este deosebit de important atunci când se lucrează cu volume mari de date.

Setările importante la utilizarea MySQL cu InnoDB este innodb_buffer_pool_size. Acesta este stabilit pe principiul „mai mult, cu atât mai bine.“ Se recomandă să se aloce 70-80% din serverul RAM sub innodb_buffer_pool_size. Nu uitați să utilizați calculul de memorie Apache și software-ul suplimentar pentru a evita trage de timp sistem de swap. Serverul este setat la gama de 16GB 10-12G și împărțiți-l în patru secțiuni, pentru un server cu 32GB 20-22G domeniului de valori și împărțiți-l în 8 secțiuni:

innodb_buffer_pool_size = 10G
innodb_buffer_pool_instances = 4

Dimensiunea memoriei alocate de InnoDB pentru stocarea diferitelor structuri interne este setată la 16M-32M

Setarea unei dimensiuni innodb_log_file_size de dimensiuni mari poate duce la o creștere a performanței, în timp ce timpul de recuperare a datelor va crește.

innodb_log_file_size = 128M
innodb_log_buffer_size = 16M

Când setați valoarea la 2, tamponul nu este resetat la disc, ci numai la memoria cache a sistemului de operare. Setarea valorii la 0 va crește performanța, cu toate acestea, cele mai recente date se pot pierde atunci când serverul mysql se blochează.

Numărul de fluxuri I / O de fișiere din InnoDB este specificat de opțiunea innodb_file_io_threads. În mod normal, acest parametru este setat la 4 sau 8.

Deoarece versiunea MySQL 5.5 este împărțită în două opțiuni:

innodb_read_io_threads = 8
innodb_write_io_threads = 8

Pentru a accelera lucrul cu INFORMATION_SCHEMA, STARE SHOW TABLE sau dezactiva SHOW INDEX actualizarea statisticilor în efectuarea acestor operațiuni, o versiune de MySQL 5.6.6 innodb_stats_on_metadata dezactivată în mod implicit:

După aplicarea modificărilor, reporniți MySQL:

service mysqld restart

Articole similare