EN ES
Home > Web development > MYSQL Tutorials > Should I Use INT or BIGINT in MySQL? Guide to Choosing the Right Data Type

Should I Use INT or BIGINT in MySQL? Guide to Choosing the Right Data Type

Diego Cortés
Diego Cortés
September 14, 2020
Should I Use INT or BIGINT in MySQL? Guide to Choosing the Right Data Type

When you're designing a database in MySQL, one of the crucial decisions you need to make is the data type for your numeric fields. If you're wondering whether you should use INT or BIGINT for a specific field, here's when to choose each, based on the maximum value each data type can reach.

Maximum Values ​​for INT and BIGINT in MySQL

In MySQL, the INT data type has a range that varies depending on whether it is used as SIGNED or UNSIGNED. Here are the details:

  • INT (SIGNED): Can store values ​​from -2,147,483,648 to 2,147,483,647.
  • INT (UNSIGNED): Expands the range of values ​​from 0 to 4,294,967,295.

On the other hand, if you need a larger range, the BIGINT data type is the right choice:

  • BIGINT (SIGNED): Can store values ​​from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.
  • BIGINT (UNSIGNED): Extends the range of values ​​from 0 to 18,446,744,073,709,551,615.

Which Should I Use?

In most cases, an INT is more than enough to store the values ​​you need. However, if you are working on a project that involves a large amount of data or where the values ​​may exceed the range of an INT, then BIGINT is the better choice. It is important to consider the impact on performance and storage; BIGINT uses twice as much space compared to INT.

Summary of Value Ranges in MySQL

Here is a list of the maximum values ​​for each numeric data type in MySQL:

Data Type: TINYINT

  • Range (SIGNED): -128 to 127
  • Range (UNSIGNED): 0 to 255

Data Type: SMALLINT

  • Range (SIGNED): -32,768 to 32,767
  • Range (UNSIGNED): 0 to 65,535

Data Type: MEDIUMINT

  • Range (SIGNED): -8,388,608 to 8,388,607
  • Range (UNSIGNED): 0 to 16,777,215

Data Type: INT

  • Range (SIGNED): -2,147,483,648 to 2,147,483,647
  • Range (UNSIGNED): 0 to 4,294,967,295

Data Type: BIGINT

  • Range (SIGNED): -9,223,372,036,854,808 to 9,223,372,036,854,807
  • Range (UNSIGNED): 0 to 18,446,744,073,709,551,615

Conclusion

In summary, the INT data type is generally sufficient for most applications. However, if your project involves a database with extremely large numeric values, consider using BIGINT. The right choice can help optimize your database performance and ensure that your application runs efficiently.

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categories

Page loaded in 23.70 ms