Issues faced with int(11) datatype in MYSQL

后端 未结 2 661
渐次进展
渐次进展 2021-01-15 18:25

I have a table in MYSQL in with a primary key id int(11) (auto-incremented). Now I have a program which reads some text file and enters the value in id column. So my table s

相关标签:
2条回答
  • 2021-01-15 18:29

    Definition from mysql manual for the int data type:

    A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.

    The int type is always 4 bytes (32 bits). The 11 in int(11) is just the "display width", that only matters for UNSIGNED ZEROFILL columns. More details on this blog post.

    0 讨论(0)
  • 2021-01-15 18:46

    INT in MySQL is 32 bits. INT(11) likely means you have a signed INT, which for an ID is useless. Changing it to an unsigned INT will automatically double the number of IDs available (since nobody uses a negative ID). Even though 11 "seems" bigger, it's because it takes into consideration the "length" of the number if it's the maximum negative number (-2147483648) which is 11 characters long.

    BIGINT will let you go up to 64 bits, signed or unsigned. Again, unsigned will allow you twice as many IDs (>0).

    As Andrew mentioned above, if your PHP does not support 64 bit integers then you will not be able to easily use them.

    Hope that helps.

    0 讨论(0)
提交回复
热议问题