<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ashis jenisharajendran</title>
    <description>The latest articles on DEV Community by ashis jenisharajendran (@ashis_jenisharajendran_e7).</description>
    <link>https://dev.to/ashis_jenisharajendran_e7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4235219%2F2c570380-7857-49a8-bf5d-49c784379bea.png</url>
      <title>DEV Community: ashis jenisharajendran</title>
      <link>https://dev.to/ashis_jenisharajendran_e7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashis_jenisharajendran_e7"/>
    <language>en</language>
    <item>
      <title>Database Indexing 101: How to Stop Slow SQL Queries Before They Kill Your App</title>
      <dc:creator>ashis jenisharajendran</dc:creator>
      <pubDate>Mon, 09 Nov 2026 13:14:55 +0000</pubDate>
      <link>https://dev.to/ashis_jenisharajendran_e7/database-indexing-101-how-to-stop-slow-sql-queries-before-they-kill-your-app-26mn</link>
      <guid>https://dev.to/ashis_jenisharajendran_e7/database-indexing-101-how-to-stop-slow-sql-queries-before-they-kill-your-app-26mn</guid>
      <description>&lt;p&gt;Have you ever deployed a feature that worked fine in development, only to watch it grind your production database to a halt once real users started pouring in? 9 times out of 10, the culprit is missing or improper database indexing.&lt;/p&gt;

&lt;p&gt;Let's demystify how indexing works under the hood and how you can write queries that scale effortlessly.&lt;/p&gt;

&lt;p&gt;How Databases Read Data Without an Index&lt;br&gt;
Imagine a database table as a 500-page physical book with no index at the back. If you want to find a specific user by email (SELECT * FROM users WHERE email = '&lt;a href="mailto:alice@example.com"&gt;alice@example.com&lt;/a&gt;'), the database has to perform a Sequential Scan (Full Table Scan). It starts reading page 1, row 1, and checks every single row until it finds a match.&lt;/p&gt;

&lt;p&gt;For 100 rows, this takes microseconds. For 10,000,000 rows, your CPU spikes, and your query takes seconds.&lt;/p&gt;

&lt;p&gt;How an Index Changes the Game&lt;br&gt;
An index is a separate data structure (typically a B-Tree) managed by the database.&lt;/p&gt;

&lt;p&gt;The Analogy: Think of an index like the alphabetical index at the back of a textbook. Instead of scanning every page, you look up the key in the index, find the exact page number, and jump straight to it.&lt;/p&gt;

&lt;p&gt;The Trade-off: While indexes make reads (SELECT) blazing fast, they add overhead to writes (INSERT, UPDATE, DELETE) because the database has to update the index tree every time data changes. Index wisely!&lt;/p&gt;

&lt;p&gt;Best Practices for Designing Indexes&lt;br&gt;
Strategy    When to Use What to Avoid&lt;br&gt;
High-Cardinality Columns    Columns with unique or highly distinct values (e.g., user_id, email, uuid). Low-cardinality columns with very few unique values (e.g., a status column with just true or false).&lt;br&gt;
Composite (Multi-Column) Indexes    When you frequently filter by multiple columns together (e.g., WHERE status = 'active' AND created_at &amp;gt; ...).   Putting columns in the wrong order. The leftmost prefix rule applies; put the most selective column first.&lt;br&gt;
Foreign Keys    Always index your foreign key columns (company_id, author_id) to speed up JOIN operations.  Over-indexing. Creating an index for every single column will bloat your disk space and slow down write operations.&lt;br&gt;
Real-World Example: Using EXPLAIN&lt;br&gt;
Before blindly adding indexes, use your database's EXPLAIN query planner prefix to see what it's doing:&lt;/p&gt;

&lt;p&gt;SQL&lt;br&gt;
EXPLAIN SELECT * FROM orders WHERE customer_id = 42;&lt;br&gt;
If the output says Seq Scan on orders, your database is reading the whole table. Once you add an index:&lt;/p&gt;

&lt;p&gt;SQL&lt;br&gt;
CREATE INDEX idx_orders_customer_id ON orders(customer_id);&lt;br&gt;
Running EXPLAIN again will show Index Scan using idx_orders_customer_id, confirming your query is now optimized.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Database tuning doesn't have to be black magic. By identifying your most frequent query patterns, utilizing B-Tree indexes on high-cardinality and foreign key columns, and leveraging EXPLAIN, you can keep your application fast and responsive under heavy loads.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>database</category>
      <category>performance</category>
      <category>sql</category>
    </item>
    <item>
      <title>Mastering Core Web Vitals: A Practical Guide to Boosting Frontend Performance</title>
      <dc:creator>ashis jenisharajendran</dc:creator>
      <pubDate>Mon, 09 Nov 2026 13:11:42 +0000</pubDate>
      <link>https://dev.to/ashis_jenisharajendran_e7/mastering-core-web-vitals-a-practical-guide-to-boosting-frontend-performance-439d</link>
      <guid>https://dev.to/ashis_jenisharajendran_e7/mastering-core-web-vitals-a-practical-guide-to-boosting-frontend-performance-439d</guid>
      <description>&lt;p&gt;hen building modern web applications, functionality is only half the battle. If your site takes more than three seconds to load or feels sluggish when clicking around, users will bounce—and search engines will penalize your rankings.&lt;/p&gt;

&lt;p&gt;Enter Core Web Vitals: Google’s standardized metrics for measuring real-world user experience. In this guide, we will break down what these metrics mean and how you can optimize your frontend code to ace them.&lt;/p&gt;

&lt;p&gt;Understanding the Core Trio&lt;br&gt;
Google focuses on three primary pillars of user experience:&lt;/p&gt;

&lt;p&gt;LCP (Largest Contentful Paint): Measures loading performance. It marks the point when the main page content has likely loaded. A good LCP is under 2.5 seconds.&lt;/p&gt;

&lt;p&gt;INP (Interaction to Next Paint): Measures responsiveness. It assesses how long the page takes to react when a user interacts with it (clicks, taps, or key presses). A good INP is under 200 milliseconds.&lt;/p&gt;

&lt;p&gt;CLS (Cumulative Layout Shift): Measures visual stability. It tracks unexpected layout shifts while the page is loading (e.g., when an ad pops in and pushes your text down). A good CLS score is less than 0.1.&lt;/p&gt;

&lt;p&gt;Step-by-Step Optimization Techniques&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Optimize Your LCP (Loading)
Focus on the critical rendering path: Compress and modernize images. Serve images in next-gen formats like WebP or AVIF and use srcset to serve appropriately sized images based on the user's viewport.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Preload Critical Assets: Add  tags for your primary hero images, critical fonts, or above-the-fold stylesheets so the browser fetches them immediately.&lt;/p&gt;

&lt;p&gt;Streamline Server Response Times: Leverage a Content Delivery Network (CDN) and caching to keep your Time to First Byte (TTFB) low.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Improve INP (Responsiveness)
Keep the main thread unblocked: JavaScript runs on a single thread. If a script takes more than 50ms to execute, it blocks user input. Use requestIdleCallback or break tasks up using setTimeout.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Defer Non-Essential JavaScript: Load analytics, tracking scripts, and heavy widgets asynchronously using async or defer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Eliminate CLS (Visual Stability)
Prevent content from jumping around: Always include explicit width and height attributes on your &lt;img&gt; and  elements, or reserve space using CSS Aspect Ratios (aspect-ratio: 16/9).
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Avoid Dynamic Content Injection: Never insert content above existing content dynamically unless it's a direct response to a user action like a click.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Improving your Core Web Vitals isn't just about chasing a high score on Lighthouse—it results in a tangible boost in conversion rates, user retention, and SEO rankings. Pick one metric to audit today, measure your baseline, and start optimizing!&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>performance</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
