[mysql] Lengtes van tabelvelden?

Pagina: 1
Acties:

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Hey,

deze vraag had ik eigenlijk anderhalf jaar geleden moeten stellen, toen ik begin met MySQL, maar goed :)

Ik geef altijd de maxlengte van een veld op als ik een database maak, bijv INT 22 als ik een tabel maak voor reacties oid, maar ik bedacht me laatst: stel, STEL dat het aantal reacties nou langer wordt dan 22 cijfers (STEL voor de zoveelste keer; ik weet anders wel zeker dat iemand gaat vertellen dat zoiets in de werkelijkeheid toch niet voorkomt :)), dan zit je met een probleem, en zeker als je daar te laat achter komt.
Het slimste lijkt me om dan ook gewoon geen maxwaarde op te geven, (bij sommige velden is dit dacht ik verplicht, weet zo niet welken, want ik geef altijd een maxwaarde op op dit moment), en ik vraag me af of hier nou nog nadelen aan hangen, anders zouden er toch wel meer mensen het niet doen?

  • Grum
  • Registratie: Juni 2001
  • Niet online
gebruik gewoon tinyint of int og bigint icm unsigned

die int(XX) notaties zeggen toch niet veel :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Er zit ALTIJD een maximum waarde bij dit soort velden. Waneer je zelf geen waarde opgeeft betekend dit niet dat er nu oneindig grote getallen of oneidnig lange teksten in opgeslagen kunnen worden.

In de mysql manual is wel een lijstje te vinden met de maximale lengte's van de verschillende types.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Okay..thnx.
Zal ook 's in de manual zoeken...

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Hoofdstuk 6.2 volgens mij daaro ;) Ik heb het vaak genoeg opgezocht toen ik weer eens een tabel inelkaar aan het brouwen was ;)

ALS later blijkt dat je een verkeerde ding, column type (ow ja, zo zoek je op mysql.com: in zoekveld invullen "text blob int char datetime" en dan op een resultaat met "column types" klikken ;)), te pakken hebt, dan heb je altijd nog de alter table command :) Kun je zonder verlies van data van bijv. een tinyint een mediumint maken :)

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 19:11

Femme

Hardwareconnaisseur

Official Jony Ive fan

Met het opgeven van een maxlengte opgeven bij een integer veld schiet je niet zoveel op omdat de ruimte die het veld inneemt afhankelijk is van het type integer. Je moet er dus voor zorgen dat je het juiste type integer gebruikt.

Vooral op grote tabellen met een paar honderd duizend records kan het een grote besparing van diskspace schelen (en dus ook kleinere indices, besparing van diskcache en een efficiënter gebruik van de key buffer).

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

En unsigned, zit daar eigenlijk ook performance winst op?

Rustacean


  • Grum
  • Registratie: Juni 2001
  • Niet online
nee maar je 'positieve' space word 2x zo groot :)

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Op vrijdag 08 maart 2002 10:17 schreef Grum het volgende:
nee maar je 'positieve' space word 2x zo groot :)
Als dat een geintje is: ik snap 'm niet :)
Als dat serieus is: leg uit?

  • Grum
  • Registratie: Juni 2001
  • Niet online
van: http://www.mysql.com/doc/C/o/Column_types.html
INT[(M)] [UNSIGNED] [ZEROFILL]
A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.
duidelijk toch ? :)

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Op vrijdag 08 maart 2002 10:44 schreef Grum het volgende:
van: http://www.mysql.com/doc/C/o/Column_types.html
[..]

duidelijk toch ? :)
haha, ok...duidelijk :)
Pagina: 1