Jump to content
php.lv forumi

SELECT + LIMIT 1


Lynx

Recommended Posts

Palasīju vienu rakstu par mysql query optimizāciju un izlasīju interesantu lietu, ja vēlamies selektot tikai 1nu rowu tad vienmēr būtu jalieto LIMIT 1. Līdz šim es LIMIT nelietoju gadījumos, ja WHERE arguments ir primary un ir zināms, ka, piemēram, WHERE id = 12 var būt tikai viens. Cik sapratu no raksta, ka bez tā LIMIT mysql izskries vēl cauri db un meklēs vai vēl kāds ieraksts neatbilst kritērijam.

 

Papētiju mysql manuāli un pie Optimizācijas, SELECT un LIMIT sadaļām neko par šo lietu neatradu. Vienīgi atceros, ka agrāk, kaut kur lasīju, ka mysql pats optimizē šāda tipa pieprasījumus un tas LIMIT nav jāraksta, ja tiek izmantots primary key, jo pēc pirmā atrastā ieraksta automātiska tiek pārtraukta meklēšana. Itkā veicu benchmarkingu un rezultāti sakrita, bet nekad nevar būt drošs.

 

Kāda citiem ir pieredze šajā jautājumā?

Link to comment
Share on other sites

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE tabula const PRIMARY PRIMARY 4 const 1

 

Skaidrs, tad esmu visu laiku darījis pareizi un rakstā bija neprecīza informācija par to, ka vienmēr jalieto LIMIT.

Link to comment
Share on other sites

×
×
  • Create New...