Teicnící Optamaithe le haghaidh MySQL: Cur le Feidhmíocht agus Luas

Sonraigh na réimsí riachtanacha sna SELECT fiosrúcháin

In ionad gach réimse den SELECT cheist a roghnú, ná roghnaigh ach na réimsí riachtanacha chun an t-ualach a laghdú agus chun luas an cheist a fheabhsú.

Mar shampla, mura bhfuil suim agat ach faoi ainm agus seoladh an chustaiméara, cuir an cheist seo ina ionad:

SELECT * FROM customers;

le

SELECT name, address FROM customers;

 

Cruthaigh innéacsanna

Index cabhrú le MySQL sonraí a chuardach agus a aisghabháil níos tapúla. Sainaithin réimsí a úsáidtear go minic i WHERE, JOIN, nó ORDER BY clásail agus cruthaigh innéacsanna dóibh.

Mar shampla, " " sa orders tábla, má customer_id úsáidtear an réimse go minic i " " " " WHEREJOIN ceisteanna, is féidir leat innéacs a chruthú mar a leanas:

CREATE INDEX idx_customer_id ON orders(customer_id);

 

Úsáid cineálacha cuí innéacsanna

MySQL soláthraíonn sé cineálacha éagsúla innéacsanna mar B-tree, hais, agus full-text. Roghnaigh an cineál innéacs cuí bunaithe ar do riachtanais iarratais chun an fheidhmíocht is fearr a chinntiú.

Mar shampla, más gá duit téacs a chuardach laistigh de réimse sonraí, is féidir leat innéacs a chruthú full-text mar seo a leanas:

CREATE FULLTEXT INDEX idx_description ON products(description);

 

Ceisteanna a bharrfheabhsú

Bain úsáid as EXPLAIN chun plean feidhmithe an fhiosrúcháin a fheiceáil agus chun anailís a dhéanamh ar conas MySQL a fheidhmíonn sé é. Cuidíonn sé seo leat saincheisteanna feidhmíochta a aithint agus ceisteanna a bharrfheabhsú trí úsáid a bhaint as innéacsanna nó trí cheisteanna a athscríobh.

Mar shampla, chun plean ceiste ceiste a fheiceáil SELECT, rith an t-ordú seo a leanas:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

 

Teorainn a chur le líon na dtorthaí a thugtar ar ais

Nuair a fhilleann ceist ar líon mór torthaí, teorannaigh líon na dtorthaí a thugtar ar ais ag baint úsáide as an LIMIT gclásal. Cuidíonn sé seo le hualach a laghdú agus le luas fiosrúcháin a fheabhsú.

Mar shampla, gan ach 10 dtorthaí a thabhairt ar ais ón tábla "táirgí", is féidir leat an cheist seo a leanas a úsáid:

SELECT * FROM products LIMIT 10;

 

Bain úsáid INNER JOIN as in ionad JOIN

INNER JOIN fheidhmíonn níos fearr ná rialta JOIN. Bain úsáid as INNER JOIN nuair nach dtugann tú aird ach ar thaifid a bhfuil meaitseáil acu sa dá tábla.

Mar shampla, chun páirt a ghlacadh sna táblaí " orders " agus " customers " bunaithe ar an customer_id réimse, is féidir leat an cheist seo a leanas a úsáid:

SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

 

Bain úsáid as táblaí sealadach go cúramach

Is féidir táblaí sealadacha a úsáid i gcásanna áirithe, ach ní mór iad a úsáid go cúramach mar is féidir leo moill a chur ar cheisteanna. Smaoinigh ar cheisteanna a bharrfheabhsú ionas nach n-úsáidfear táblaí sealadacha más féidir.

Mar shampla, in ionad tábla sealadach a úsáid sa cheist seo a leanas:

CREATE TEMPORARY TABLE temp_table SELECT * FROM products;

is féidir leat an cheist a bharrfheabhsú chun sonraí a fhiosrú go díreach ón tábla bunaidh.

 

Cumraíocht MySQL mionchoigeartaithe

Smaoinigh ar MySQL a athchumrú chun an leas is fearr a bhaint as acmhainní an chórais agus chun ailíniú le riachtanais d’fheidhmchláir. Áirítear leis seo cuimhne a chumrú, méideanna maolánacha, teorainneacha nasc, agus paraiméadair eile. Déan tagairt don doiciméadú MySQL agus foghlaim conas an chumraíocht a choigeartú chun freastal ar do thimpeallacht ar leith.

 

Scrios sonraí gan ghá

Scrios sonraí nach bhfuil gá leo nó déan cúltaca de sheanshonraí chun méid an bhunachair shonraí a laghdú agus luas fiosrúcháin a fheabhsú.

Mar shampla, má tá " " tábla agat logs ina stórálfar seantaifid loga, is féidir leat taifid atá níos sine ná bliain a scriosadh ag baint úsáide as an " " cheist seo a leanas:

DELETE FROM logs WHERE created_at < '2022-01-01';

 

Bain úsáid as cuimhne cache

Cumraigh cuimhne MySQL cache chun fiosrúcháin a dhéantar go minic agus sonraí a rochtain le déanaí a stóráil. Cuidíonn sé seo le ham rochtana diosca a laghdú agus luas fiosrúcháin a fheabhsú.

Mar shampla, chun taisce cuimhne a chumrú le méid 1GB, is féidir leat comhad cumraíochta MySQL "my.cnf" a mhodhnú mar seo a leanas:

[mysqld]  
...  
query_cache_type = 1  
query_cache_size = 1G  

 

Tabhair faoi deara gur samplaí léiritheacha iad na samplaí thuas agus gur gá iad a choigeartú de réir struchtúr agus riachtanais do bhunachar sonraí féin. Déan tástáil agus meastóireacht chúramach ar an éifeachtúlacht roimh agus tar éis na teicnící barrfheabhsaithe seo a chur i bhfeidhm chun a chinntiú go bhfuil siad oiriúnach do do thimpeallacht ar leith.