Available inGermanEnglishFrenchHindiPortugueseRussianSpanish
SQL und Datenbanken für Interviews
Schreibe einen korrekten Join, ein GROUP BY oder eine Fensterfunktion ohne Hilfe und lies danach, was die Engine daraus gemacht hat: den EXPLAIN-Plan, den gewählten Index, die Isolationsanomalie, der deine Transaktion ausgesetzt ist. Für Backend-Engineers vor einer Datenbank-Runde; SQL-Syntax wird vorausgesetzt, nicht gelehrt. Fünfundachtzig Karten von Join-Semantik und NULL-Logik bis zu B-Bäumen, MVCC und Isolationsstufen; Replikation und Sharding gehören zu System-Design-Interview.
Die zweite Zahl in cost=0.00..8.30 ist verdeckt. Was schätzt sie?
Die Gesamtkosten, alle Zeilen dieses Knotens zu liefern
— Es sind keine Millisekunden; die Einheit gehört dem Planner.
— Frag, was der Planner minimiert, solange kein LIMIT im Spiel ist.
Source
Das Kostenpaar ist Startkosten und Gesamtkosten, beide in willkürlichen Einheiten des Planners, traditionell so skaliert, dass ein sequentieller Seitenzugriff 1.0 kostet (PostgreSQL-Handbuch, Using EXPLAIN). Zwei Folgerungen, die man laut sagen sollte: Kosten sind nur gegen einen anderen Plan derselben Anfrage vergleichbar, nie gegen eine Millisekunde; und die Kosten eines oberen Knotens enthalten bereits jedes Kind darunter, die oberste Zeile ist also die ganze Anfrage. Häufig verwechselt mit der ersten Zahl, den Startkosten, die der Planner stark gewichtet, sobald ein LIMIT bedeutet, dass nur ein Teil der Ausgabe des Knotens verbraucht wird.