---
title: 'Kā konfigurēt un optimizēt MySQL serveri VPS. | Zomro'
description: 'MySQL servera optimizācija ļauj efektīvi izmantot resursus un uzlabot atbildes laiku pie pieprasījumiem.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/25/screenshot_1_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/lv/)
  * [FAQ](https://zomro.com/lv/blog/faq/)
  * Kā konfigurēt un optimizēt MySQL serveri VPS. 



# Kā konfigurēt un optimizēt MySQL serveri VPS.

25-11-2024

Viena no visizplatītākajām un populārākajām relāciju datubāzēm ir MySQL. Tīmekļa lietojumprogrammas un pakalpojumi bieži tiek veidoti uz šīs datubāzes pamata. Tomēr, lai nodrošinātu stabilu darbību un augstu veiktspēju, ir nepieciešama pareiza MySQL konfigurācija, īpaši, ja to palaiž uz VPS. MySQL servera optimizācija ļauj efektīvi izmantot resursus un uzlabot atbildes laiku pie pieprasījumiem, kas ir īpaši svarīgi augstas slodzes lietojumprogrammām.

## **MySQL: instalācija uz VPS**

MySQL instalācija jūsu serverī ir nepieciešama pirms optimizācijas uzsākšanas. Lai saprastu, kā to izdarīt, sniegsim jums soli pa solim instrukciju šim procesam divām operētājsistēmām. 

**Instalācijas process Ubuntu/Debian**

  1. Instalējiet jaunāko pakotņu pārvaldnieka versiju:  
sudo apt update




2\. Veiciet MySQL instalāciju:  
sudo apt install mysql-server

  
![Kā konfigurēt un optimizēt MySQL serveri VPS. - 1](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/25/screenshot_1_q50.jpg)

3\. Nākamais solis ir MySQL iedarbināšana, pēc kuras jāiestata automātiska palaišana, kad jūsu operētājsistēma tiek ielādēta:  
sudo systemctl start mysql  
sudo systemctl enable mysql

![Kā konfigurēt un optimizēt MySQL serveri VPS. - 2](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/25/screenshot_2_q50.jpg)

## **Instalācijas process CentOS/RHEL**

  1. Nepieciešams instalēt MySQL no repozitorija:  
sudo yum install mysql-server

  2. Tālāk nepieciešams iedarbināt MySQL un iestatīt automātisko palaišanu:  
sudo systemctl start mysqld  
sudo systemctl enable mysqld

  3. Palaidiet sākotnējo konfigurāciju, lai uzlabotu drošību:  
sudo mysql_secure_installation




### MySQL: optimizācijas process

Lai uzlabotu veiktspēju, ir jāveic MySQL konfigurācijas izmaiņas pēc instalācijas procesa pabeigšanas. Optimizācija ietver vairākus virzienus: kešatmiņu, indeksēšanu un konfigurācijas iestatījumus.

1\. Kešatmiņas iestatījumi

Kešatmiņa MySQL ļauj saglabāt datus, kas bieži tiek pieprasīti, tādējādi samazinot slodzi uz datubāzi un paātrinot atbildes laiku. Tālāk sniegsim sarakstu ar galvenajiem parametriem kešatmiņas iestatīšanai:

  * query_cache_size — pieprasījumu kešatmiņas apjoms. Lielāks apjoms uzlabo veiktspēju.

  * query_cache_limit — ierobežojums kešojamā rezultāta izmēram.

  * innodb_buffer_pool_size — galvenais parametrs InnoDB, kas nosaka atmiņas daudzumu, kas paredzēta datu un indeksu glabāšanai kešatmiņā.




Kešatmiņas konfigurēšanas brīdī izmaiņas visbiežāk tiek veiktas failā my.cnf, kas atrodas direktorijā /etc/mysql/ vai /etc/ lielākajā daļā Linux serveru.

Šeit ir detalizēta rokasgrāmata kešatmiņas parametru piemērošanai:

**1\. solis: Atveriet MySQL konfigurācijas failu**

Atveriet failu my.cnf rediģēšanai. Atkarībā no sistēmas var būt nepieciešams izpildīt komandu administratora vārdā:

sudo nano /etc/mysql/my.cnf

**2\. solis: Atrodiet sadaļu [mysqld]**

Lai kešatmiņas parametri darbotos MySQL serverī, tie jāiekļauj sadaļā [mysqld].

**3\. solis: Ievadiet kešatmiņas parametrus**

Kopējiet zemāk norādītās konfigurācijas un piemērojiet tās dokumentā my.cnf sadaļā [mysqld]:

[mysqld]

query_cache_type = 1  # Pieprasījumu kešatmiņas aktivizēšana

query_cache_size = 64M  # Kešatmiņas apjoma noteikšana 

query_cache_limit = 1M # Maksimālais rezultāta apjoms pieprasījumam kešatmiņā

table_open_cache = 2000  # Kopējais tabulu skaits, kas tiek glabātas kešatmiņā

thread_cache_size = 50 # Kešā var glabāties pavedienu skaits

  
![Kā konfigurēt un optimizēt MySQL serveri VPS. - 3](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/25/screenshot_3_q50.jpg)

**Pievērsiet uzmanību:** Iestatītās vērtības, piemēram, 64M query_cache_size, var mainīt atbilstoši jūsu vajadzībām.

**4\. solis: Pārstartējiet MySQL, lai izmaiņas stātos spēkā**

Pēc rediģēšanas saglabājiet failu un iziet no redaktora. Lai to izdarītu, jāveic MySQL pārstartēšana, izmantojot komandu:

sudo systemctl restart mysql

  
![Kā konfigurēt un optimizēt MySQL serveri VPS. - 4](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/25/screenshot_4_q50.jpg)

Kešatmiņas iestatījumu pārbaude

Lai pārbaudītu, vai izmaiņas ir stājušās spēkā, jāizpilda komanda:

SHOW VARIABLES LIKE 'query_cache%';

SHOW VARIABLES LIKE 'table_open_cache';

SHOW VARIABLES LIKE 'thread_cache_size';

Šīs komandas parādīs pašreizējo parametru stāvokli, ļaujot pārbaudīt to pareizību un, ja nepieciešams, precizēt iestatījumus.

2\. Tabulu indeksēšana

Indeksēšana MySQL — tas ir veids, kā uzlabot veiktspēju, kas ļauj optimizēt meklēšanu un informācijas iegūšanu no datubāzes. Indeksi tiek izveidoti tabulu kolonnām un palīdz MySQL serverim ātrāk atrast rindas, kas atbilst pieprasījuma nosacījumiem, samazinot pārskatāmo rindu skaitu. Līdzīgi kā grāmatas satura rādītājs, indekss norāda, kur var atrast nepieciešamos datus, neizskatot visu informācijas masīvu.

**Kāpēc nepieciešama indeksēšana?**

  1. **Pieprasījumu paātrināšana** : indeksi nodrošina ātrāku informācijas atklāšanu un iegūšanu no MySQL servera, kas būtiski palielina pieprasījumu apstrādes efektivitāti.

  2. **Slodzes samazināšana uz serveri** : ievades-izvades skaits, pateicoties indeksēšanai, kļūst mazāks, atvieglojot pieprasījumu apstrādi un tādējādi samazinot servera slodzi.

  3. **Savienojumu (JOIN) operāciju optimizācija** : indeksi palīdz ātrāk atrast un salīdzināt rindas, apvienojot vairākas tabulas.

  4. **Sakārtošanas un grupēšanas uzlabošana** : izmantojot indeksus, MySQL var ātrāk veikt ORDER BY un GROUP BY operācijas.




**Kad un kādus indeksus izmantot?**

  * **Pamatslēga (PRIMARY KEY)** : tiek izveidota unikālam katras ieraksta identifikatoram (piemēram, lietotāja identifikators). MySQL automātiski izveido indeksu pamatslēgai.

  * **Unikālie indeksi (UNIQUE)** : tiek izmantoti laukiem, kuru vērtībām jābūt unikālām (piemēram, e-pasts).

  * **Parastie indeksi (INDEX)** : noderīgi kolonnām, kas bieži tiek izmantotas WHERE meklēšanas nosacījumos vai JOIN savienojumos.

  * **Kompozītmateriālu indeksi** : indeksē vairākas kolonnas, kas ir ērti, lai optimizētu sarežģītus pieprasījumus ar vairākiem nosacījumiem.




**Indeksēšanas piemēri**

Apskatīsim dažus reālus gadījumus, kur tiek izmantoti indeksi.

**1\. Indeksēšana kolonnai ar biežiem pieprasījumiem**

Pieņemsim, ka mums ir tabula orders, kas satur kolonnas id, customer_id un status. Ja pieprasījumi bieži izvēlas pasūtījumus pēc status, tad, lai būtiski paātrinātu šādu pieprasījumu izpildi, jums ir jāizveido indekss kolonnai status.

CREATE INDEX idx_status ON orders(status);

Pēc pieprasījuma izpildes:

SELECT * FROM orders WHERE status = 'completed';

MySQL izmantos indeksu, lai ātri atrastu rindas ar status = 'completed', neapskatot visas tabulas rindas.

**2\. Unikālie indeksi datu ierobežošanai**

Ja mēs vēlamies ierobežot dublēšanos e-pasta laukā tabulā users, varam izveidot unikālu indeksu:

CREATE UNIQUE INDEX idx_email ON users(email);

Tagad mēģinājums ievietot atkārtotu e-pastu izraisīs kļūdu, jo unikālais indekss aizliedz dublikātus.

**3\. Indeksi sarežģītiem pieprasījumiem, kas sastāv no vairākiem komponentiem**

Kad mums ir pieprasījumi, kas bieži izvēlas datus pēc vairākiem laukiem, piemēram, pēc firstname un lastname tabulā employees, tad varam izveidot kompozītmateriālu indeksu:

CREATE INDEX idx_name ON employees(firstname, lastname);

Tagad, izpildot komandu:

SELECT * FROM employees WHERE firstname = 'John' AND lastname = 'Doe';

Izvēle tiks veikta ātrāk, jo MySQL izmantos kompozītmateriālu indeksu un vairs nav nepieciešams pārbaudīt visus ierakstus.

**Indeksi: uzturēšana un aktualizācija**

Jāatceras, ka galvenā rekomendācija ir tāda, ka ir lietderīgi veikt indeksēšanu tikai kolonnām, kas bieži piedalās pieprasījumos, kā arī laiku pa laikam pārskatīt to aktualitāti. Galu galā indeksi aktīvi izmanto diska vietu, būtiski palēnina atjaunināšanas, dzēšanas ierakstu un ievietošanas procesu. Iemesls tam ir nepieciešamība pārrēķināt pie katras datu izmaiņas.

**Indeksi: piemērs monitorēšanai**

Jūs varat izmantot sekojošo komandu, lai apskatītu indeksus:

SHOW INDEX FROM orders;

Tas sniedz mums informāciju par to, kādi indeksi ir izveidoti, to veidu un uz kādām kolonnām tie attiecas.

3\. Savienojumu parametru iestatīšana

Parametri, kas atbild par vienlaicīgu savienojumu skaitu, ļauj elastīgi pārvaldīt slodzi uz serveri. Galvenie parametri:

  * max_connections — maksimālais savienojumu skaits.

  * wait_timeout — gaidīšanas laiks neaktīviem savienojumiem.




[mysqld]

max_connections = 200

wait_timeout = 600

MySQL atbalsts un monitorings

Lai uzturētu MySQL veiktspēju, ir svarīgi sekot tā stāvoklim un periodiski veikt optimizāciju. Izmantojiet šādus pieejas veidus:

  * MySQL procesu monitorings: lai novērotu izpildāmās komandas, varat izmantot komandas SHOW PROCESSLIST vai specializētas utilītas.




Regulāri veiciet tabulu optimizācijas procesu, izmantojot atbilstošo komandu:  
OPTIMIZE TABLE table_name;

  * Monitoringa automatizācija: Iestatiet monitoringu, izmantojot tādus rīkus kā MySQL Workbench, Percona Monitoring and Management vai Grafana, lai pastāvīgi uzraudzītu veiktspēju.




Secinājums

MySQL konfigurācija un optimizācija uz [VPS](https://zomro.com/lv/vps) palīdz uzlabot lietojumprogrammu efektivitāti un stabilitāti. Izmantojot aprakstītās metodes, jūs varat uzlabot datu apstrādes ātrumu, samazināt aiztures un palielināt MySQL servera uzticamību. Regulāra iestatījumu atjaunināšana un monitorings palīdz saglabāt augstu veiktspēju ilgtermiņā.

Indeksēšana — svarīga tehnika MySQL veiktspējas optimizācijai. Tā iegūst īpašu efektivitāti, strādājot ar pieprasījumiem, kas satur filtrēšanu un sakārtošanu, kā arī ar lielām tabulām. Pareizi piemērojot indeksus, ievērojami uzlabojas datubāzes darbības ātrums. Tomēr ir svarīgi atcerēties par piesardzīgu to pielietošanu, koncentrējoties uz patiešām svarīgām kolonnām, kas nepieciešamas meklēšanas, sakārtošanas vai apvienošanas nosacījumu izpildei.

Līdzīgie raksti

[Kā pievienot domēnu DNS mitināšanai](https://zomro.com/lv/blog/faq/87-kak-dobavit-domen-v-dns-hosting) [Prioritātes maiņa no IPv6 uz IPv4 Ubuntu un CentOS: Pilnīga rokasgrāmata](https://zomro.com/lv/blog/faq/471-changing-priority-from-ipv6-to-ipv4-in-ubuntu-and-centos-a-complete-guide) [Kā pieslēgties serverim izmantojot FTP, SFTP un SCP](https://zomro.com/lv/blog/faq/144-kak-podkljuchitsja-k-serveru-po-ftp-sftp-i-scp) [Kā atspējot Aizsargu (Microsoft Defender) Windows 2016 un 2019.](https://zomro.com/lv/blog/faq/347-how-to-activate-microsoft-defender-in-windows-2016-and-2019) [Piekļuve FTP mapēi vietnē serverī ar Hestia paneli](https://zomro.com/lv/blog/faq/224-dostup-po-ftp-k-papke-sajta-na-servere-s-panelju-hestia)

[ Dedikētie serveri no €88.80/mēn. ](/lv/dedicated-servers)
