15 noderīgi MySQL/MariaDB veiktspējas regulēšanas un optimizācijas padomi


MySQL ir spēcīga atvērtā koda relāciju datu bāzu pārvaldības sistēma vai īsāk sakot - RDBMS. Tas tika izlaists tālajā 1995. gadā (20 gadus vecs). Tas izmanto strukturēto vaicājumu valodu, kas, iespējams, ir vispopulārākā izvēle satura pārvaldīšanai datu bāzē. Jaunākā MySQL versija ir 5.6.25 un tika izlaista 2015. gada 29. maijā.

Interesants fakts par MySQL ir fakts, ka vārds radies no Maikla Wideniusa (MySQL radītāja) meitas My. Lai gan ir daudz interesantu faktu par MySQL, šis raksts ir paredzēts, lai parādītu jums noderīgu praksi, kas palīdzēs jums pārvaldīt MySQL serveri.

2009. gada aprīlī MySQL projektu nopirka Oracle. Rezultātā tika izveidota MySQL kopienas dakša ar nosaukumu MariaDB. Galvenais dakšas izveides iemesls bija saglabāt projektu brīvu ar vispārējo publisko licenci.

Mūsdienās MySQL un MariaDB ir vieni no visbiežāk (ja ne visbiežāk) visbiežāk izmantotajiem RDBMS, kurus izmanto tīmekļa lietojumprogrammām, piemēram, WordPress, Joomla, Magento un citām.

Šajā rakstā tiks parādīti daži pamata, tomēr noderīgi padomi, kā optimizēt MySQL/MariaDB veiktspēju. Lūdzu, ņemiet vērā, ka šajā rakstā tiek pieņemts, ka jums jau ir instalēta MySQL vai MariaDB. Ja jūs joprojām domājat, kā tos instalēt savā sistēmā, varat sekot mūsu plašajiem ceļvežiem šeit:

  1. LAMP instalēšana RHEL/CentOS 7 ierīcē
  2. LAMP instalēšana vietnē Fedora 22
  3. LAMP iestatīšana Ubuntu 15.04
  4. MariaDB instalēšana Debian 8
  5. Instalējiet MariaDB operētājsistēmā Gentoo Linux
  6. Instalējiet MariaDB uz Arch Linux

Svarīgi: pirms mēs sākam - nepieņemiet šos ieteikumus akli. Katrs MySQL iestatījums ir unikāls, un pirms izmaiņu veikšanas ir nepieciešams vairāk domāt.

Lietas, kas jums jāzina:

  1. MySQL/MariaDB konfigurācijas fails atrodas /etc/my.cnf . Katru reizi, kad modificējat šo failu, jums būs jārestartē MySQL pakalpojums, lai jaunās izmaiņas varētu stāties spēkā.
  2. Šī raksta rakstīšanai MySQL 5.6 versija ir izmantota kā veidne.

1. Iespējojiet InnoDB failu par katru tabulu

Vispirms ir svarīgi paskaidrot, ka InnoDB ir glabāšanas dzinējs. MySQL un MariaDB kā noklusējuma atmiņas moduli izmanto InnoDB. Agrāk MySQL mēdza glabāt datu bāzes tabulas un indeksus sistēmas tabulu telpā. Šī pieeja bija domāta serveriem, kuru vienīgais mērķis ir datu bāzes apstrāde, un to glabāšanas disks netiek izmantots citiem mērķiem.

InnoDB nodrošina elastīgāku pieeju, un katra datu bāzes informācija tiek glabāta datu failā .ibd . Katrs .ibd fails attēlo savu tabulu vietu. Tādā veidā datu bāzes darbības, piemēram, “TRUNCATE”, var pabeigt ātrāk, un jūs varat arī atgūt neizmantoto vietu, nometot vai saīsinot datu bāzes tabulu.

Vēl viena šīs konfigurācijas priekšrocība ir fakts, ka dažas datu bāzes tabulas varat glabāt atsevišķā atmiņas ierīcē. Tas var ievērojami uzlabot jūsu disku I/O slodzi.

Innodb_file_per_table pēc noklusējuma ir iespējots MySQL 5.6 un jaunākās versijās. To var redzēt failā /etc/my.cnf. Direktīva izskatās šādi:

innodb_file_per_table=1

2. Saglabājiet MySQL datu bāzes datus atsevišķā nodalījumā

Piezīme: Šī iestatīšana darbojas tikai ar MySQL, bet ne ar MariaDB.

Dažreiz OS lasīšana/rakstīšana var palēnināt MySQL servera darbību, īpaši, ja tas atrodas tajā pašā cietajā diskā. Tā vietā es ieteiktu MySQL pakalpojumam izmantot atsevišķu cieto disku (vēlams SSD).

Lai to pabeigtu, jums būs jāpievieno jaunais disks datoram/serverim. Šajā rakstā es pieņemu, ka disks būs zem/dev/sdb.

Nākamais solis ir jaunā diska sagatavošana:

# fdisk /dev/sdb

Tagad nospiediet “n”, lai izveidotu jaunu nodalījumu. Pēc tam nospiediet p, lai padarītu jauno nodalījumu primāru. Pēc tam iestatiet nodalījuma numuru no 1-4. Pēc tam jūs izvēlēsities nodalījuma lielumu. Nospiediet Enter šeit. Nākamajā solī jums būs jākonfigurē nodalījuma lielums.

Ja vēlaties izmantot visu disku, vēlreiz nospiediet taustiņu Enter. Pretējā gadījumā jūs varat manuāli iestatīt jaunā nodalījuma lielumu. Kad esat gatavs, nospiediet “w”, lai rakstītu izmaiņas. Tagad mums būs jāizveido failu sistēma jaunajam nodalījumam. To var viegli izdarīt ar:

# mkfs.ext4 /dev/sdb1

Tagad mēs uzstādīsim savu jauno nodalījumu mapē. Esmu nosaucis savu mapi “ssd” un izveidojis saknes direktorijā:

# mkdir /ssd/

Mēs esam gatavi instalēt jauno tikko izveidoto nodalījumu jaunajā mapē:

# mount /dev/sdb1  /ssd/

Montāžu var veikt startēšanas laikā, failā/etc/fstab pievienojot šādu rindu.

/dev/sdb1 /ssd ext3 defaults 0 0

Tagad jūs esat gatavs pārvietot MySQL uz jauno disku. Vispirms pārtrauciet MySQL pakalpojumu ar:

# service mysqld stop

Es ieteiktu arī apturēt Apache/nginx, lai novērstu jebkādus mēģinājumus rakstīt datubāzēs:

# service httpd stop
# service nginx stop

Tagad nokopējiet visu MySQL direktoriju jaunajā diskā:

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

Tas var aizņemt kādu laiku, atkarībā no jūsu MySQL datu bāzu vietnes. Kad šis process ir pabeigts, pārdēvējiet MySQL direktoriju:

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

Tālāk mēs izveidosim saiti.

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

Tagad esat gatavs sākt MySQL un tīmekļa pakalpojumu:

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

Šajā brīdī jūsu MySQL datu bāzēm varēs piekļūt no jaunā diska.