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: