sql >> Database >  >> RDS >> Mysql

Probleem met het opslaan van grote getallen in mysql DB

Je gebruikt blijkbaar PHP om die ID te genereren.

Aangezien je niet hebt vermeld wat er precies gebeurt, kan ik alleen bepaalde redenen voor je database-ontwerp aannemen.

Ten eerste zou je dat nummer kunnen opslaan als bigint en niet varchar . Het is een geheel getal dat u opslaat, ik zie geen reden waarom u varchar zou gebruiken en inherent meer ruimte zou verspillen dan nodig is.bigint gebruikt 8 bytes om een ​​nummer op te slaan. Dat betekent dat elk nummer met meer dan 8 cijfers opgeslagen in het varchar-veld meer ruimte zou gebruiken dan een bigint veld waarin nummers tot 2^64 kunnen worden opgeslagen.

Ten tweede, zorg ervoor dat u geen getalopmaak gebruikt voordat u het resultaat van uw berekeningsbewerking naar de db stuurt. Ik heb het gehele getal dat je hebt gepost (10000000754987) gekopieerd en geplakt en php converteert het niet automatisch naar wetenschappelijke notatie, dus ik vermoed dat je daar iets anders op de achtergrond hebt met die nummergeneratie - schakel het indien mogelijk uit en sla het op nummer in het juiste veldtype (bigin). Het zou ook handig zijn als je aanvullende informatie over je app zou posten en wat deze doet, omdat fouten niet altijd iets zijn waar mensen het over hebben.



  1. Hoe maak je een FULLTEXT-index op meerdere kolommen?

  2. mysql zoeken naar een catid in een tekstveld

  3. PHP PDO met foreach en fetch

  4. Django connect mysql-probleem, NameError:naam '_mysql' is niet gedefinieerd