MCPInstall

laravel-database-optimization

Laravel database optimization patterns. Use when writing Eloquent queries, creating migrations, configuring caching, debugging slow queries, or optimizing database performance. Triggers on tasks involving N+1 queries, indexing, Redis caching, pagination, or database transactions.

Installs
1K
Last 24h
+13
Trending rank
#7570
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/asyrafhussin/agent-skills --skill laravel-database-optimization
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads laravel-database-optimization automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Laravel Database Optimization

Comprehensive database optimization guide for Laravel 13 applications. Contains 33 rules across 9 categories for writing performant database queries, proper indexing, efficient caching, naming conventions, and debugging slow queries in Laravel 13.

Metadata

  • Version: 1.1.0
  • Framework: Laravel 13.x
  • PHP: 8.3+

When to Apply

Reference these guidelines when:

  • Writing Eloquent queries or using the query builder
  • Diagnosing and fixing N+1 query problems
  • Adding database indexes to migrations
  • Implementing Redis or cache-based optimizations
  • Paginating or processing large datasets
  • Wrapping operations in database transactions
  • Creating or modifying migrations for production databases
  • Debugging slow queries with EXPLAIN or Laravel Debugbar

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Query Performance & N+1CRITICALquery-
2Indexing StrategiesCRITICALindex-
3Eloquent OptimizationHIGHeloquent-
4Caching with RedisHIGHcache-
5Pagination & Large DatasetsHIGHdata-
6Transactions & LockingHIGHlock-
7MigrationsHIGHmigrate-
8Query DebuggingMEDIUMdebug-
9Naming & StructureHIGHnaming-

Quick Reference

1. Query Performance & N+1 (CRITICAL)

  • query-eager-loading - Use eager loading to eliminate N+1 queries
  • query-prevent-lazy-loading - Prevent lazy loading in development
  • query-auto-eager-loading - Configure automatic eager loading on models
  • query-select-columns - Select only needed columns instead of SELECT *

2. Indexing Strategies (CRITICAL)

  • index-foreign-keys - Index all foreign key columns
  • index-composite-indexes - Create composite indexes for multi-column queries
  • index-covering-indexes - Use covering indexes for read-heavy queries
  • index-full-text - Use full-text indexes for search functionality

3. Eloquent Optimization (HIGH)

  • eloquent-query-builder-hot-paths - Use query builder for performance-critical paths
  • eloquent-with-count-aggregates - Use withCount instead of loading relations to count
  • eloquent-subquery-selects - Use subquery selects to avoid extra queries
  • eloquent-where-has-optimization - Optimize whereHas with whereIn subqueries

4. Caching with Redis (HIGH)

  • cache-remember - Use Cache::remember for expensive queries
  • cache-invalidation - Invalidate cache on model changes
  • cache-tags - Use cache tags for group invalidation
  • cache-ttl - Set appropriate TTL values for cached data

5. Pagination & Large Datasets (HIGH)

  • data-cursor-pagination - Use cursor pagination for large datasets
  • data-chunk-by-id - Process large datasets with chunkById
  • data-cursor-iteration - Use lazy cursors for memory-efficient iteration
  • data-avoid-unbounded - Never use unbounded queries on large tables

6. Transactions & Locking (HIGH)

  • lock-short-transactions - Keep transactions short and focused
  • lock-deadlock-retry - Implement deadlock retry logic
  • lock-pessimistic-locking - Use pessimistic locking for critical updates

7. Migrations (HIGH)

  • migrate-zero-downtime - Write zero-downtime migrations
  • migrate-concurrent-indexes - Create indexes concurrently in production
  • migrate-safe-column-additions - Add columns safely without locking tables

8. Query Debugging (MEDIUM)

  • debug-explain-analyze - Use EXPLAIN ANALYZE to understand query plans
  • debug-laravel-debugbar - Use Laravel Debugbar to find query bottlenecks
  • debug-slow-query-log - Enable and monitor slow query logs

9. Naming & Structure (HIGH)

  • naming-tables - Table naming conventions (plural snake_case, pivot alphabetical)
  • naming-columns - Column naming conventions (FKs, booleans, timestamps, polymorphic)
  • naming-relationships - Relationship method naming (singular/plural matching)
  • naming-migrations - Migration and index naming conventions

Essential Patterns

Prevent Lazy Loading in Development

<?php

namespace App\Providers;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        Model::preventLazyLoading(!app()->isProduction());
    }
}

Cache Expensive Queries with Redis

<?php

use Illuminate\Support\Facades\Cache;

// Cache a query result for 1 hour (3600 seconds)
$popularPosts = Cache::remember('posts:popular', 3600, fn () =>
    Post::query()
        ->withCount('comments')
        ->orderByDesc('comments_count')
        ->take(10)
        ->get()
);

Cursor Pagination for Large Datasets

<?php

// Cursor pagination — efficient for infinite scroll and large tables
$posts = Post::query()
    ->where('published_at', '<=', now())
    ->orderByDesc('published_at')
    ->cursorPaginate(15);

Aggregate Counts Without Loading Relations

<?php

// Instead of loading all posts just to count them
$users = User::withCount('posts')->get();

foreach ($users as $user) {
    echo "{$user->name} has {$user->posts_count} posts";
}

Process Large Datasets with chunkById

<?php

// Memory-efficient processing of large tables
User::query()
    ->where('last_login_at', '<', now()->subYear())
    ->chunkById(1000, function ($users) {
        foreach ($users as $user) {
            $user->update(['status' => 'inactive']);
        }
    });

Short Database Transactions

<?php

use Illuminate\Support\Facades\DB;

// Keep transactions short and focused
DB::transaction(function () {
    $order = Order::create([
        'user_id' => auth()->id(),
        'total' => $this->calculateTotal(),
    ]);

    $order->items()->createMany($this->cartItems());

    $order->user->decrement('credits', $order->total);
});

How to Use

Read individual rule files for detailed explanations and code examples:

rules/query-eager-loading.md
rules/index-composite-indexes.md
rules/cache-remember.md
rules/_sections.md

Each rule file contains:

  • YAML frontmatter with metadata (title, impact, tags)
  • Brief explanation of why it matters
  • Bad Example with explanation
  • Good Example with explanation
  • Laravel 13 and PHP 8.3 specific context and references

References

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

FAQ

What does the laravel-database-optimization skill do?

Laravel database optimization patterns. Use when writing Eloquent queries, creating migrations, configuring caching, debugging slow queries, or optimizing database performance. Triggers on tasks involving N+1 queries, indexing, Redis caching, pagination, or database transactions.

How do I install laravel-database-optimization?

Run npx skills add https://github.com/asyrafhussin/agent-skills --skill laravel-database-optimization in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/laravel-database-optimization/ (personal) or .claude/skills/laravel-database-optimization/ (project).

Which AI agents can use laravel-database-optimization?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is laravel-database-optimization safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains laravel-database-optimization?

It is published by asyrafhussin in asyrafhussin/agent-skills. It has 1,046 recorded installs.

More from asyrafhussin/agent-skills

View all →

php-best-practices

asyrafhussin/agent-skills

PHP 8.x modern patterns, PSR standards, and SOLID principles. Use when reviewing PHP code, checking type safety, auditing code quality, or ensuring PHP best practices. Triggers on "review PHP", "check PHP code", "audit PHP", or "PHP best practices".

Backend & APIs3.7K installs

react-vite-best-practices

asyrafhussin/agent-skills

React and Vite performance optimization guidelines. Use when writing, reviewing, or optimizing React components built with Vite. Triggers on tasks involving Vite configuration, build optimization, code splitting, lazy loading, HMR, bundle size, or React performance.

Frontend & Design2.9K installs

laravel-best-practices

asyrafhussin/agent-skills

Laravel 13 conventions and best practices. Use when creating controllers, models, migrations, validation, services, or structuring Laravel applications. Triggers on tasks involving Laravel architecture, Eloquent, database, API development, or PHP patterns.

Backend & APIs2.3K installs

laravel-inertia-react

asyrafhussin/agent-skills

Laravel + Inertia.js + React integration patterns. Use when building Inertia page components, handling forms with useForm, managing shared data, or implementing persistent layouts. Triggers on tasks involving Inertia.js, page props, form handling, or Laravel React integration.

clean-code-principles

asyrafhussin/agent-skills

SOLID principles, design patterns, DRY, KISS, and clean code fundamentals. Use when reviewing architecture, checking code quality, refactoring, or discussing design decisions. Triggers on "review architecture", "check code quality", "SOLID principles", "design patterns", or "clean code".

typescript-react-patterns

asyrafhussin/agent-skills

TypeScript best practices for React development. Use when writing typed React components, hooks, events, refs, or generic components. Triggers on tasks involving TypeScript errors, type definitions, props typing, or type-safe React patterns.

Frontend & Design1.1K installs

Popular data & databases skills

View category →

Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.

OfficialData & Databases462.2K installs

prisma-client-api

prisma/skills

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

OfficialData & Databases393.5K installs

Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.

OfficialData & Databases392.3K installs

prisma-cli

prisma/skills

Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.

OfficialData & Databases390.8K installs

prisma-postgres

prisma/skills

Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.

OfficialData & Databases384.4K installs

Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.

OfficialData & Databases378.9K installs