sql >> Databáze >  >> RDS >> Sqlserver

Proč bych měl v C# používat int místo bajtu nebo short

Z hlediska výkonu je int rychlejší téměř ve všech případech. CPU je navrženo tak, aby efektivně pracovalo s 32bitovými hodnotami.

S kratšími hodnotami je složité se vypořádat. Aby mohl procesor přečíst jeden bajt, řekněme, musí přečíst 32bitový blok, který jej obsahuje, a poté zamaskovat horních 24 bitů.

Aby mohl zapsat bajt, musí přečíst cílový 32bitový blok, přepsat spodních 8 bitů požadovanou hodnotou bajtu a zapsat celý 32bitový blok znovu.

Prostorově samozřejmě ušetříte pár bajtů použitím menších datových typů. Pokud tedy vytváříte tabulku s několika miliony řádků, pak mohou stát za zvážení kratší datové typy. (A totéž může být dobrý důvod, proč byste měli ve své databázi používat menší datové typy)

A pokud jde o správnost, int nepřeteče snadno. Co když myslíte vaše hodnota se vejde do jednoho bajtu a pak někdy v budoucnu nějaká neškodně vypadající změna kódu znamená, že se do něj uloží větší hodnoty?

To jsou některé z důvodů, proč by int měl být vaším výchozím datovým typem pro všechna integrální data. Bajt používejte pouze v případě, že skutečně chcete ukládat bajty stroje. Zkratky používejte pouze v případě, že máte co do činění s formátem souboru nebo protokolem nebo podobným, který ve skutečnosti určuje 16bitové celočíselné hodnoty. Pokud se zabýváte pouze celými čísly obecně, udělejte z nich ints.



  1. Vysvětlení velikostí řádků Postgres

  2. Co dělá (+) v Oracle SQL?

  3. Limity kurzoru dotazu Salesforce API

  4. Příkaz GROUP BY + CASE