იმოქმედებს თუ არა განსხვავება შესრულებაზე?

Სარჩევი:

იმოქმედებს თუ არა განსხვავება შესრულებაზე?
იმოქმედებს თუ არა განსხვავება შესრულებაზე?

ვიდეო: იმოქმედებს თუ არა განსხვავება შესრულებაზე?

ვიდეო: იმოქმედებს თუ არა განსხვავება შესრულებაზე?
ვიდეო: 🙌🏻✔️ვიდეო, რომელიც ყველა ქალმა უნდა ნახოს! 2024, ნოემბერი
Anonim

დიახ, რადგან DISTINCT-ის გამოყენება (ზოგჯერ კომენტარის მიხედვით) გამოიწვევს შედეგების შეკვეთას ასობით ჩანაწერის დახარისხებას დრო სჭირდება. სცადეთ GROUP BY ყველა თქვენი სვეტის მიხედვით, ზოგჯერ შეიძლება გამოიწვიოს შეკითხვის ოპტიმიზატორი უფრო ეფექტური ალგორითმის არჩევაში (ყოველ შემთხვევაში Oracle-თან ერთად მე შევნიშნე შესრულების მნიშვნელოვანი ზრდა).

ცუდია თუ არა განსხვავებულის გამოყენება?

კარგი, "განსხვავებული"-ის არასათანადო გამოყენება არა მხოლოდ მალავს რეალურ პრობლემას (ცხრილებში ჩანაწერების დუბლიკატი, პუნქტში მდგომარეობის ნაკლებობა), როგორც ზემოთ იყო განხილული, არამედ აქვეითებს შეკითხვის შესრულებას… ეს გამოიწვევს მოთხოვნის IO Cost (ლოგიკური წაკითხვა) მნიშვნელოვნად გაიზრდება.

ანელებს თუ არა განსხვავებულ მოთხოვნას?

ძალიან ცოტა მოთხოვნამ შეიძლება უფრო სწრაფად შეასრულოს SELECT DISTINCT რეჟიმში, და ძალიან ცოტა შეასრულებს უფრო ნელა (მაგრამ არა მნიშვნელოვნად ნელა) SELECT DISTINCT რეჟიმში, მაგრამ უფრო გვიან შემთხვევისთვის ეს სავარაუდოა. რომ აპლიკაციას შეიძლება დასჭირდეს დუბლიკატი შემთხვევების შემოწმება, რაც აპლიკაციის შესრულებისა და სირთულის ტვირთს გადააქვს.

ჯობია გამოვიყენოთ განსხვავებული თუ GROUP BY?

MySQL-ში, DISTINCT ჩანს ცოტა უფრო სწრაფი ვიდრე GROUP BY, თუ ველი არ არის ინდექსირებული. DISTINCT აღმოფხვრის მხოლოდ დუბლიკატ რიგებს, მაგრამ GROUP BY, როგორც ჩანს, დამატებით ახარისხებს მათ.

რატომ არ უნდა გამოვიყენოთ განსხვავებული SQL-ში?

თუ არჩეული განსხვავებული არის პრობლემის "გამოსასწორებლად", სავარაუდოდ, სანაცვლოდ მიიღებთ ცუდ შესრულებას. GROUP BY გაძლევთ საშუალებას გამოიყენოთ აგრეგატული ფუნქციები, როგორიცაა AVG, MAX, MIN, SUM და COUNT. DISTINCT უბრალოდ შლის დუბლიკატებს.

გირჩევთ: