sql >> Databasteknik >  >> RDS >> Mysql

Bäst att använda * när du anropar många fält i mysql?

Obs! Att namnge alla fält är naturligtvis en bästa praxis, men i det här inlägget kommer jag bara att diskutera prestandafördelar, inte design- eller underhållsfördelar.

* syntaxen kan vara långsammare av följande skäl:

  • Alla fält är inte indexerade och frågan använder fullständig tabellskanning. Förmodligen inte ditt fall:det är knappast möjligt att alla fält du returnerar är indexerade med ett enda index.

  • Att returnera efterföljande fält från en tabell som innehåller kolumner med variabel längd kan resultera i en lätt sökning:för att returnera 20th fält, föregående 19 bör undersökas och förskjutningar beräknas.

  • Bara mer data behöver returneras (passas över anslutningen).

Eftersom du behöver nästan alla fält är den sista anledningen förmodligen den viktigaste. Säg, description TEXT fältet kan endast vara 1 av 50 fält som inte används på sidan, men kan uppta 10 gånger så mycket utrymme som alla andra fält tillsammans.

I det här fallet är det förstås bättre att namnge alla fält och utelämna de långa fälten du inte behöver.



  1. Hibernate och Multi-Tenant Database med hjälp av scheman i PostgreSQL

  2. SQL-uppdatering trigger endast när kolumnen ändras

  3. Hur man installerar Cassandra v3 på CentOS 6

  4. Escape-funktion för reguljära uttryck eller LIKE-mönster