sql >> Databáze >  >> RDS >> Mysql

Příkazy JOINS vs. while

Pokud jsou indexy správně používány, pak je to téměř vždy efektivnější použít JOIN. Důraz je kladen na to, že nejlepší účinnost se vždy nerovná nejlepšímu výkonu.

Jednoznačná odpověď však ve skutečnosti neexistuje; měli byste analyzovat dotaz pomocí EXPLAIN abychom zajistili, že se indexy skutečně používají, nedochází ke zbytečnému použití dočasné tabulky atd. V některých případech , podmínky se spojí a vytvoří dotaz, který prostě nemůže používat indexy. V těchto případech může rychleji rozdělit dotazy na části způsobem, který jste uvedli.

Kdybych se s takovým kódem setkal v existujícím projektu, zpochybnil bych to:zkontroloval bych dotaz, vymyslel různé způsoby, jak dotaz provést, ujistit se, že tyto věci byly zváženy, vytvořit vědecký, fakty podložený argument pro nebo proti praxi. . Ujistěte se, že původní vývojáři provedli náležitou péči, protože nepoužívání JOIN povrchně ukazuje na špatný návrh databáze nebo dotazu. Nakonec však výsledky mluví hlasitě, a pokud všechny optimalizace a opravy stále vedou k pomalejšímu spojení, než poskytuje použití fragmentů dotazů, pak převládá rychlejší řešení. Benchmark a jednat na základě výsledků benchmarku; v návrhu softwaru neexistuje žádný případ, kdy byste měli vyměnit špatný výkon za dodržování libovolných pravidel o tom, co byste měli nebo neměli dělat. Nejvýkonnější metoda je nejlepší metoda.



  1. Python:MySQL:Zpracování časových limitů

  2. Django, po upgradu:Server MySQL odešel

  3. Použití automatizace k urychlení testů vydání na PostgreSQL

  4. Způsobeno:android.database.sqlite.SQLiteException:žádná taková tabulka:BOOK (kód 1 SQLITE_ERROR)