sql >> Database >  >> RDS >> Mysql

Verduidelijking van de samenvoegvolgorde voor het maken van tijdelijke tabellen

  1. Het verwijst naar de volgorde waarin de optimizer ze evalueert (join queue). De optimizer is zich misschien niet eens bewust van de volgorde van de tabellen in uw sql-statement.

  2. Nee, het is niet in tegenspraak met wat er in #3 is geschreven, aangezien het antwoord schrijft expliciet (nadruk is van mij):

Het resultaat en de prestaties zijn twee verschillende dingen. Eigenlijk is er een commentaar op het antwoord dat zegt dat

  1. U kunt de optimiser vertellen welke tabel als eerste moet worden verwerkt door straight_join :

Daar moet je echter voorzichtig mee zijn, want je bindt de hand van de optimizer. Zie deze SO onderwerp over het bespreken van voor- en nadelen van straight_join.

Aantal records, waar criteria, indexen - ze spelen allemaal hun rol in de beslissing van de optimizer over de verwerkingsvolgorde van tabellen. Er is geen wondermiddel, je moet een beetje spelen en waarschijnlijk kun je de optimizer misleiden om de volgorde van de tafels te veranderen.



  1. Meerdere databases en transacties

  2. Verschillen tussen DATA INFILE en LOAD DATA LOCAL INFILE

  3. SELECTEER $ (dollarteken)

  4. XAMPP-configuratie - MySQL werkt niet