Specifikoni fushat e nevojshme në SELECT
pyetje
Në vend që të zgjidhni të gjitha fushat në SELECT
pyetje, zgjidhni vetëm fushat e kërkuara për të zvogëluar ngarkesën dhe për të përmirësuar shpejtësinë e pyetjes.
Për shembull, nëse kujdeseni vetëm për emrin dhe adresën e klientit, zëvendësoni pyetjen:
SELECT * FROM customers;
me
SELECT name, address FROM customers;
Krijo indekse
Index
ndihmoni MySQL
në kërkimin dhe marrjen e të dhënave më shpejt. Identifikoni fushat që përdoren shpesh në WHERE
, JOIN
ose ORDER BY
klauzola dhe krijoni indekse për to.
Për shembull, në orders
tabelën " ", nëse customer_id
fusha " " përdoret shpesh në WHERE
ose JOIN
pyet, mund të krijoni një indeks si më poshtë:
CREATE INDEX idx_customer_id ON orders(customer_id);
Përdorni llojet e duhura të indekseve
MySQL
ofron lloje të ndryshme indeksesh si B-tree
, hash dhe full-text
. Zgjidhni llojin e duhur të indeksit bazuar në kërkesat tuaja të pyetjes për të siguruar performancën optimale.
Për shembull, nëse keni nevojë të kërkoni tekst brenda një fushe të dhënash, mund të krijoni një full-text
indeks si më poshtë:
CREATE FULLTEXT INDEX idx_description ON products(description);
Optimizoni pyetjet
Përdoreni EXPLAIN
për të parë planin e ekzekutimit të pyetjes dhe për të analizuar se si MySQL
e kryen atë. Kjo ju ndihmon të identifikoni problemet e performancës dhe të optimizoni pyetjet duke përdorur indekse ose duke rishkruar pyetjet.
Për shembull, për të parë planin e pyetjes së një SELECT
pyetjeje, ekzekutoni komandën e mëposhtme:
EXPLAIN SELECT * FROM orders WHERE customer_id = 123;
Kufizoni numrin e rezultateve të kthyera
Kur një pyetje kthen një numër të madh rezultatesh, kufizoni numrin e rezultateve të kthyera duke përdorur klauzolën LIMIT
. Kjo ndihmon në uljen e ngarkesës dhe përmirësimin e shpejtësisë së pyetjes.
Për shembull, për të kthyer vetëm 10 rezultate nga tabela "produkte", mund të përdorni pyetjen e mëposhtme:
SELECT * FROM products LIMIT 10;
Përdorni INNER JOIN
në vend të JOIN
INNER JOIN
performon më mirë se zakonisht JOIN
. Përdoreni INNER JOIN
kur ju interesojnë vetëm rekordet që kanë një përputhje në të dyja tabelat.
Për shembull, për t'u bashkuar me tabelat " orders
" dhe " customers
" bazuar në customer_id
fushën " ", mund të përdorni pyetjen e mëposhtme:
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
Përdorni me kujdes tabelat e përkohshme
Tabelat e përkohshme mund të përdoren në raste të caktuara, por ato duhet të përdoren me kujdes pasi mund të ngadalësojnë pyetjet. Merrni parasysh optimizimin e pyetjeve për të shmangur përdorimin e tabelave të përkohshme nëse është e mundur.
Për shembull, në vend që të përdorni një tabelë të përkohshme në pyetjen e mëposhtme:
CREATE TEMPORARY TABLE temp_table SELECT * FROM products;
mund të provoni të optimizoni pyetjen për të kërkuar drejtpërdrejt të dhënat nga tabela origjinale.
Rregulloni mirë konfigurimin MySQL
Merrni parasysh rikonfigurimin e MySQL për të shfrytëzuar sa më shumë burimet e sistemit dhe për t'u lidhur me kërkesat e aplikacionit tuaj. Kjo përfshin konfigurimin e kujtesës, madhësive të tamponit, kufijve të lidhjes dhe parametrave të tjerë. Referojuni dokumentacionit MySQL dhe mësoni se si të rregulloni konfigurimin për t'iu përshtatur mjedisit tuaj specifik.
Fshini të dhënat e panevojshme
Fshini të dhënat e panevojshme ose rezervoni të dhënat e vjetra për të zvogëluar madhësinë e bazës së të dhënave dhe për të përmirësuar shpejtësinë e pyetjes.
Për shembull, nëse keni një logs
tabelë që ruan të dhënat e vjetra të regjistrave " ", mund të fshini të dhënat më të vjetra se një vit duke përdorur pyetjen e mëposhtme:
DELETE FROM logs WHERE created_at < '2022-01-01';
Përdorni kujtesën cache
Konfiguro kujtesën e MySQL cache
për të ruajtur pyetjet e ekzekutuara shpesh dhe të dhënat e aksesuara së fundi. Kjo ndihmon në reduktimin e kohës së hyrjes në disk dhe përmirësimin e shpejtësisë së pyetjes.
Për shembull, për të konfiguruar një cache memorie me një madhësi prej 1 GB, mund të modifikoni skedarin e konfigurimit "my.cnf" të MySQL si më poshtë:
[mysqld]
...
query_cache_type = 1
query_cache_size = 1G
Ju lutemi vini re se shembujt e mësipërm janë ilustrues dhe duhet të përshtaten në përputhje me strukturën dhe kërkesat e bazës së të dhënave tuaja aktuale. Testoni dhe vlerësoni me kujdes efektivitetin para dhe pas aplikimit të këtyre teknikave të optimizimit për t'u siguruar që ato janë të përshtatshme për mjedisin tuaj specifik.