sql >> Database >  >> RDS >> Mysql

MySQL-query optimaliseren met meerdere left joins

  • Zorg ervoor dat u indexen hebt op de velden die in uw WHERE-instructies en ON-voorwaarden staan, primaire sleutels worden standaard geïndexeerd, maar u kunt indien nodig ook handmatig indexen maken.
  • Controleer of je echt elke kolom in alle tabellen moet selecteren? Als dit niet het geval is, zorg er dan voor dat u alleen de kolommen selecteert die u nodig heeft, vermijd het gebruik van select*

  • Controleer nogmaals of je LEFT JOINS echt nodig hebt, zo nee, gebruik INNER JOINs.

  • Als de prestaties nog steeds een probleem zijn nadat u klaar bent met het aanpassen van uw query, kunt u overwegen uw schema te denormaliseren om joins te elimineren

  • U kunt ook overwegen om de belasting van de database te verminderen door caching-applicaties zoals sphinxsearch en memcached te gebruiken

  • Controleer of geen van uw joins betrekking heeft op weergaven in plaats van op werkelijke tabellen

referenties:

http://www.sphinxsearch.com

http://dev.mysql.com/doc/refman /5.0/en/create-index.html



  1. GROUP BY zonder aggregatiefunctie

  2. Moet ik het gegevenstype SQL_Variant gebruiken?

  3. Sql Server Service Broker-gespreksgroepen

  4. Hoe kan ik een automatische e-mail verzenden vanuit MySQL-records?