Mysql
 sql >> база данни >  >> RDS >> Mysql

Decimal VS Int в MySQL?

Може да зависи от версията на MySQL, която използвате. Вижте тук .

Преди MySQL 5.0.3 типът DECIMAL се съхраняваше като низ и обикновено би бил по-бавен. Въпреки това, тъй като MySQL 5.0.3 типът DECIMAL се съхранява в двоичен формат, така че с размера на вашия DECIMAL по-горе, може да няма голяма разлика в производителността.

Основният проблем с производителността би бил количеството пространство, заето от различните типове (като DECIMAL е по-бавен). С MySQL 5.0.3+ това изглежда по-малко проблем, но ако ще извършвате числови изчисления на стойностите като част от заявката, може да има известна разлика в производителността. Това може да си струва да се тества, тъй като в документацията няма индикация, която мога да видя.

Редактиране: По отношение на int(10) unsigned , взех това по номинална стойност като просто 4 байтово int. Това обаче има максимална стойност от 4294967295, която строго не предоставя същия диапазон от числа като DECIMAL(10,0) unsigned .

Както @Unreason посочи, ще трябва да използвате bigint за да покриете пълния диапазон от 10-цифрени числа, като увеличите размера до 8 байта.

Често срещана грешка е, че когато определят типовете числови колони в MySQL, хората често смятат, че числото в скобите оказва влияние върху размера на числото, което могат да съхраняват. Не е така. Диапазонът от числа се основава изцяло на типа колона и дали е със знак или без знак. Числото в скобите е за целите на показване в резултатите и не оказва влияние върху стойностите, съхранени в колоната. Освен това няма да окаже влияние върху показването на резултатите, освен ако не посочите ZEROFILL опция и в колоната.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-бързият начин да изтриете огромна MySQL таблица

  2. Улавяне на изключение за дублиран запис

  3. (My)SQL пълно присъединяване с три таблици

  4. Не може да се свърже с нито един от посочените MySQL хостове

  5. Как да избягате от единични кавички в MySQL