Seite 1 von 1
Datentypen in der Datenbank
Verfasst: Di Nov 27, 2007 10:13 pm
von mario
hoi
wollte nur bescheid sagen, dass einige Felder in der DB an ihre Grenzen stoßen, dort müsste nachgebessert werden.
Siehe Rangliste, Punkte der Galaxien
1 System 3.7 3.7 45.045 2.147.483.647
2 System 2.10 2.10 58.519 2.147.483.647
3 System 1.8 1.8 70.861 2.147.483.647
alle drei die selben Punkte. Der Wert markiert nebenbei die obere Grenze des Int-Bereichs (kA ob es irgendwann einen Überlauf gibt, aber is ja auch wurscht)
kleiner Link dazu:
http://dev.mysql.com/doc/refman/5.1/de/numeric-types.html
MfG
Verfasst: Di Nov 27, 2007 11:00 pm
von Nomad
Das dürfte wohl aus der Speedrunde sein, odeR? normalerweise kommt eigentlich ekiner an so hohe Werte, insofenr würde ich das jetzt nicht als kritisch bezeichnen, zumindest nicht für den Regelbetrieb.
Verfasst: Di Nov 27, 2007 11:34 pm
von mario
jap ist aus der Speed.
Naja , wenn weiterhin Speedrunden laufen ist schon damit zu rechnen dass diese Grenze ab und an erreicht wird.
Die Änderung wär auch schnell gemacht
Verfasst: Di Nov 27, 2007 11:47 pm
von Nomad
naja, das was momentan als spped abläuft ist.. eher sinnfrei
Verfasst: Di Nov 27, 2007 11:59 pm
von mario
Aber ist immernoch interessanter als die normale ... da dauerts ja noch bis man den TT durch hat und was ordentliches bauen kann
Naja , das gehört wohl nich mehr zum Thema Datentypen ^^ , wenn der Fall nicht vorgesehen ist dass es zu soviel Punkten kommen kann lasst es halt wie es ist. Wollte es nur erwähnt haben.
Verfasst: Mi Nov 28, 2007 6:38 am
von Schattenfighter
mario hat geschrieben:Aber ist immernoch interessanter als die normale ... da dauerts ja noch bis man den TT durch hat und was ordentliches bauen kann
Naja , das gehört wohl nich mehr zum Thema Datentypen ^^ , wenn der Fall nicht vorgesehen ist dass es zu soviel Punkten kommen kann lasst es halt wie es ist. Wollte es nur erwähnt haben.
offiziell läuft grad auch keine speed nichmal inner normalen speed die übers wochenende läuft erreichst du solche werte
Verfasst: Mi Nov 28, 2007 7:18 am
von Nachael
aber ist das son Problem das umzustellen ??
bzw. schints ja gar net das max. zu sein, nur wenn man ebenso weit ins Negative geht
was totaler murks wäre ...
Verfasst: Mi Nov 28, 2007 10:53 am
von mifritscher
das ist 2^32-1 (32 bittig, unsigned)
Das große Problem ist dass die Software noch auf 32 bit läuft. Wenn ich da die Datentypen auf 64 bit umstelle wirds lahm.
Zudem php auf 32 bit Maschinen keine Integer größer (2^32/2)-1 (int32, signed) kann, dann wirds zu Fließkommazahlen, mit allen bekannten Rundungsfehlern.
Fazit: Das kann erst richtig (=ohne große Verrenkungen und Performanceeinbußen) gelöst werden, wenn ich den Server auf 64 Bit Software umstelle. Und das ist nicht unbedingt ein Spaziergang...
Verfasst: Mi Nov 28, 2007 5:07 pm
von Nomad
2.147.483.647 ist ganz sicher nicht 2^32 -1
eher 2^31 -1. Also mit Vorzeichen...
Verfasst: Mi Nov 28, 2007 6:45 pm
von mifritscher
Sorry, habs mir nicht so genau angeschaut, ich dachte es ging um die Res, da ists nämlich unsigned^^
So, und jetzt haut mich :p
Verfasst: Mi Nov 28, 2007 10:46 pm
von mario
Würde sich eine Umstellung von Int zu LongInt wirklich so drastisch in der Geschwindigkeit auswirken (von einem 32bit OS ausgegangen)?
Dann müsst ich mal ein paar meiner Webprojekte durchsehen ^^
Verfasst: Mi Nov 28, 2007 11:04 pm
von mifritscher
Das Problem ist halt das php damit nichts anfangen kann, sondern dann in float umwandelt.
Es sei denn ich fasse das Ergebnis als String auf und rechne dann mit bigint-Funktionen weiter, was geschwindigkeits.und sauberkeitsmäßig wohl der GAU darstellen dürfte^^
Naja, ich werde die Kiste wenn ich bissle mehr Zeit habe auf 64 bit Software umstellen, dann ist die Umstellung schnell gemacht.
P.S. man muss bei Int und LongInt sakrisch aufpassen was gemeint ist. Oft wird int als 2^16 und long als 2^32 aufgefasst, und verwendet dann für 2^64 den Typ longlong *g*
Verfasst: Mi Nov 28, 2007 11:26 pm
von mario
bei den Galapunkten würde es ja als String reichen. Die Berechnung erfolgt/könnte über die DB erfolgen. Ist ja nur nen bischen Gruppieren.
Bei einigen Leuten stoßen auch die Ress schon an die Grenzen. Da wäre sogar float noch dankbarer
da sind die Verluste geringer als wenn alles über 4.294.967.295 verschwindet ^^
Verfasst: Do Nov 29, 2007 1:30 am
von Nomad
Naja, das Problem mit 64 Bit daten in einer 32 bit umgebung ist, dass die Wortlänge halt 32 bit ist.
Klartext: 32 Bit wäre ein Speicherzugriff, 64 bit zwei.
Verfasst: Do Nov 29, 2007 6:37 am
von Schattenfighter
Nomad hat geschrieben:Naja, das Problem mit 64 Bit daten in einer 32 bit umgebung ist, dass die Wortlänge halt 32 bit ist.
Klartext: 32 Bit wäre ein Speicherzugriff, 64 bit zwei.
wer so viel res hat sollte se entweder benutzen oder sich löschen is doch sinnlos wegen ner inofiziellen speed alles umkrempeln zu müssen
Verfasst: Sa Dez 01, 2007 10:44 am
von Nachael
wer so viel res hat sollte se entweder benutzen oder sich löschen is doch sinnlos wegen ner inofiziellen speed alles umkrempeln zu müssen
und wenn das nur eine ressource ist die man zuviel hat und partout nicht loswird ??
bei mir ist das z.B. bei cry der Fall, und verständlicherweise hab ich a) keinen Bock, dass ich immer die gleiche Zahl sehe
und b) auch keinen Bock, ca. 400mal 9999 Amps einzutippen ^^
das dürfte dann die DB nebenbei bemerkt auch etwas überfordern, oder ??
Verfasst: Sa Dez 01, 2007 11:34 am
von Bilbo
ne, scanner/amps/jammer kannste pro sorte 16777215 haben, damit hat höchstens unsre Formel ein Problem
Verfasst: Sa Dez 01, 2007 4:51 pm
von Nachael
ja aber angenommen ich hab jetzt ne schlange mit 400 aufträgen ... wenn da noch andre deppen ungefähr zur gleichen Zeit auf die gleiche Idee kommen ist das System doch evtl. überlastet, oder ?
Verfasst: Sa Dez 01, 2007 9:30 pm
von mifritscher
Sollte eigentlich nichts passieren
Probierts doch einfach aus^^
Verfasst: So Dez 02, 2007 12:53 pm
von Schattenfighter
du kannst das ganze crys auch einfach in die bank stecken
Verfasst: So Dez 02, 2007 1:18 pm
von Nachael
und was bringt das ?? mit den ress in der Bank kann in der Speedrunde NIEMAND WAS ANFANGEN !