Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem beim Speichern großer Zahlen in mysql DB

Sie verwenden anscheinend PHP, um diese ID zu generieren.

Da Sie nicht erwähnt haben, was genau passiert, kann ich nur bestimmte Gründe für Ihr Datenbankdesign annehmen.

Zunächst einmal könnten Sie diese Nummer als bigint speichern und nicht varchar . Es ist eine Ganzzahl, die Sie speichern, ich sehe keinen Grund, warum Sie varchar verwenden und von Natur aus mehr Platz als nötig verschwenden würden.bigint verwendet 8 Bytes, um eine Zahl zu speichern. Das bedeutet, dass jede Zahl mit mehr als 8 Ziffern, die im Varchar-Feld gespeichert ist, mehr Platz benötigt als ein bigint Feld, das Zahlen bis zu 2^64 speichern kann.

Stellen Sie zweitens sicher, dass Sie keine Zahlenformatierung verwenden, bevor Sie das Ergebnis Ihrer Berechnungsoperation an die Datenbank senden. Ich habe die von Ihnen gepostete Ganzzahl kopiert/eingefügt (10000000754987) und PHP konvertiert sie nicht automatisch in die wissenschaftliche Notation. Ich vermute also, dass bei dieser Zahlengenerierung im Hintergrund etwas anderes vor sich geht - schalten Sie sie nach Möglichkeit aus und speichern Sie die Zahl im entsprechenden Feldtyp (bigint). Es wäre auch hilfreich, wenn Sie zusätzliche Informationen über Ihre App und ihre Funktionsweise posten würden, denn Fehler sind nicht immer dort, wo sie vermutet werden.