sql >> Database teknologi >  >> RDS >> Mysql

Problem med at gemme store tal i mysql DB

Du bruger tilsyneladende PHP til at generere det ID.

Da du ikke nævnte, hvad der præcist sker, kan jeg kun antage visse årsager til dit databasedesign.

Først og fremmest kan du gemme nummeret som bigint og ikke varchar . Det er et heltal, du gemmer, jeg ser ingen grund til, hvorfor du ville bruge varchar og i sagens natur spilde mere plads end nødvendigt.bigint bruger 8 bytes til at gemme et nummer. Det betyder, at hvert tal med mere end 8 cifre gemt i varchar-feltet ville bruge mere plads end en bigint felt, der kan gemme tal op til 2^64.

For det andet skal du sikre dig, at du ikke bruger nogen talformatering, før du sender resultatet af din beregningsoperation til db. Jeg kopierede/indsatte det heltal, du postede (10000000754987), og php konverterer det ikke automatisk til videnskabelig notation, så mit gæt er, at du har noget andet i gang der i baggrunden med den talgenerering - sluk det, hvis det er muligt, og gem nummer i passende felttype (bigint). Det ville også være nyttigt, hvis du postede yderligere oplysninger om din app, og hvad den gør, fordi fejl ikke altid er, hvor folk mener, det er.



  1. Vælge værdier, der opfylder forskellige betingelser på forskellige rækker?

  2. Grundlæggende SQL-forespørgsler

  3. Simulering af MySQL's ORDER BY FIELD() i Postgresql

  4. postgres db filer - hvilken fil repræsenterer den specifikke tabel/indeks?