Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
SQL

SQL: Choose the Right Data Types for Performance

- 24.07.26 - ErcanOPAK

📊 Data Types = Performance

Wrong data types hurt performance. Choose the right data types — storage, speed, accuracy. Essential for database design.

📝 Numeric Data Types

# Integer Types
TINYINT   → 0 to 255 (1 byte)
SMALLINT  → -32,768 to 32,767 (2 bytes)
MEDIUMINT → -8,388,608 to 8,388,607 (3 bytes)
INT       → -2.1B to 2.1B (4 bytes)
BIGINT    → -9.2B to 9.2B (8 bytes)

# Decimal Types
DECIMAL(10,2) → 10 digits, 2 decimals
NUMERIC(10,2) → Same as DECIMAL
FLOAT         → Approximate, 4 bytes
DOUBLE        → Approximate, 8 bytes

# When to Use
INT          → Ids, counts
BIGINT       → Large numbers
DECIMAL(10,2) → Money
FLOAT        → Scientific, approximate

# Example
CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    total_amount DECIMAL(10,2) NOT NULL,
    quantity INT NOT NULL,
    discount_rate FLOAT
);

🎯 String and Date Types

# String Types
CHAR(n)       → Fixed length (1-255)
VARCHAR(n)    → Variable length (1-65535)
TEXT          → Max 65,535 bytes
MEDIUMTEXT    → Max 16,777,215 bytes
LONGTEXT      → Max 4,294,967,295 bytes

# Binary Types
BINARY(n)     → Fixed binary
VARBINARY(n)  → Variable binary
BLOB          → Max 65,535 bytes
MEDIUMBLOB    → Max 16,777,215 bytes
LONGBLOB      → Max 4,294,967,295 bytes

# Date Types
DATE          → YYYY-MM-DD
TIME          → HH:MM:SS
DATETIME      → YYYY-MM-DD HH:MM:SS
TIMESTAMP     → Unix timestamp
YEAR          → Year (4 digits)

# When to Use
VARCHAR(50)   → Short text (names, emails)
VARCHAR(255)  → Medium text
TEXT          → Long text (articles)
CHAR(1)       → Fixed values (gender: 'M','F')
DATETIME      → Creation date
TIMESTAMP     → Last updated

# Example
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    bio TEXT,
    gender CHAR(1),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

# Data Type Tips
- Choose the smallest adequate type
- Use VARCHAR over TEXT when possible
- Use DECIMAL for money (avoid FLOAT)
- Use TIMESTAMP for last updated
- Index types affect performance

💡 Data Type Tips

  • Choose the smallest adequate type
  • Use VARCHAR over TEXT when possible
  • Use DECIMAL for money (avoid FLOAT)
  • Use TIMESTAMP for last updated
  • Index types affect performance

“Choosing right data types is critical. Performance, storage, accuracy. Essential for database design.”

— DBA

Related posts:

SQL 'string_split()' function

How to return only the Date part from SQL Server DateTime datatype

SQL: Master Window Functions for Advanced Analytics

Post Views: 2

Post navigation

.NET Core: Add Globalization for Localization
C#: Use Records for Immutable Data Types

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

October 2026
M T W T F S S
 1234
567891011
12131415161718
19202122232425
262728293031  
« Sep    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (973)
  • How to make theater mode the default for Youtube (953)
  • How to add default value for Entity Framework migrations for DateTime and Bool (939)
  • Get the First and Last Word from a String or Sentence in SQL (847)
  • How to select distinct rows in a datatable in C# (837)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (624)
  • Add Constraint to SQL Table to ensure email contains @ (590)
  • Average of all values in a column that are not zero in SQL (553)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (526)
  • Find numbers with more than two decimal places in SQL (468)

Recent Posts

  • CSS: Fix a prefers-color-scheme Media Query That Gets Silently Overridden by a Browser Extension’s Forced Dark Mode
  • Git: Fix a Merge Commit That Silently Drops a File Because Both Branches Deleted It Differently
  • HTML5: Fix a Native Lazy-Loading Image That Never Loads Because It Sits Inside a Hidden Tab Until the User Clicks It
  • The AI Prompt That Traces a Null Reference Exception Back to the Exact Line That First Produced the Null
  • The AI Prompt That Turns a Gym Membership Contract’s Fine Print Into a Plain-English List of Cancellation Steps
  • Photoshop: Fix a Color Profile Mismatch That Makes Printed Output Look Nothing Like What You Saw On Screen
  • WordPress: Fix Search Results That Return Pages From a Theme You Deactivated Months Ago
  • Visual Studio: Fix a Test Project That Builds Fine Alone but Fails to Discover Any Tests After a NuGet Restore
  • ASP.NET Core: Fix a File Upload That Times Out on Slow Connections Only Because Kestrel’s Minimum Data Rate Feature Kicked In
  • JavaScript: Fix an Array Destructuring Default Value That Silently Never Applies Because null Was Passed Instead of Undefined

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (973)
  • How to make theater mode the default for Youtube (953)
  • How to add default value for Entity Framework migrations for DateTime and Bool (939)
  • Get the First and Last Word from a String or Sentence in SQL (847)
  • How to select distinct rows in a datatable in C# (837)

Recent Posts

  • CSS: Fix a prefers-color-scheme Media Query That Gets Silently Overridden by a Browser Extension’s Forced Dark Mode
  • Git: Fix a Merge Commit That Silently Drops a File Because Both Branches Deleted It Differently
  • HTML5: Fix a Native Lazy-Loading Image That Never Loads Because It Sits Inside a Hidden Tab Until the User Clicks It
  • The AI Prompt That Traces a Null Reference Exception Back to the Exact Line That First Produced the Null
  • The AI Prompt That Turns a Gym Membership Contract’s Fine Print Into a Plain-English List of Cancellation Steps

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com