Jump to content
php.lv forumi

Query izpildes ātrums


zuiks

Recommended Posts

Pieņemsim, man ir tabula ar cilvēku vārdiem, kopā 1 000 ierakstu. Fiziski 999 ieraksts ir 'Jānis'

 

Pieņemsim, es taisu kveriju:

 

SELECT * FROM mytable WHERE name='Jānis'

 

un pēc tam otru kveriju:

 

UPDATE mytable SET name='Pēteris' WHERE name='Jānis'

 

Jautājums tāds - vai tas, ka vispirms bija laists 1. kverijs, ietekmē 2. kverija izpildes ātrumu vai ne? Vai 2.kverijs ietu ilgāk, ja 1. nebūtu izpildīts? Vai 2.kverijs atkal brauc cauri visai tabulai, kaut gan 1.jau vērtību ir atradis?

 

 

(FoxPro ja taisa seek un atrod vērtību, record pointer nostājas uz konkrētā ieraksta un atliek vienkārši nomainīt vērtību ar mainīgo. )

Link to comment
Share on other sites

Grey_Wolf, a ja nu vajag?

 

zuiks: mysql tāda jēdziena kā tas kursors nav (vismaz pagaidām). Taču, lai palielinātu izpildes ātrumu šajā gadījumā, vajag rīkoties apmēram tā:

* tajā tabula vajag būt kolonnai, kura ir primary key (kuras vērtības ir unikālas katrai rindai)

* selektējot to(s) Jānis, tiks dabūta šī(s) primārā(s) atslēga(s).

* updeitojot to(s) Jānis vajag nevis pēc tā paša Jānis vārda, bet gan pēc primārās atslēgas: WHERE id=4 vai ja vairāki: WHERE id IN (4,5,12,33)

 

WHERE nosacījumi, koros izmantas kolonnas, kurām ir uzbūvēts indekss (primārai astlēgai tās ir), izpidlīsies daudz ātrāk, nekā O(n) laikā.

Link to comment
Share on other sites

Paldies, bubu.

Esmu samērā daudz individuāli programmējis FoxPro (pie tam vēl savulaik ap 1993.gadu ar 2 kolēģiem izstrādājām priekš CSDD programmu vadītāja apliecību izsniegšanai). Tagad laužos iekšā PHP un MySQL - pārāk grūti nav, bet pēc inerces meklēju analoģiju ar FoxPro.

 

No manis vēl droši vien nāks daudzi muļķīgi jautājumi. Ceru, ka ne tipa 'kur man šeit ir ķļūda'.

 

Pagaidām uz jautājumiem saņemtās atbildes apstiprina, ka esmu domājis pareizi.

Ar cieņu - zuiks (sirms pusmūža vecis).

Link to comment
Share on other sites

Paldies Tev, Delfins.

Noteikti ņemšu vērā Tavas ieteiktās lietas.

Iespējams arī, ka muļķīgi jautājumi no manis vairs nenāks. Pavisam trīs jau ir uzdoti, droši vien pietiks. Atvainojos, ka atļāvos uzdot jautājumu forumā, nevis meklēt 'www.google.com'. Ceru, ka jautājums nebija no vismuļķīgākiem, kādi šai forumā tiek uzdoti.

Sorry par oftopic - vai tā jūs, jaunieši sakāt?

 

To bubu: vai ar Tevi nevar kontaktēties caur e-mailu?

[email protected]

Link to comment
Share on other sites

×
×
  • Create New...