Bird
Raised Fist0
MySQLquery~5 mins

Integer types (TINYINT, INT, BIGINT) in MySQL - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Integer types (TINYINT, INT, BIGINT)
O(n)
Understanding Time Complexity

When working with integer types in MySQL, it's helpful to understand how their size affects performance.

We want to see how the choice of integer type impacts the speed of database operations.

Scenario Under Consideration

Analyze the time complexity of inserting and querying integer values of different sizes.


CREATE TABLE numbers (
  id INT PRIMARY KEY AUTO_INCREMENT,
  small_num TINYINT,
  normal_num INT,
  big_num BIGINT
);

INSERT INTO numbers (small_num, normal_num, big_num) VALUES (127, 2147483647, 9223372036854775807);

SELECT * FROM numbers WHERE normal_num = 1000;
    

This code creates a table with three integer types, inserts a row, and queries by a normal integer.

Identify Repeating Operations

Look at what repeats when the database handles these integers.

  • Primary operation: Reading and writing integer values in storage.
  • How many times: Once per row inserted or queried, repeated for many rows in large tables.
How Execution Grows With Input

As the number of rows grows, the work to read or write integers grows too.

Input Size (n)Approx. Operations
1010 reads/writes
100100 reads/writes
10001000 reads/writes

Pattern observation: The number of operations grows directly with the number of rows.

Final Time Complexity

Time Complexity: O(n)

This means the time to read or write integers grows in a straight line as the number of rows increases.

Common Mistake

[X] Wrong: "Using bigger integer types like BIGINT makes queries much slower because they are huge numbers."

[OK] Correct: The size difference is small for the database, so the time to read or write is mostly about how many rows you have, not the integer size.

Interview Connect

Understanding how data size affects query time helps you design efficient databases and answer questions clearly in interviews.

Self-Check

"What if we added an index on the BIGINT column? How would the time complexity of queries change?"

Practice

(1/5)
1. Which MySQL integer type should you use to store a small number between 0 and 255 efficiently?
easy
A. BIGINT
B. INT
C. TINYINT
D. SMALLINT

Solution

  1. Step 1: Understand the range of TINYINT and compare with other types

    TINYINT can store values from 0 to 255 when unsigned, which fits small numbers efficiently. INT and BIGINT store much larger numbers but use more space. SMALLINT also uses more space unnecessarily.
  2. Final Answer:

    TINYINT -> Option C
  3. Quick Check:

    Small numbers (0-255) = TINYINT [OK]
Hint: Use TINYINT for numbers up to 255 to save space [OK]
Common Mistakes:
  • Choosing INT for small numbers wastes space
  • Confusing TINYINT with SMALLINT
  • Not considering unsigned range
2. Which of the following is the correct syntax to declare a NOT NULL BIGINT column named user_id in MySQL?
easy
A. user_id BIGINT;
B. BIGINT user_id;
C. user_id INT BIG;
D. user_id BIGINT NOT NULL;

Solution

  1. Step 1: Check correct order of declaration

    In MySQL, the column name comes first, then the data type, optionally followed by constraints like NOT NULL. Only A follows this: user_id BIGINT NOT NULL;.
  2. Final Answer:

    user_id BIGINT NOT NULL; -> Option D
  3. Quick Check:

    Column name + type + constraints = correct syntax [OK]
Hint: Column name first, then type, then constraints [OK]
Common Mistakes:
  • Putting type before column name
  • Using invalid order of keywords
  • Missing semicolon in some contexts
3. Given the table orders with a column order_count TINYINT UNSIGNED, what will be the result of this query?
INSERT INTO orders (order_count) VALUES (300);
SELECT order_count FROM orders;
medium
A. 300
B. Error: Out of range value
C. 0
D. 44

Solution

  1. Step 1: Understand TINYINT UNSIGNED range and insert effect

    TINYINT UNSIGNED stores 0-255 only. 300 exceeds range, so INSERT throws 'Error: Out of range value' (default strict mode).
  2. Final Answer:

    Error: Out of range value -> Option B
  3. Quick Check:

    Value > 255 in TINYINT UNSIGNED causes error [OK]
Hint: Check value fits type range before insert [OK]
Common Mistakes:
  • Assuming values wrap around silently
  • Ignoring unsigned range limits
  • Expecting automatic truncation without error
4. You have a column defined as INT but you want to store numbers larger than 4,294,967,295. Which change fixes the problem?
medium
A. Change the column type to BIGINT
B. Change the column type to TINYINT
C. Add UNSIGNED to the INT column
D. Use VARCHAR instead of INT

Solution

  1. Step 1: Understand INT range limits and select proper type

    Signed INT max ~2.1 billion, UNSIGNED INT max 4,294,967,295. BIGINT handles much larger (up to ~9 quintillion).
  2. Final Answer:

    Change the column type to BIGINT -> Option A
  3. Quick Check:

    BIGINT stores bigger numbers than INT [OK]
Hint: Use BIGINT for numbers bigger than INT max [OK]
Common Mistakes:
  • Using TINYINT which is smaller
  • Adding UNSIGNED but still too small
  • Switching to VARCHAR loses numeric benefits
5. You want to store user scores that can be very large, but you also want to save space when scores are small. Which MySQL integer type strategy is best?
hard
A. Use INT for most scores and BIGINT only if scores exceed INT range
B. Use TINYINT and switch to BIGINT if needed later
C. Always use BIGINT for all scores
D. Use BIGINT but compress data manually

Solution

  1. Step 1: Balance storage and range needs

    TINYINT too small; always BIGINT wastes space. Use INT initially (efficient for small/medium), ALTER to BIGINT later if needed.
  2. Final Answer:

    Use INT for most scores and BIGINT only if scores exceed INT range -> Option A
  3. Quick Check:

    Balance size and range with INT then BIGINT [OK]
Hint: Start with INT, upgrade to BIGINT if needed [OK]
Common Mistakes:
  • Always using BIGINT wastes space
  • Starting with TINYINT causes overflow
  • Manual compression is complex and error-prone
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard