Top 50 MySQL Pitanja i odgovori za intervju (2026.)

Priprema za MySQL Intervju? Vrijeme je da izoลกtrite svoje razumijevanje onoga ลกto je zaista vaลพno. Ova pitanja ne samo da testiraju vaลกe znanje, veฤ‡ otkrivaju i vaลกu analitiฤku dubinu, tehniฤki naฤin razmiลกljanja i vjeลกtine rjeลกavanja problema iz stvarnog svijeta.

MySQL Pitanja za intervju otvaraju vrata raznolikim moguฤ‡nostima na razliฤitim pozicijama za struฤnjake prve, srednje i viลกe razine. Pomaลพu u procjeni tehniฤke struฤnosti, struฤnosti u domeni i analitiฤkih vjeลกtina, a istovremeno odraลพavaju profesionalno iskustvo steฤeno radom u tom podruฤju. Od osnovnih do naprednih, ova pitanja i odgovori pomaลพu kandidatima da pokaลพu stvarno, osnovno tehniฤko iskustvo.

Na temelju uvida viลกe od 65 tehniฤkih lidera, viลกe od 80 menadลพera i 100 struฤnjaka iz razliฤitih industrija, sastavili smo pouzdane MySQL smjernice za intervjue koje obuhvaฤ‡aju stvarne prijave, perspektive zapoลกljavanja i razvoj tehniฤkih mjerila.

MySQL Intervjuirajte pitanja i odgovore

vrh MySQL Intervjuirajte pitanja i odgovore

1) ล to je MySQL, i zaลกto se tako ลกiroko koristi u upravljanju bazama podataka?

MySQL je relacijski sustav za upravljanje bazama podataka (RDBMS) otvorenog koda koji pohranjuje podatke u tablice sastavljene od redaka i stupaca. Izgraฤ‘en je na strukturiranom jeziku za upite (SQL), koji omoguฤ‡uje programerima uฤinkovito definiranje, manipuliranje i ispitivanje podataka. MySQL dio je LAMP paketa (Linux, Apache, MySQL, PHP/Python), ลกto ga ฤini temeljem razvoja web aplikacija.

Kljuฤne prednosti:

  • Visoke performanse zahvaljujuฤ‡i optimiziranim mehanizmima za pohranu (InnoDB, MyISAM).
  • Licenciranje otvorenog koda s komercijalnom podrลกkom od Oracle.
  • Snaลพna podrลกka zajednice i kompatibilnost na viลกe platformi.

Primjer: Web stranice poput Facebooka, YouTubei Twitter su koristili MySQL kao dio svojih osnovnih sustava baza podataka zbog svoje skalabilnosti i isplativosti.

๐Ÿ‘‰ Besplatno preuzimanje PDF-a: MySQL Pitanja i odgovori za intervju


2) Kako se MySQL razlikuju se od SQL-a i koje su njihove odgovarajuฤ‡e uloge?

SQL je jezik, dok MySQL je softverski sustav koji implementira ovaj jezik. SQL definira kako komunicirati s bazama podataka, dok MySQL pruลพa fiziฤku i logiฤku arhitekturu za pohranu, upite i upravljanje podacima.

Faktor SQL MySQL
Definicija Jezik za upravljanje relacijskim bazama podataka RDBMS koriลกtenjem SQL sintakse
funkcija Koristi se za upite i manipuliranje podacima Izvrลกava SQL upite unutar mehanizma baze podataka
Primjer SELECT * FROM employees; Izvrลกava upit putem MySQL server
Svojina Otvoreni standard (ISO/ANSI) Razvio i odrลพava Oracle

U saลพetku: SQL pruลพa โ€žgramatikuโ€œ; MySQL pruลพa โ€žmotorโ€œ koji ga razumije i izvrลกava.


3) Objasnite razliku izmeฤ‘u tipova podataka CHAR i VARCHAR s primjerima.

Oboje TENK i VARCHAR pohranjuju nizovne vrijednosti, ali se njihovo ponaลกanje pri pohranjivanju razlikuje.

TENK je tip fiksne duljine, ลกto znaฤi da uvijek rezervira odreฤ‘eni broj znakova, a kraฤ‡e vrijednosti popunjava razmacima. VARCHAR, meฤ‘utim, je promjenjive duljine i koristi samo prostor ekvivalentan stvarnoj duljini niza.

Svojstvo TENK VARCHAR
Duลพina fiksni Varijabla
Brzina Brลพe za podatke fiksne veliฤine Uฤinkovitije za podatke promjenjive veliฤine
ฤŒuvanje Koristi definiranu duljinu Koristi stvarne podatke + 1 bajt
Primjer CHAR(10) pohranjuje "Pozdrav" kao "Pozdrav" VARCHAR(10) pohranjuje "Pozdrav" kao "Pozdrav"

Primjer: Ako definirate CHAR(5) i umetnite 'SQL', MySQL pohranjuje ga kao 'SQLโฃ โฃ'. Nasuprot tome, VARCHAR(5) pohranit ฤ‡e samo 'SQL'.


4) Kako se MySQL rukovati razliฤitim mehanizmima za pohranu i koje su njihove kljuฤne karakteristike?

MySQL podrลพava viลกestruko motori za skladiลกtenje, svaki optimiziran za specifiฤne sluฤajeve upotrebe. Mehanizam za pohranu odreฤ‘uje kako se podaci pohranjuju, indeksiraju i zakljuฤavaju unutar tablice.

Motor Karakteristike Koristite sluฤaj
InnoDB Podrลพava transakcije, strane kljuฤeve i zakljuฤavanje na razini redova OLTP sustavi, visoki integritet
MojISAM Velika brzina ฤitanja, zakljuฤavanje na razini tablice, bez podrลกke za transakcije Sustavi koji zahtijevaju puno ฤitanja
MEMORY Podaci pohranjeni u RAM-u za brzi pristup Privremena pohrana podataka
ARHIVA Komprimirana pohrana, pristup samo za ฤitanje Arhiviranje povijesnih podataka
FEDERATIVNI Pristupa podacima s udaljenih posluลพitelja Distribuirani sustavi baza podataka

Primjer: InnoDB se preferira za baze podataka za e-trgovinu gdje je sigurnost transakcija kljuฤna, dok MyISAM odgovara analitici gdje dominira brzina ฤitanja.


5) Koje su razliฤite vrste odnosa u MySQL, i kako se provode?

MySQL podrลพava tri osnovne vrste odnosa za predstavljanje asocijacija izmeฤ‘u tablica:

Tip Description Primjer
Jedan na jedan Svaki zapis u Tablici A odnosi se na toฤno jedan zapis u Tablici B A user ima jedan profile
Jedan-na-mnogo Jedan zapis u tablici A preslikava se na mnoge u tablici B A customer ima viลกe orders
Mnogi-na-mnoge Viลกe zapisa u Tablici A odnosi se na viลกe zapisa u Tablici B A student upisuje se u mnoge courses

provedba: Odnosi viลกe-prema-viลกe obiฤno se implementiraju pomoฤ‡u spojni stol (Npr student_course) koji sadrลพi strane kljuฤeve koji referenciraju oba entiteta.


6) ล to je normalizacija u MySQL, i koje su njegove razliฤite vrste?

Normalizacija je proces organiziranja podataka radi smanjenja redundancije i poboljลกanja integriteta podataka. Dijeli velike tablice na manje, povezane tablice i uspostavlja odnose pomoฤ‡u stranih kljuฤeva.

Normalna forma Description Kljuฤno pravilo
1NF Uklanja ponavljajuฤ‡e grupe Svaka ฤ‡elija sadrลพi atomske vrijednosti
2NF Uklanja djelomiฤne ovisnosti Svaki stupac ovisi o cijelom primarnom kljuฤu
3NF Uklanja tranzitivne ovisnosti Nekljuฤni stupci ovise samo o primarnom kljuฤu

Primjer: Jedan sam students stol sa student_name, course1, course2 treba podijeliti u dvije tablice - students i courses - povezani stranim kljuฤem.


7) Objasnite razliku izmeฤ‘u naredbi DELETE, TRUNCATE i DROP.

Sve tri naredbe uklanjaju podatke, ali se razlikuju po opsegu i ponaลกanju.

naredba funkcija povrat na staro Brzina Djelokrug
DELETE Uklanja odreฤ‘ene retke Da (ako je unutar transakcije) Umjereno Samo podaci
SKRATITI Brzo briลกe sve retke Ne pompeznost Samo podaci
KAP Uklanja strukturu i podatke tablice Ne najbrลพe Tablica i shema

Primjer:

DELETE FROM employees WHERE id=5; uklanja jedan redak.

TRUNCATE TABLE employees; briลกe sve retke, ali zadrลพava strukturu.

DROP TABLE employees; briลกe cijelu definiciju tablice.


8) Kako se koriste JOIN-ovi u MySQL, i koje su njihove razliฤite vrste?

A PRIDRUลฝITE kombinira podatke iz viลกe tablica na temelju povezanih stupaca. Omoguฤ‡uje dohvaฤ‡anje sveobuhvatnih, relacijskih podataka iz normaliziranih struktura.

Tip Description Primjer
INNER JOIN Vraฤ‡a zapise s odgovarajuฤ‡im vrijednostima u obje tablice Zaposlenici s odjelima
LEFT JOIN Vraฤ‡a sve zapise iz lijeve tablice, ฤak i bez podudaranja Svi zaposlenici, ฤak i oni koji nisu rasporeฤ‘eni
PRAVO SE PRIDRUลฝI Vraฤ‡a sve iz desne tablice Svi odjeli, ฤak i ako su prazni
CROSS PRIDRUลฝITE se Vraฤ‡a Kartezijev produkt Sve moguฤ‡e kombinacije

Primjer:

SELECT e.name, d.department_name 
FROM employees e 
INNER JOIN departments d ON e.dept_id = d.id;

9) Kako AUTO_INCREMENT funkcionira u MySQL, i moลพe li poฤeti od prilagoฤ‘ene vrijednosti?

The AUTO_INCREMENT Atribut automatski generira jedinstvenu numeriฤku vrijednost za svaki novi redak u tablici. Obiฤno se koristi za stupce primarnog kljuฤa.

Primjer sintakse:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50)
);

Za poฤetak od prilagoฤ‘ene vrijednosti:

ALTER TABLE users AUTO_INCREMENT = 1000;

Prednosti:

  • Osigurava jedinstvenost bez ruฤnog unosa.
  • Sprjeฤava dupliciranje kljuฤeva kod istovremenih umetanja.

Biljeลกka: Nakon ลกto se zapis izbriลกe, MySQL ne koristi ponovno svoje AUTO_INCREMENT vrijednost prema zadanim postavkama.


10) Koja je svrha Views u MySQL, i koje su njihove prednosti i ograniฤenja?

A Pogled je virtualna tablica stvorena iz skupa rezultata upita. Pojednostavljuje sloลพene upite enkapsulirajuฤ‡i ih kao logiฤke tablice za viลกekratnu upotrebu.

Prednosti:

  • Pojednostavljuje pristup podacima skrivanjem sloลพenih spojeva.
  • Poboljลกava sigurnost otkrivanjem samo potrebnih stupaca.
  • Smanjuje redundanciju ponovnom upotrebom unaprijed definirane logike.

Ograniฤenja:

  • Ne moลพe se uvijek izravno aลพurirati.
  • Ne pohranjuje podatke fiziฤki, ลกto moลพe utjecati na performanse kod teลกkih spajanja.

Primjer:

CREATE VIEW active_users AS
SELECT name, email FROM users WHERE status='active';

11) Kako indeksiranje poboljลกava performanse u MySQL, a koje su razliฤite vrste indeksa?

Indeksi u MySQL djeluju kao tablice pretraลพivanja koje ubrzavaju operacije dohvaฤ‡anja podataka u tablici baze podataka. Funkcioniraju poput indeksa u knjizi, helpping MySQL locirati odreฤ‘ene retke bez skeniranja cijelog skupa podataka.

Tip Description Primjer upotrebe
Primarni indeks Automatski kreirano na stupcu primarnog kljuฤa Jedinstveno identificira retke
Jedinstveni indeks Sprjeฤava dupliciranje vrijednosti Email adrese
Kompozitni indeks Viลกestupฤani indeks za kombinirano filtriranje (ime_, prezime_)
Puni tekstualni indeks Koristi se za pretraลพivanje teksta Traลพilice ฤlanaka
Prostorni indeks Obraฤ‘uje geografske ili prostorne podatke Kartaping i GIS aplikacije

Primjer:

CREATE INDEX idx_customer_name ON customers(name);

Savjet: Prekomjerno indeksiranje moลพe usporiti operacije pisanja, stoga je ravnoteลพa izmeฤ‘u brzine i uฤinkovitosti pohrane kljuฤna.


12) ล to su okidaฤi u MySQL, i kako rade?

A Okidaฤ je skup instrukcija koje se automatski izvrลกavaju kao odgovor na odreฤ‘ene dogaฤ‘aje u bazi podataka, kao ลกto su INSERT, UPDATE, ili DELETEOni osiguravaju konzistentnost podataka i provode poslovnu logiku na razini baze podataka.

Vrsta okidaฤa Vrijeme izvrลกenja
PRIJE UMETANJA/AลฝURIRANJA/BRISANJA Izvrลกava se prije modifikacije
NAKON UMETANJA/AลฝURIRANJA/BRISANJA Izvrลกava se nakon modifikacije

Primjer:

CREATE TRIGGER update_timestamp
BEFORE UPDATE ON employees
FOR EACH ROW
SET NEW.modified_at = NOW();

Prednosti:

  • Automatizira rutinske zadatke s podacima.
  • Provodi pravila integriteta podataka.
  • Smanjuje potrebu za logikom na razini aplikacije.

Nedostaci:

  • Sloลพeno otklanjanje pogreลกaka.
  • Moลพe utjecati na performanse ako se nepravilno koristi.

13) Objasnite uobiฤajene tabliฤne izraze (CTE) u MySQL i njihove koristi.

A Zajedniฤki tabliฤni izraz (CTE) je privremeni skup rezultata definiran unutar opsega izvrลกavanja jedne SQL naredbe. Uvedeno u MySQL 8.0, pojednostavljuje sloลพene upite i podrลพava rekurziju.

Primjer sintakse:

WITH employee_cte AS (
  SELECT id, name, manager_id FROM employees
)
SELECT * FROM employee_cte WHERE manager_id IS NULL;

Prednosti:

  • Poveฤ‡ava ฤitljivost upita.
  • Omoguฤ‡uje rekurzivne upite (npr. hijerarhijski podaci).
  • Smanjuje ponavljanje podupita.

Primjer rekurzivnog CTE-a:

WITH RECURSIVE hierarchy AS (
  SELECT id, name, manager_id FROM employees WHERE manager_id IS NULL
  UNION ALL
  SELECT e.id, e.name, e.manager_id FROM employees e
  INNER JOIN hierarchy h ON e.manager_id = h.id
)
SELECT * FROM hierarchy;

14) ล to su transakcije u MySQLi kako osiguravaju integritet podataka?

A transakcija je niz operacija koje se izvode kao jedna logiฤka jedinica rada. Transakcije slijede ACID principi โ€” Atompouzdanost, konzistentnost, izolacija i trajnost โ€” osiguravanje pouzdanosti podataka.

Svojstvo Description
Atomledenost Sve operacije uspijevaju ili ne uspijevaju zajedno
Dosljednost Odrลพava ograniฤenja integriteta baze podataka
Izolacija Transakcije se ne mijeลกaju jedna s drugom
Trajnost Promjene ostaju i nakon potvrde (commita)

Primjer:

START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id=1;
UPDATE accounts SET balance = balance + 100 WHERE id=2;
COMMIT;

Sluฤaj upotrebe: Bankovni transferi sredstava, gdje djelomiฤna aลพuriranja mogu uzrokovati gubitak podataka, zahtijevaju sigurnost transakcija.


15) Koje su prednosti i nedostaci MySQL replikacija?

MySQL Replikacija ukljuฤuje kopiranje podataka s jednog posluลพitelja baze podataka (primarnog) na drugi (replika). Poboljลกava performanse i toleranciju greลกaka.

Prednosti Nedostaci
Balansiranje optereฤ‡enja izmeฤ‘u posluลพitelja Poveฤ‡ana sloลพenost odrลพavanja
Moguฤ‡nosti sigurnosnog kopiranja i oporavka Malo kaลกnjenje u sinkronizaciji podataka
Visoka dostupnost za ฤitanje Rizik od nekonzistentnosti podataka u asinkronom naฤinu rada

Primjer postavljanja:

CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replica', MASTER_PASSWORD='password';
START SLAVE;

Replikacija je bitna u distribuiranim arhitekturama, posebno za velike web aplikacije koje zahtijevaju 24/7 dostupnost.


16) Kako se MySQL obraฤ‘uje JSON podatke i koje su njegove prednosti?

MySQL podrลพava JSON tip podataka (od verzije 5.7) za pohranjivanje polustrukturiranih podataka izravno unutar relacijskih tablica. Omoguฤ‡uje fleksibilnost bez ugroลพavanja relacijskog integriteta.

Primjer:

CREATE TABLE products (
  id INT AUTO_INCREMENT PRIMARY KEY,
  attributes JSON
);
INSERT INTO products (attributes) VALUES ('{"color": "red", "size": "M"}');

Prednosti:

  • Idealno za scenarije dinamiฤkih shema.
  • Omoguฤ‡uje hibridne relacijske i NoSQL pristupe.
  • Nudi ugraฤ‘ene funkcije poput JSON_EXTRACT() i JSON_ARRAY().

Primjer upita:

SELECT JSON_EXTRACT(attributes, '$.color') AS color FROM products;

17) ล to su Views (Prikazi) u odnosu na Materialized Views (Materializirane Prikaze) i po ฤemu se razlikuju?

A Pogled je logiฤki prikaz rezultata upita, dok je Materijalizirani pogled fiziฤki pohranjuje izlaz upita radi brลพeg dohvaฤ‡anja (nije izvorno podrลพano u MySQL ali oponaลกljivo).

Aspekt Pogled Materijalizirani pogled
ฤŒuvanje Virtualno (bez pohranjenih podataka) Fiziฤko (pohranjuje snimku podataka)
Izvoฤ‘enje Ovisi o izvrลกenju upita Brลพe za ponovljena ฤitanja
odrลพavanje Uvijek aktualan Zahtijeva ruฤno osvjeลพavanje
Koristite sluฤaj Pojednostavite sloลพene spojeve Ubrzajte analitiฤke upite

Primjer:

CREATE VIEW high_value_orders AS 
SELECT * FROM orders WHERE total > 1000;

Zaobilazno rjeลกenje za materijalizirani prikaz: Izradite tablicu i osvjeลพite je pomoฤ‡u zakazanog dogaฤ‘aja.


18) Objasnite razliku izmeฤ‘u INNER JOIN-a i LEFT JOIN-a s primjerima.

svojstvo INNER JOIN LEFT JOIN
Proizlaziti Vraฤ‡a samo odgovarajuฤ‡e retke Vraฤ‡a sve retke iz lijeve tablice
Rukovanje nultom Iskljuฤuje neusklaฤ‘ene retke Ukljuฤuje NULL za neusklaฤ‘ene vrijednosti s desne strane
Izvoฤ‘enje Opฤ‡enito brลพe Neลกto sporije zbog NULL popunjavanja

Primjer:

SELECT e.name, d.department_name
FROM employees e
INNER JOIN departments d ON e.dept_id = d.id;

i

SELECT e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.dept_id = d.id;

Prvi upit dohvaฤ‡a samo zaposlenike dodijeljene odjelima, dok drugi ukljuฤuje sve zaposlenike, ฤak i one bez odjela.


19) Kako optimizirate performanse upita u MySQL?

Optimizacija upita ukljuฤuje kombinaciju dizajna sheme, strategije indeksiranja i analize plana izvrลกenja.

Kljuฤni faktori optimizacije:

  1. Koristite EXPLAIN plan โ€“ Analizirati putove izvrลกavanja upita.
  2. **Izbjegavajte SELECT*** โ€“ Dohvati samo potrebne stupce.
  3. Primijenite pravilno indeksiranje โ€“ Indeksni stupci koriลกteni u WHERE or JOIN.
  4. Normaliziraj podatke โ€“ Uklonite redundanciju za manje skupove podataka.
  5. Koristite LIMIT i paginaciju โ€“ Sprijeฤite nepotrebno uฤitavanje podataka.
  6. Optimiziraj spajanja โ€“ Osigurajte indeksirane kljuฤeve spajanja i konzistentne tipove podataka.

Primjer:

EXPLAIN SELECT * FROM orders WHERE customer_id = 100;

Napredni savjet: Koristite query_cache_type i innodb_buffer_pool_size postavke za fino podeลกavanje performansi.


20) Koje su razlike izmeฤ‘u Clustered i ne-Clustered indeksi u MySQL?

Svojstvo Clusterizd. Kazalo Ne-Clusterizd. Kazalo
ฤŒuvanje Redci podataka pohranjeni u indeksnom redoslijedu Odvojite strukturu od podataka
Koliฤina Samo jedan po stolu Dopuลกteno je viลกestruko
Brzina pristupa Brลพe za upite raspona Brลพe za nasumiฤne pretrage
Primjerni mehanizam InnoDB MojISAM

Objaลกnjenje: Klasterirani indeks definira fiziฤki redoslijed podataka u tablici. Buduฤ‡i da InnoDB koristi primarni kljuฤ kao klasterirani indeks, dohvaฤ‡anje podataka putem primarnog kljuฤa je brลพe. Neklasterirani indeksi, nasuprot tome, odrลพavaju pokazivaฤe na podatke, poveฤ‡avajuฤ‡i fleksibilnost, ali zahtijevajuฤ‡i viลกe prostora.

Primjer:

CREATE UNIQUE INDEX idx_email ON users(email);

21) ล to su pohranjene procedure u MySQL, i koje su njihove prednosti i ograniฤenja?

A Pohranjeni postupak je prethodno kompilirani skup SQL naredbi pohranjenih u bazi podataka. Omoguฤ‡uje ponovnu upotrebu logike i poboljลกava performanse smanjenjem optereฤ‡enja komunikacije klijent-posluลพitelj.

Primjer:

DELIMITER //
CREATE PROCEDURE GetEmployeeDetails(IN emp_id INT)
BEGIN
    SELECT * FROM employees WHERE id = emp_id;
END //
DELIMITER ;
Pogodnosti Ograniฤenja
Smanjuje ponavljajuฤ‡i kod Teลพe otklanjanje greลกaka
Poboljลกava performanse putem predkompilacije Sloลพenost kontrole verzija
Poboljลกava sigurnost putem enkapsulacije Moลพe poveฤ‡ati optereฤ‡enje servera ako se previลกe koristi

Primjer upotrebe: ฤŒesto se koristi za validaciju podataka, upravljanje transakcijama i automatizaciju izvjeลกtavanja.


22) Kako brave rade u MySQL, i koje su razliฤite vrste mehanizama za zakljuฤavanje?

Zakljuฤavanje osigurava konzistentnost podataka i sprjeฤava istovremene sukobe tijekom viลกe transakcija.

Vrsta zakljuฤavanja Description Primjer
Zakljuฤavanje stola Zakljuฤava cijelu tablicu tijekom operacija Koristi MyISAM
Zakljuฤavanje reda Zakljuฤava samo pogoฤ‘ene retke Koristi InnoDB
Zajedniฤko zakljuฤavanje Omoguฤ‡uje istovremeno ฤitanje, ali blokira pisanje ODABERI โ€ฆ ZAKLJUฤŒAJ U NAฤŒINU DIJELJENJA
Ekskluzivna brava Sprjeฤava sve ostale pristupe Operacije aลพuriranja i brisanja

Primjer:

SELECT * FROM accounts WHERE id=5 FOR UPDATE;

Savjet: preferiraju zakljuฤavanje na razini retka u transakcijskim sustavima kako bi se poboljลกala konkurentnost uz odrลพavanje integriteta podataka.


23) Objasnite razliku izmeฤ‘u privremenih tablica i izvedenih tablica u MySQL.

Aspekt Privremena tablica Izvedena tablica
Definicija Fiziฤki stvoreno za sesiju Postoji samo tijekom izvrลกavanja upita
Vidljivost Dostupno tijekom cijele sesije Dostupno samo u trenutnom upitu
Izvoฤ‘enje Brลพe za ponovljenu upotrebu Pogodno za jednokratne izraฤune
Primjer sintakse CREATE TEMPORARY TABLE temp_users AS SELECT * FROM users; SELECT * FROM (SELECT * FROM users WHERE status='active') AS active_users;

Primjer upotrebe: Privremene tablice idealne su za operacije u viลกe koraka, dok su izvedene tablice uฤinkovite za transformacije s jednim upitom.


24) Koja je uloga popisa kontrole pristupa (ACL-ova) u MySQL sigurnost?

Popisi kontrole pristupa definiraju tko moลพe izvrลกavati koje operacije unutar MySQLOni su bitni za provoฤ‘enje sigurnost baze podataka i razdvajanje privilegija.

Kljuฤne komponente:

  • Korisniฤki raฤuniDefinirano korisniฤkim imenom i hostom (npr. 'user'@'localhost').
  • privilegijeUkljuฤuje SELECT, INSERT, UPDATE, DELETE, CREATE, DROP itd.
  • Tablice dodjele bespovratnih sredstavaPohranjeno u mysql baza podataka (npr. user, db, tables_priv).

Primjer:

GRANT SELECT, UPDATE ON employees TO 'analyst'@'localhost';
FLUSH PRIVILEGES;

ลฝivotni ciklus autentifikacije: Kada se korisnik poveลพe, MySQL provjerava vjerodajnice, potvrฤ‘uje privilegije i izvrลกava upite unutar definiranog opsega dozvola.


25) Kako uloge poboljลกavaju MySQL upravljanje korisnicima?

uloge su skup privilegija grupiranih zajedno, ลกto pojednostavljuje administraciju korisnika i upravljanje pristupom.

Primjer:

CREATE ROLE 'reporting_user';
GRANT SELECT, EXECUTE ON company.* TO 'reporting_user';
GRANT 'reporting_user' TO 'john'@'localhost';
SET DEFAULT ROLE 'reporting_user' TO 'john'@'localhost';

Prednosti:

  • Pojednostavljuje upravljanje privilegijama.
  • Poboljลกava skalabilnost za poslovne postavke.
  • Poboljลกava sigurnost dodjeljivanjem unaprijed definiranih uloga umjesto izravnih privilegija.

Biljeลกka: Uloge su podrลพane od MySQL 8.0 nadalje.


26) Kako se MySQL upravljati pogreลกkama i rukovati iznimkama?

MySQL koristi DEKLARIRAJTE RUKOVODITELJA i SIGNAL mehanizmi za upravljanje greลกkama tijekom izvoฤ‘enja unutar pohranjenih programa.

Primjer:

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
   ROLLBACK;
   SELECT 'Transaction failed, rolled back' AS message;
END;

Vrste rukovatelja:

  • NASTAVI RUKOVATELJ: Preskaฤe greลกku i nastavlja izvrลกavanje.
  • IZLAZNI RUKOVATELJ: Zavrลกava blok i opcionalno izvodi vraฤ‡anje u prethodno stanje.

Najbolja vjeลพba: Kombinirajte rukovanje greลกkama s transakcijama za dosljedan oporavak podataka u kritiฤnim sustavima.


27) ล to su prozorske funkcije u MySQL, i kako se razlikuju od agregacijskih funkcija?

Funkcije prozora izvrลกiti izraฤune na skupu redaka tablice povezanih s trenutnim retkom bez saลพimanja skupa rezultata.

svojstvo Funkcija agregata Funkcija prozora
Izlaz Jedan red po grupi Jedan red po ulazu
Klauzula Koristi GROUP BY Koristi OVER()
Primjer SUM(salary) SUM(salary) OVER (PARTITION BY department)

Primjer:

SELECT department, employee_name,
       RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS salary_rank
FROM employees;

Primjena: Rangiranje, kumulativni zbrojevi, tekuฤ‡i zbrojevi i analitiฤki upiti.


28) Opiลกite ลพivotni ciklus izvrลกavanja upita u MySQL.

ลฝivotni ciklus upita u MySQL definira kako se naredba prenosi od klijenta do mehanizma baze podataka i vraฤ‡a rezultate.

Faze ลพivotnog ciklusa:

  1. Raลกฤlanjivanje: Validacija SQL sintakse.
  2. Optimizacija: Planer upita odreฤ‘uje najuฤinkovitiji put izvrลกenja.
  3. Izvrลกenje: Mehanizam za pohranu dohvaฤ‡a ili mijenja podatke.
  4. Predmemoriranje rezultata: ฤŒesto traลพeni rezultati mogu se pohraniti u predmemoriju.
  5. Povratak: Podaci poslani natrag klijentskoj aplikaciji.

Primjer: Prilikom izvrลกavanja SELECT * FROM customers WHERE city='Delhi';, optimizator bi mogao odabrati skeniranje indeksa umjesto skeniranja cijele tablice ako indeks na city postoji.


29) Koje su prednosti i nedostaci koriลกtenja pohranjenih funkcija u odnosu na pohranjene procedure?

Aspekt Pohranjeni postupak Pohranjena funkcija
Tip povrata Moลพe vratiti viลกe rezultata Mora vratiti jednu vrijednost
Upotreba Izvrลกeno putem CALL Koristi se u SQL izrazima
Fleksibilnost ล ira logika tijeka upravljanja Ograniฤeno na deterministiฤku logiku
Primjer CALL update_salary(101); SELECT calc_bonus(5000);

Prednosti pohranjenih funkcija:

  • Moลพe se ponovno koristiti u SELECT upitima.
  • Poboljลกajte modularnost koda.
  • Moลพe se indeksirati u generiranim stupcima.

Nedostaci:

  • Ograniฤeno na jednu povratnu vrijednost.
  • Ne mogu izravno izvrลกavati transakcije ili mijenjati tablice.

30) Koje su kljuฤne razlike izmeฤ‘u MySQL i PostgreSQL u smislu karakteristika i performansi?

Kategorija MySQL PostgreSQL
Izvoฤ‘enje Brลพi pri velikim optereฤ‡enjima ฤitanja Superiorniji u optereฤ‡enjima s velikim brojem pisanja
Transakcije ACID kompatibilan putem InnoDB-a Potpuno ACID s MVCC-om
Obrada JSON-a Funkcionalno od verzije 5.7 Izvorni JSONB za sloลพene upite
Konkurencija Zakljuฤavanje na razini retka Kontrola konkurentnosti viลกe verzija (MVCC)
rastegljivost Umjereno Visoko proลกirivo (prilagoฤ‘eni tipovi podataka, operatori)

Saลพetak: MySQL optimiziran je za jednostavnost, brzinu i implementaciju na razini weba. PostgreSQL, nasuprot tome, pruลพa napredne moguฤ‡nosti integriteta podataka, proลกirivosti i analitiฤkih funkcija, ลกto ga ฤini popularnim za poslovne aplikacije i aplikacije koje intenzivno koriste podatke.


31) Koje su nove znaฤajke uvedene u MySQL 8.4, i kako poboljลกavaju performanse?

MySQL Verzija 8.4 (Dugoroฤna podrลกka) donosi nekoliko poboljลกanja usmjerenih na skalabilnost, stabilnost i produktivnost programera.

Kljuฤna poboljลกanja:

  1. Razdvajanje ฤitanja/pisanja: Automatsko usmjeravanje upita na replike radi raspodjele optereฤ‡enja.
  2. Proลกirenja sheme performansi: Poboljลกana vidljivost latencije upita i dogaฤ‘aja ฤekanja.
  3. Paralelno izvrลกavanje upita: Podrลพava paralelna ฤitanja za analitiฤke upite.
  4. Nevidljivi indeksi: Indeksi se mogu testirati ili ignorirati bez da se odbace.
  5. Statistika perzistentnog optimizatora: Osigurava dosljedne planove upita tijekom ponovnih pokretanja.

Primjer:

ALTER TABLE orders ADD INDEX idx_amount (amount) INVISIBLE;

To omoguฤ‡uje testiranje performansi indeksa prije njegovog trajnog omoguฤ‡avanja - ลกto je velika prednost za optimizaciju proizvodnje.


32) Kako se MySQL rukovanje particioniranjem i koje su njegove razliฤite vrste?

Particioniranje dijeli velike tablice na manje, upravljive segmente zvane particije. Poboljลกava performanse upita i pojednostavljuje odrลพavanje.

Vrsta particije Description Koristite sluฤaj
RASPON Na temelju raspona vrijednosti Podaci o prodaji temeljeni na datumu
POPIS Na temelju diskretnih vrijednosti Kodovi zemalja ili regija
paprikaลก Na temelju hashiranja kljuฤa ID-ovi uravnoteลพenog optereฤ‡enja
KLJUฤŒ Automatska distribucija na temelju primarnog kljuฤa Automatsko particioniranje za skaliranje

Primjer:

CREATE TABLE orders (
  id INT,
  order_date DATE
)
PARTITION BY RANGE (YEAR(order_date)) (
  PARTITION p2023 VALUES LESS THAN (2024),
  PARTITION pmax VALUES LESS THAN MAXVALUE
);

Prednosti: Brลพi odgovor na upite, lakลกe arhiviranje i bolje upravljanje ulazno/izlaznim operacijama.


33) ล to je shema performansi u MySQL, i kako se koristi za praฤ‡enje?

The Shema izvedbe je instrumentacijski okvir ugraฤ‘en u MySQL za prikupljanje metrika niske razine o izvrลกavanju upita, koriลกtenju memorije i ulazno/izlaznih operacija.

Upotrijebite sluฤajeve:

  • Prepoznajte spore upite.
  • Dijagnosticirajte probleme sa zakljuฤavanjem i ฤekanjem.
  • Pratite statistiku veze.

Primjeri upita:

SELECT * FROM performance_schema.events_statements_summary_by_digest
ORDER BY AVG_TIMER_WAIT DESC LIMIT 5;

Prednosti:

  • Praฤ‡enje u stvarnom vremenu bez vanjskih alata.
  • Detaljan uvid u ponaลกanje servera.

Biljeลกka: Za dublju analitiku, integrirajte se s MySQL Monitor poduzeฤ‡a or Grafana nadzorne ploฤe.


34) Objasnite savjete za optimizaciju u MySQL i kada ih treba koristiti.

Savjeti za optimizaciju omoguฤ‡iti ruฤnu kontrolu nad MySQLplan izvrลกavanja upita kada su odluke zadanog optimizatora neoptimalne.

Primjer:

SELECT /*+ INDEX(employees idx_dept) */ * FROM employees WHERE department_id=5;

Uobiฤajene vrste nagovjeลกtaja:

  • USE INDEX, IGNORE INDEX, FORCE INDEX
  • JOIN_ORDER(), SET_VAR()
  • MAX_EXECUTION_TIME(N)

Kada koristiti:

  • Za rjeลกavanje problema sa sporim upitima.
  • Kada optimizator pogreลกno procijeni distribuciju podataka.
  • Kao privremeno rjeลกenje, a ne trajno.

Najbolja vjeลพba: Uvijek analizirajte EXPLAIN planove prije koriลกtenja savjeta kako biste izbjegli dugoroฤne probleme s odrลพavanjem.


35) ล to je profiliranje upita i kako pomaลพe u optimizaciji performansi?

Profiliranje upita pomaลพe u mjerenju faza izvrลกavanja upita kako bi se identificirala uska grla poput latencije ulazno/izlaznih operacija ili potroลกnje CPU-a.

naredbe:

SET profiling = 1;
SELECT * FROM orders WHERE amount > 5000;
SHOW PROFILES;
SHOW PROFILE FOR QUERY 1;

Najvaลพnije stavke izlaza:

  • Vrijeme parsiranja
  • Vrijeme optimizacije
  • Vrijeme izvrลกavanja
  • Vrijeme slanja podataka

Primjer upotrebe: Profiliranje pomaลพe administratorima baza podataka (DBA) izolirati spore JOIN-ove, neoptimizirane indekse ili neuฤinkovito sortiranje tijekom sloลพenih analitiฤkih operacija.


36) Kako mogu MySQL integrirati s umjetnom inteligencijom i cjevovodima za analizu podataka?

MySQL sluลพi kao snaลพan izvor podataka za strojno uฤenje (ML) i analitiฤki sustavi.

Integracija se obiฤno dogaฤ‘a putem API-ja ili ETL alata kojitracstrukturirali podatke u analitiฤke okvire.

Metode integracije:

  • Python & Pande: Koriลกtenje mysql.connector or SQLAlchemy za unos podataka u ML modele.
  • apaลก Spark: Koriลกtenje JDBC upravljaฤkog programa za distribuirano raฤunanje.
  • AI agenti: MySQLStrukturirana shema omoguฤ‡uje LLM-ovima izvoฤ‘enje strukturiranog zakljuฤivanja nad tabliฤnim podacima.

Primjer:

import pandas as pd
import mysql.connector
conn = mysql.connector.connect(user='root', password='pw', database='sales')
df = pd.read_sql('SELECT * FROM transactions', conn)

Prednosti: kombinira MySQLpouzdanost s analitiฤkom snagom umjetne inteligencije โ€” premoลกฤ‡ujuฤ‡i transakcijsku i prediktivnu inteligenciju.


37) ล to su nevidljivi indeksi i kako podrลพavaju testiranje optimizacije?

Nevidljivi indeksi omoguฤ‡iti administratorima baza podataka testiranje performansi upita kao da indeks ne postoji - bez njegovog stvarnog brisanja.

Primjer:

ALTER TABLE employees ADD INDEX idx_salary (salary) INVISIBLE;

Prednosti:

  • Sigurno testiranje indeksa u produkciji.
  • Procjenjuje ovisnost prije ispuลกtanjaping indeks.
  • Moลพe se odmah ponovno aktivirati pomoฤ‡u VISIBLE.

Primjer:

ALTER TABLE employees ALTER INDEX idx_salary VISIBLE;

Sluฤaj upotrebe: Idealno tijekom optimizacije baze podataka ili faza refaktoriranja kada je utjecaj uklanjanja indeksa neizvjestan.


38) Koje su razliฤite metode sigurnosnog kopiranja i oporavka u MySQL?

naฤin Description Pogodan za
mysqldump Izvozi logiฤke sigurnosne kopije u SQL formatu Male do srednje baze podataka
mysqlpump Paralelizirana verzija mysqldump-a Veliki skupovi podataka
mysqlhotcopy fiziฤka kopija za MyISAM tablice Naslijeฤ‘eni sustavi
InnoDB vruฤ‡a sigurnosna kopija Izraฤ‘uje sigurnosne kopije bez blokiranja Upotreba u poduzeฤ‡ima
Binarni zapisnici Omoguฤ‡uje oporavak u odreฤ‘enom trenutku Kritiฤni transakcijski sustavi

Primjer naredbe:

mysqldump -u root -p mydb > mydb_backup.sql

Najbolja vjeลพba: Kombinirati binarni zapisnici s planiranim logiฤkim sigurnosnim kopijama za potpunu fleksibilnost oporavka.


39) Kako se MySQL rjeลกavanje zastoja i koji su naฤini za njihovo sprjeฤavanje?

A zastoj dogaฤ‘a se kada dvije ili viลกe transakcija drลพe brave koje su potrebne drugoj, stvarajuฤ‡i ciklus ฤekanja.

Primjer scenarija:

  • Transakcija A zakljuฤava orders i ฤeka customers.
  • Transakcija B brave customers i ฤeka orders.

Tehnike prevencije:

  1. Pristup tablicama u dosljednom redoslijedu.
  2. Neka transakcije budu kratke.
  3. Koristite niลพe razine izolacije ako je prikladno.

Praฤ‡enje pomoฤ‡u:

SHOW ENGINE INNODB STATUS;

Razluฤivost: MySQL automatski vraฤ‡a jednu transakciju unatrag kako bi se prekinuo ciklus. Pravilan dizajn transakcije minimizira ponavljanje.


40) Koje su kljuฤne razlike izmeฤ‘u MySQL Izdanje za zajednicu i MySQL Enterprise izdanje?

svojstvo Izdanje zajednice Enterprise Edition
licenca GPL (besplatno) Trgovaฤki
Alati za izradu sigurnosnih kopija Osnovno (mysqldump) Napredno (sigurnosna kopija za poduzeฤ‡a)
Sigurnost Standardna enkripcija TDE, zapisivanje zapisnika revizije, vatrozid
Praฤ‡enje Priruฤnik Monitor poduzeฤ‡a
podrลกka Forumi Zajednice Oracle 24 / 7 podrลกka

Saลพetak:
Community Edition odgovara programerima otvorenog koda, dok Enterprise Edition odgovara organizacijama kojima je potrebna usklaฤ‘enost, visoka dostupnost i sluลพbena podrลกka.


๐Ÿ” Vrh MySQL Pitanja za intervju sa stvarnim scenarijima i strateลกkim odgovorima

1) Moลพete li objasniti razliku izmeฤ‘u MyISAM i InnoDB sustava za pohranu podataka u MySQL?

Oฤekivano od kandidata: Ispitivaฤ ลพeli procijeniti vaลกe razumijevanje MySQLmehanizmi za pohranu i njihovi sluฤajevi upotrebe.

Primjer odgovora:
โ€žMyISAM je netransakcijski mehanizam za pohranu optimiziran za operacije s velikim brojem ฤitanja, dok InnoDB podrลพava transakcije, zakljuฤavanje na razini redaka i strane kljuฤeve. InnoDB je idealan za aplikacije koje zahtijevaju integritet podataka i konkurentnost, kao ลกto su e-trgovinski ili bankarski sustavi. Meฤ‘utim, MyISAM i dalje moลพe biti prikladan za analitiฤka optereฤ‡enja gdje je brzina ฤitanja vaลพnija od sigurnosti transakcija.โ€œ


2) Kako optimizirati upit koji se sporo izvrลกava u MySQL?

Oฤekivano od kandidata: Anketar traลพi znanje o tehnikama optimizacije upita i analizi performansi.

Primjer odgovora:
โ€žPoฤeo bih koriลกtenjem EXPLAIN izjava za analizu kako MySQL izvrลกava upit. Zatim bih provjerio nedostaju li indeksi, optimizirao spajanja i osigurao da stupci koriลกteni u WHERE or JOIN uvjeti su indeksirani na odgovarajuฤ‡i naฤin. Takoฤ‘er traลพim nepotrebne podupite ili zamjenske znakove. Na prethodnom poslu smanjio sam vrijeme izvrลกavanja upita za 70% jednostavnim prepisivanjem sloลพenih spajanja i dodavanjem sloลพenih indeksa.


3) Opiลกite situaciju kada ste rijeลกili problem s performansama baze podataka.

Oฤekivano od kandidata: Ispitivaฤ ลพeli razumjeti vaลกe vjeลกtine rjeลกavanja problema i praktiฤno iskustvo.

Primjer odgovora:
โ€žU mojoj prethodnoj ulozi, naลก glavni upit za izvjeลกtavanje uzrokovao je znaฤajna usporavanja tijekom vrลกnih sati. Profilirao sam upit, identificirao nedostajuฤ‡i indeks na ฤesto filtriranom stupcu i optimizirao strukturu upita. Takoฤ‘er sam uveo predmemoriranje upita i prilagodioโ€ฆโ€œ innodb_buffer_pool_size kako bi se poboljลกalo iskoriลกtenje memorije. Ove su promjene poboljลกale vrijeme odziva s 12 sekundi na manje od 2 sekunde.โ€


4) Kako se nosite s promjenama sheme baze podataka u produkcijskom okruลพenju?

Oฤekivano od kandidata: Testiraju vaลกe razumijevanje kontrole verzija, upravljanja rizicima i procesa implementacije.

Primjer odgovora:
โ€žPromjene sheme rjeลกavam tako da ih prvo implementiram u okruลพenju za testiranje, pokreฤ‡em regresijske testove i osiguravam unatrag kompatibilne. Tijekom implementacije u produkciji koristim alate poput Liquibasea ili Flywaya za kontrolu verzija migracija sheme. Na prethodnoj poziciji implementirao sam strategiju kontinuiranog aลพuriranja kako bih sprijeฤio zastoje tijekom refaktoriranja sheme koje je utjecalo na viลกe od 500 milijuna redaka.โ€œ


5) Koje strategije koristite za sigurnosno kopiranje i oporavak baze podataka u MySQL?

Oฤekivano od kandidata: Anketar ลพeli vidjeti vaลก pristup integritetu podataka i oporavku od katastrofe.

Primjer odgovora:
"Koristim mysqldump za manje baze podataka i mysqlpump ili Percona XtraBackup za veฤ‡e, transakcijske. Automatiziram dnevne sigurnosne kopije i redovito provodim testove oporavka kako bih ih provjerio. Osim toga, postavio sam binarne zapisnike za oporavak u odreฤ‘enom trenutku. U mojoj posljednjoj ulozi, ove su nam strategije omoguฤ‡ile da vratimo bazu podataka od 1 TB unutar 45 minuta nakon kritiฤnog kvara.


6) Kako biste osigurali sigurnost baze podataka u MySQL okoliลก?

Oฤekivano od kandidata: Anketar provjerava vaลกe razumijevanje kontrole pristupa, ลกifriranja i revizije.

Primjer odgovora:
โ€žPoฤinjem provoฤ‘enjem naฤela najmanjih privilegija koristeฤ‡i MySQL korisniฤke uloge i ograniฤavanje udaljenog root pristupa. Omoguฤ‡ujem SSL za podatke u prijenosu i koristim AES_ENCRYPT za osjetljive stupce. Takoฤ‘er redovito provodim sigurnosne revizije. Na prethodnom poslu implementirao sam pravila pristupa temeljena na ulogama koja su smanjila neovlaลกtene pokuลกaje upita za 90%.


7) Recite mi o vremenu kada ste radili na projektu migracije baze podataka.

Oฤekivano od kandidata: ลฝele procijeniti vaลก pristup planiranju, testiranju i rjeลกavanju problema.

Primjer odgovora:
โ€žNa mom prethodnom poslu migrirali smo naslijeฤ‘eno MySQL 5.6 baza podataka za MySQL 8.0. Poฤeo sam s revizijom sheme i kompatibilnosti, a zatim sam koristio mysqldump i pt-online-schema-change za siguran prijenos podataka s minimalnim zastojem. Takoฤ‘er smo proveli testove samo za ฤitanje kako bismo provjerili konzistentnost podataka. Migracija je uspjeลกno zavrลกena s manje od 10 minuta zastoja.


8) Kako pratite zdravlje i performanse MySQL baza podataka?

Oฤekivano od kandidata: Ispitivaฤ ลพeli vidjeti moลพete li proaktivno prepoznati probleme prije nego ลกto eskaliraju.

Primjer odgovora:
"Pratim MySQL performanse pomoฤ‡u alata kao ลกto su MySQL Enterprise Monitor i Percona Monitoring and Management (PMM). Ja track metrike poput sporih zapisnika upita, kaลกnjenja replikacije i iskoriลกtenosti resursa. Takoฤ‘er konfiguriram upozorenja za krลกenja pragova. U mojoj prethodnoj ulozi, ovo proaktivno praฤ‡enje pomoglo nam je otkriti skokove upita i sprijeฤiti prekide tijekom kampanja s velikim prometom.


9) Koje biste korake poduzeli ako bi replikacija izmeฤ‘u MySQL kvarovi servera?

Oฤekivano od kandidata: ลฝele procijeniti vaลกe sposobnosti rjeลกavanja problema i rjeลกavanja problema s replikacijom.

Primjer odgovora:
โ€žPrvo bih provjerio status replikacije koristeฤ‡i SHOW SLAVE STATUS identificirati pogreลกke poput nedostajuฤ‡ih binarnih zapisnika ili nedosljednosti podataka. Ako je potrebno, preskoฤio bih problematiฤne transakcije ili ponovno inicijalizirao replikaciju pomoฤ‡u svjeลพeg dumpa s glavnog servera. Na prethodnoj poziciji automatizirao sam provjere ispravnosti replikacije pomoฤ‡u prilagoฤ‘enih skripti kako bih smanjio kaลกnjenje i zastoje replikacije.โ€


10) Opiลกite kako biste dizajnirali MySQL baza podataka radi skalabilnosti.

Oฤekivano od kandidata: Testiraju vaลกe arhitektonsko razmiลกljanje i razumijevanje strategija skaliranja.

Primjer odgovora:
โ€žDizajnirao bih prvo imajuฤ‡i na umu normalizaciju kako bih odrลพao integritet, a zatim selektivno denormalizirao radi performansi. Za horizontalnu skalabilnost, implementirao bih sharding ili koristioโ€ฆโ€œ MySQL Grupna replikacija. Takoฤ‘er bih koristio slojeve predmemorije poput Redisa za rastereฤ‡enje ฤestih ฤitanja. U mojoj posljednjoj ulozi, ovi principi dizajna podrลพavali su skaliranje od 100 tisuฤ‡a do preko 5 milijuna transakcija dnevno bez degradacije usluge.

Saลพmite ovu objavu uz: