registracija-domene.info
  • Početna
  • Domene
  • .hr domene
  • Transfer domene
  • Hosting
  • SSL
  • Kontakt

Korisni linkovi

  • Nagradni bodovi za domene
  • Besplatan hosting za domenu
  • Transfer domene
  • Web jumbo plakat
  • IZHR - RENT-A-PORTAL
  • AKCIJA 1+1
    Super Brza Podrška

MySQL / MariaDB optimizacija — praktični vodič za produkcijske webove

  • DOMENE
  • Upute
  • MySQL / MariaDB optimizacija — praktični vodič za produkcijske webove

MySQL / MariaDB optimizacija — praktični vodič za produkcijske webove

Ova uputa pokriva praktičnu optimizaciju MySQL / MariaDB baze na produkcijskim webovima — konfiguraciju, indekse, upite i monitoring. Primjenjivo na cPanel / DirectAdmin okruženja, VPS i dedicirane servere s Craft CMS, Laravel ili WordPress aplikacijama.

1. Provjeri trenutno stanje prije bilo kakve promjene

Ništa ne mijenjaj prije nego snimiš baseline. Bez baselinea ne znaš je li promjena pomogla ili odmogla.

-- osnovni status
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Slow_queries';
SHOW GLOBAL STATUS LIKE 'Questions';
SHOW GLOBAL STATUS LIKE 'Uptime';

-- buffer pool hit ratio (InnoDB)
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read_requests';

Buffer pool hit ratio = 1 - (Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests). Cilj je >99%. Ispod 95% znači premali innodb_buffer_pool_size.

2. Ključne postavke u my.cnf

Lokacija: /etc/my.cnf ili /etc/mysql/mariadb.conf.d/50-server.cnf. Nakon izmjene restartaj servis: systemctl restart mariadb.

[mysqld]
# InnoDB — glavna pomoć za performanse
innodb_buffer_pool_size = 4G            # 50-70% RAM-a na dedicated MySQL
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2      # brže, uz mali rizik pri crashu
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1

# Konekcije
max_connections = 200
thread_cache_size = 32
table_open_cache = 4000

# Query cache (OBAVEZNO isključiti u MySQL 5.7+, MariaDB 10.3+)
query_cache_type = 0
query_cache_size = 0

# Slow query log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 0       # 1 samo privremeno, generira puno logova

3. Pronađi spore upite

Nakon što slow log radi 24-48h, analiziraj:

mysqldumpslow -s t -t 20 /var/log/mysql/slow.log

Ili čitljivije s alatom pt-query-digest (Percona Toolkit):

pt-query-digest /var/log/mysql/slow.log | less

Prvih 5 upita po ukupnom vremenu najčešće čini 80% problema.

4. Analiziraj upit pomoću EXPLAIN

EXPLAIN SELECT * FROM entries WHERE sectionId = 12 AND postDate < NOW();

Obrati pozornost na:

  • type: ALL znači full table scan — loše. Cilj je ref, range, const, eq_ref.
  • rows: procijenjeni broj redaka koje MySQL mora pročitati.
  • Extra: Using filesort i Using temporary su skupi — često se rješavaju indeksom koji poklapa ORDER BY / GROUP BY.

5. Indeksi — gdje i kakvi

  • Indeksiraj kolone u WHERE, JOIN, ORDER BY, GROUP BY.
  • Composite index: redoslijed kolona mora odgovarati upitu. (sectionId, postDate) radi za WHERE sectionId = ? AND postDate < ?, ali ne radi za samu postDate.
  • Izbjegavaj indekse na kolonama s niskom kardinalnošću (npr. boolean kolone same za sebe).
  • Previše indeksa usporava INSERT / UPDATE. Prati unused index-e:
SELECT * FROM sys.schema_unused_indexes;  -- MySQL 5.7+

6. Tipični antipatterni

  1. SELECT * u aplikacijskom kodu — uvijek vadi samo potrebne kolone.
  2. N+1 upiti — u ORM-u (Craft, Eloquent) koristi eager loading (with, .eagerly()).
  3. LIKE '%xxx' — leading wildcard onemogućuje indeks. Razmotri FULLTEXT ili ElasticSearch / MeiliSearch.
  4. ORDER BY RAND() na velikim tablicama — skupo. Zamijeni s random offsetom ili kešom.
  5. Implicitna konverzija tipova — WHERE user_id = '123' kada je kolona INT. Može onemogućiti indeks.

7. Konfiguracija za CMS-ove

Craft CMS

  • Aktiviraj template cache ({% cache %}) za dijelove koji se ne mijenjaju često.
  • Postavi CRAFT_RUN_QUEUE_AUTOMATICALLY=false u .env i pokreni queue kroz cron / supervisor da HTTP zahtjevi ne čekaju.
  • Garbage collection tablica (sessions, queue, revisions) — kroz php craft gc.

Laravel

  • Database-level query caching kroz ->remember() ili Redis (tagged cache).
  • config:cache, route:cache, view:cache u produkciji.
  • Octane ili FrankenPHP kad TTFB postane usko grlo.

WordPress / WooCommerce

  • Object cache (Redis ili Memcached) — najveća razlika.
  • Izbaci neiskorištene pluginove. Svaki dodaje upite u wp_options.
  • Autoload cleanup: SELECT option_name, LENGTH(option_value) FROM wp_options WHERE autoload='yes' ORDER BY 2 DESC LIMIT 20;

8. Održavanje

# analiziraj i optimiziraj tablice (jednom mjesečno)
mysqlcheck --all-databases --analyze
mysqlcheck --all-databases --optimize

# provjeri veličine tablica
SELECT table_name, 
       ROUND(data_length/1024/1024, 1) AS data_mb,
       ROUND(index_length/1024/1024, 1) AS idx_mb
FROM information_schema.tables
WHERE table_schema = DATABASE()
ORDER BY data_length DESC LIMIT 20;

9. Kada je došao trenutak za upgrade infrastrukture

Ako nakon svega iznad i dalje imaš probleme, usko grlo je negdje drugdje:

  • CPU stalno >70% — nedostaje jezgri, razmotri vertikalni upgrade ili razdvajanje web/db.
  • Buffer pool hit ratio <95% uz maksimalan RAM — vrijeme za veći server ili sharding.
  • Disk I/O wait >10% — NVMe upgrade ili odvajanje logova od data foldera.

10. Sigurnosne napomene

  • Nikad ne testiraj nove konfiguracije direktno na produkciji. Staging server s istim podacima je must.
  • Prije svake my.cnf promjene — kopija trenutne datoteke.
  • Kod dramatičnih promjena innodb_log_file_size — MySQL treba uredno zaustaviti prije restarta jer stare log datoteke moraju biti čiste.

Kad zapne ili nije jasno što mijenjati, javite se podršci — imamo access log, slow query log i monitoring podatke za svaki server kojeg hostamo i možemo konkretno pokazati gdje je problem.

  Kako spojiti Bolt.new s hostingom preko Git deploya
InnoDB vs MyISAM — koji storage engine koristiti u 2026.  
  Upute
Kategorije - Upute
  • Za nove korisnike (1)
  • Najčešća pitanja (122)
    • Domene (26)
    • Hosting (22)
    • SSL Certifikati (9)
    • Dedicirani serveri (6)
    • Izrada web stranica (7)
    • Izrada web trgovine (3)
    • SEO Marketing (11)
    • Web jumbo plakat (0)
    • Internet oglašavanje (9)
    • PDF dokementi na listanje (0)
    • IZHR - Najam portala (17)
    • Pitanja prije kupnje (0)
    • PDF dokumenti na listanje (11)
  • cPanel (40)
    • WebMail (4)
    • FTP (4)
    • PHP (1)
    • Restore / Backup (4)
      • JetBackup (3)
    • MySQL baze podataka (3)
  • CMS (6)
    • Wordpress (6)
    • Joomla (0)
    • Skripte i programi (0)
  • Korisničke stranice (7)
    • Nagradni bodovi (1)
  • Ostalo (6)
  • E-mail (19)
HOSTING AKCIJA 1+1

Možda će vas zanimati

Hosting
PHP
web hosting
kirurgija šake
domaće torte i kolači
Karlovac
kozmetika za muškarce
cvjetne dekoracije
Kategorije - Upute
  • Za nove korisnike (1)
  • Najčešća pitanja (122)
    • Domene (26)
    • Hosting (22)
    • SSL Certifikati (9)
    • Dedicirani serveri (6)
    • Izrada web stranica (7)
    • Izrada web trgovine (3)
    • SEO Marketing (11)
    • Web jumbo plakat (0)
    • Internet oglašavanje (9)
    • PDF dokementi na listanje (0)
    • IZHR - Najam portala (17)
    • Pitanja prije kupnje (0)
    • PDF dokumenti na listanje (11)
  • cPanel (40)
    • WebMail (4)
    • FTP (4)
    • PHP (1)
    • Restore / Backup (4)
      • JetBackup (3)
    • MySQL baze podataka (3)
  • CMS (6)
    • Wordpress (6)
    • Joomla (0)
    • Skripte i programi (0)
  • Korisničke stranice (7)
    • Nagradni bodovi (1)
  • Ostalo (6)
  • E-mail (19)
HOSTING AKCIJA 1+1
CMS izradite sami web stranicu
400+ web skripti na klik
CMS, Shop, Blog... automatska instalacija na 1 klik

Probni period
7 dana

Domena aktivna
za 5 minuta

MySQL / MariaDB optimizacija — praktični vodič za produkcijske webove

  • DOMENE
  • Upute
  • MySQL / MariaDB optimizacija — praktični vodič za produkcijske webove
registracija-domene.info


Misija nam je olakšati život 
web programerima, malim i velikim tvrtkama. 
Svoje usluge pružamo na vrhunskoj tehnologiji 
i imamo 24/7/365 WMD - Super brzu podršku.

 

Domene

Registracija domene

Registracija besplatne .hr domene

Transfer domene

Pitanja i odgovori

Provjera domene

Cijene / Cjenik domena

Hosting

Hosting Akcija

Wordpress Hosting

CRAFTCMS Hosting

Samostalna izrada web stranica

Linux / cPanel hosting

Cijena / Cjenik hostinga

Hosting Akcija 1+1

Serveri

Dedicirani serveri

Reseller hosting serveri

Mail serveri

Cloudbox - Mrežni disk

Cijena / Cjenik servera

Serveri u Hrvatskoj / EU

SSL certifikati

SSL certifikati

SSL - Pitanja i odgovori

Cijene / Cjenik - SSL certifikata

registracija-domene.info
Usluge

Izrada CMS web stranica

Izrada web trgovine

SEO Marketing

PR OBJAVE na 130+ portala

Dnevni tisak - Online platforma

Online PDF dokumenti na listanje

Web jumbo plakat

IZHR - RENT-A-PORTAL

Korisnička podrška

WMD - Super brza podrška

Baza znanja

Najčešća pitanja

Pomoć E-mail

Računi PDF orginal

Info o uslugama

Korisni linkovi

Nagradni bodovi

Poklon bon

Besplatan hosting

Reference

Korisnici o nama

Pravne informacije

Uvijeti korištenja usluga

Podaci za plaćanje

GDPR

Report Abuse

20.04.2026 © WMD Hosting - All Rights Reserved

Izrada web stranica | CMS | Hosting AKCIJA 1+1 | SEO