Database Optimization in System Architecture

medium · System Architecture

22. Database Optimization: Performance at Scale Even the most powerful database hardware will collapse under a high-concurrency load if the data model is poorly structured or if queries are forced to scan millions of rows to find a single record. Database optimization is the science of balancing data integrity (via normalization) with retrieval performance (via indexing and denormalization). 1. Normalization: Integrity & Redundancy Reduction Normalization is the process of organizing data to minimize redundancy and dependency. It involves dividing large tables into smaller, related tables and defining relationships between them. The Process: Usually applied up to the "Third Normal Form" (3NF). 1NF: Eliminate repeating groups; ensure atomicity (each cell contains a single value). 2NF: Eliminate partial dependencies (all non-key attributes must depend on the entire primary key). 3NF: Eliminate transitive dependencies (non-key attributes should not depend on other non-key attributes). The Benefit: Reduces "data anomalies. " If you need to update a user's address, you update it in one place, and it propagates across the system automatically because all tables reference the unique user_id . The Cost: Excessive normalization forces the database to perform complex JOIN operations across many tables to reconstruct simple data views, which is computationally expensive at high scale. 2. Denormalization: Optimizing for Read Speed Denormalization is the strategic, intentional introduction of redundancy into a database schema. It is the direct opposite of normalization. The Mechanism: You intentionally store redundant data (e. g., storing the user_name inside the posts table rather than just a user_id ) to eliminate the need for JOIN operations. Production Use Case: High-traffic systems where "Read" performance is significantly more critical than "Write" performance. The Trade-off: You gain massive speed in data retrieval, but you introduce a significant risk of data inconsistency. If a user changes their name, you must now run an application-level update across every post they have ever written. 3. Indexing: The Database Map An Index is a specialized data structure (typically a B-Tree ) that allows the database engine to find specific rows without scanning the entire table. How it Works: Without an index, the database performs a "Full Table Scan"—looking at every single row from start to finish. With an index, the database traverses a balanced tree structure to find the pointer to the exact row location in $O(\log n)$ time. Production Guardrails: Don't Over-Index: Every index you add must be updated every time you perform an INSERT , UPDATE , or DELETE . Too many indexes will cripple your write performance. Index the Right Columns: Only index columns used in WHERE , JOIN , or ORDER BY clauses. 4. Query Optimization: Refining the Execution Even with a perfect schema, poorly written queries will bypass your indexes and force the database into slow execution paths. Core Optimization Techniques Avoid SELECT * : Only request the specific columns you need. Transferring massive, unused blobs over the network wastes bandwidth and database CPU cycles. SARGable Queries (Search ARGumentable): Write your WHERE clauses in a way that allows the database to utilize indexes. Bad (Non-SARGable): WHERE YEAR(created_at) = 2026 (The database must calculate the function for every row). Good (SARGable): WHERE created_at >= '2026-01-01' AND created_at < '2027-01-01' (The database can use an index range scan). Use EXPLAIN Plans: Every major database (PostgreSQL, MySQL) provides an EXPLAIN or EXPLAIN ANALYZE command. This tells you exactly how the database engine plans to execute your query—identifying if it's performing a "Full Table Scan" or effectively using an index. Database Optimization Reference Matrix Technique Primary Focus Best For Trade-off Normalization Data Integrity Complex relational data, financial apps Slower read performance due to joins. Denormalization Read Speed High-traffic, read-heavy dashboards Risk of data inconsistency. Indexing Search Efficiency Searching, filtering, sorting Slower write performance. Query Tuning Execution Efficiency Removing bottlenecks Requires developer expertise.

Back to System Architecture

Browse all study material on Careeroza