Logo mn.boatexistence.com

Ялгарах нь гүйцэтгэлд нөлөөлөх үү?

Агуулгын хүснэгт:

Ялгарах нь гүйцэтгэлд нөлөөлөх үү?
Ялгарах нь гүйцэтгэлд нөлөөлөх үү?

Видео: Ялгарах нь гүйцэтгэлд нөлөөлөх үү?

Видео: Ялгарах нь гүйцэтгэлд нөлөөлөх үү?
Видео: How To Structure In-House SEO Team 2024, May
Anonim

Тийм, DISTINCT ашиглах нь (заримдаа тайлбарын дагуу) үр дүн захиалахад хүргэдэг Олон зуун бичлэгийг эрэмбэлэх нь цаг хугацаа шаарддаг. Бүх баганаа GROUP BY гэж оролдоод үзээрэй, энэ нь заримдаа асуулга оновчтой алгоритмыг илүү үр ашигтайгаар сонгоход хүргэдэг (ядаж Oracle-ийн тусламжтайгаар би гүйцэтгэлийн мэдэгдэхүйц өсөлтийг анзаарсан).

Ялгаад хэрэглэх нь муу юу?

За яахав, "ялгах"-ыг буруугаар ашиглах нь дээр дурдсанчлан жинхэнэ асуудлыг нуугаад зогсохгүй (хүснэгтэнд давхардсан оруулгууд, дээр дурдсан зүйлд нөхцөл байхгүй) асуулгын гүйцэтгэлийг муутгадаг… Энэ нь асуулгын IO зардал (логик уншилт) ихээхэн нэмэгдэх болно.

Ялгарах нь асуулгыг удаашруулдаг уу?

SELECT DISTINCT горимд маш цөөхөн асуулга илүү хурдан ажиллах ба маш цөөхөн нь SELECT DISTINCT горимд удаан ажиллах болно (гэхдээ тийм ч удаан биш) гэхдээ дараагийн тохиолдолд энэ нь магадгүй юм. Аппликешн нь гүйцэтгэл болон нарийн төвөгтэй байдлын ачааллыг програм руу шилжүүлдэг давхардсан тохиолдлуудыг шалгах шаардлагатай байж магадгүй юм.

Ялгарах уу эсвэл БҮЛЭГЛЭХ нь дээр үү?

Хэрэв Талбарыг индексжүүлээгүй бол MySQL-д DISTINCT нь GROUP BY- аасарай хурдан юм шиг санагддаг. DISTINCT нь зөвхөн давхардсан мөрүүдийг арилгадаг боловч GROUP BY нь нэмж эрэмбэлэх бололтой.

Бид яагаад SQL-д ялгаатай ашиглах ёсгүй гэж?

Хэрвээ асуудлыг "засах"-ын тулд тодорхой зүйлийг сонговол хариуд нь та муу гүйцэтгэлтэй байх магадлалтай. GROUP BY нь AVG, MAX, MIN, SUM, COUNT гэх мэт нэгтгэсэн функцуудыг ашиглах боломжийг танд олгоно. DISTINCT зүгээр л давхардсануудыг устгана.

Зөвлөмж болгож буй: