К основному содержанию
скилл CX Codex

laravel-database-optimization — скилл для Claude Code

Набор правил по запросам Eloquent, индексам и кэшу Redis для Laravel 13. Пригодится, когда проект тормозит на выборках или миграции ломают прод.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add AsyrafHussin/agent-skills --skill laravel-database-optimization -a claude-code
Открыть на GitHub

Что делает laravel-database-optimization

Скилл содержит 33 правила в 9 категориях: производительность запросов и N+1, стратегии индексирования, оптимизация Eloquent, кэширование через Redis, пагинация и большие выборки, транзакции и блокировки, миграции, отладка запросов, соглашения об именовании. Каждое правило лежит отдельным файлом в rules/ с примерами «плохо» и «хорошо».

Агент подхватывает скилл, когда вы пишете запросы через query builder, чините N+1, добавляете индексы в миграции или разбираете медленный запрос через EXPLAIN. Внутри есть готовые образцы: Model::preventLazyLoading(), Cache::remember с TTL, cursorPaginate, withCount, chunkById, короткие транзакции через DB::transaction.

Скилл рассчитан на Laravel 13.x и PHP 8.3+. На более старых версиях часть примеров не соберётся, потому что синтаксис и API там другие. Установка идёт через npx skills add — под конкретную платформу флаг -a меняется.

Какие задачи решает

  • убрать N+1 в списке с отношениями
  • добавить составной индекс под частый фильтр
  • закэшировать тяжёлую выборку в Redis
  • переписать пагинацию на cursor для большой таблицы
  • провести миграцию без блокировки таблицы

Примеры запросов агенту

  • Убери N+1 в выборке постов с комментариями, покажи вариант с eager loading
  • Добавь составной индекс в миграцию для фильтра по status и created_at
  • Закэшируй топ-10 постов по комментариям через Cache::remember на час

Как установить laravel-database-optimization

1Через Skills CLI (Vercel)

npx skills add AsyrafHussin/agent-skills --skill laravel-database-optimization -a claude-code

2Вручную: положить файлы

~/.claude/skills/laravel-database-optimization/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/laravel-database-optimization/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о laravel-database-optimization

Как установить laravel-database-optimization в Claude Code?

Выполните npx skills add AsyrafHussin/agent-skills --skill laravel-database-optimization -a claude-code. Файл скилла окажется по пути ~/.claude/skills/laravel-database-optimization/SKILL.md.

Что делает laravel-database-optimization?

Даёт агенту 33 правила по запросам Eloquent, индексам, кэшу Redis, пагинации, транзакциям и миграциям в Laravel. Правила разложены по 9 категориям с приоритетами от CRITICAL до MEDIUM.

Какая версия Laravel и PHP нужна?

Скилл написан под Laravel 13.x и PHP 8.3+. Примеры в правилах опираются на этот синтаксис.

Исходный текст

SKILL.md · MIT
---
name: laravel-database-optimization
description: 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.
license: MIT
metadata:
  author: agent-skills
  version: "1.1.1"
---

# 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

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Query Performance & N+1 | CRITICAL | `query-` |
| 2 | Indexing Strategies | CRITICAL | `index-` |
| 3 | Eloquent Optimization | HIGH | `eloquent-` |
| 4 | Caching with Redis | HIGH | `cache-` |
| 5 | Pagination & Large Datasets | HIGH | `data-` |
| 6 | Transactions & Locking | HIGH | `lock-` |
| 7 | Migrations | HIGH | `migrate-` |
| 8 | Query Debugging | MEDIUM | `debug-` |
| 9 | Naming & Structure | HIGH | `naming-` |

## 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
<?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
<?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
<?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
<?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
<?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
<?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

- [Laravel Eloquent](https://laravel.com/docs/13.x/eloquent)
- [Laravel Queries](https://laravel.com/docs/13.x/queries)
- [Laravel Cache](https://laravel.com/docs/13.x/cache)
- [Laravel Pagination](https://laravel.com/docs/13.x/pagination)
- [Laravel Migrations](https://laravel.com/docs/13.x/migrations)
- [Laravel Redis](https://laravel.com/docs/13.x/redis)

## Full Compiled Document

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

© agent-skills · MIT · AsyrafHussin/agent-skills

Похожие скиллы

Все скиллы по теме «Данные и базы» →
xlsx официальный anthropics Работает с табличными файлами: создаёт, читает, правит и преобразует книги. Подходит, когда итогом должен стать файл Excel или другой табличный формат. 187 223установок google-agents-cli-observability официальный Google Помогает настроить трассировку и сбор данных о работе ИИ-агентов, включая агентов на ADK. Пригодится, когда нужно разбирать выполнение запросов или наблюдать за агентом после развёртывания. CX Codex +1 511 300установок caveman-evidence-review JuliusBrussee Скилл читает данные Caveman Cloud о расходах LLM, трассах и маршрутизации. Подходит для проверки того, куда уходит бюджет проекта. CX Codex +1 104 500установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок performance-optimization addyosmani Скилл для агентов ИИ-кодинга: сначала замеряет, потом чинит узкое место — от Core Web Vitals до N+1 запросов и индексов в базе. CX Codex +1 65 200установок supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок

Из того же набора22

laravel-best-practices Скилл с 31 правилом по Laravel 13: архитектура, Eloquent, контроллеры, валидация. Пригодится, когда агент пишет код на PHP. CX Codex +1 2 300установок laravel-inertia-react Скилл с готовыми правилами для страниц Inertia, форм на useForm и общих данных в связке Laravel и React. CX Codex +1 1 900установок clean-code-principles Скилл для ревью архитектуры и качества кода: SOLID, DRY, KISS, паттерны проектирования. Пригодится при рефакторинге и обсуждении решений по дизайну. CX Codex +1 1 800установок typescript-react-patterns Скилл с 33 правилами типизации React на TypeScript: пропсы, хуки, события, refs, дженерики и контекст. Пригодится, когда агент пишет компоненты и лезет в типы. CX Codex +1 1 100установок laravel-owasp-security Проверяет код Laravel 13 и React/Inertia.js на уязвимости OWASP Top 10 или служит инструкцией при разработке авторизации, платежей и API. CX Codex +1 990установок tailwind-best-practices Набор правил по Tailwind CSS v3.4+ и v4 для ИИ-агентов. Помогает писать адаптивную вёрстку и переносить проекты на четвёртую версию фреймворка. CX Codex +1 941установок api-design-patterns Скилл с 38 правилами проектирования REST API: ресурсы, ошибки, безопасность, пагинация, версионирование. Пригодится, когда агент пишет или проверяет эндпоинты. CX Codex +1 929установок laravel-testing Скилл учит ассистента писать тесты для Laravel 13 на Pest 4 или PHPUnit 12 с учётом фабрик моделей и моков сервисов. CX Codex +1 907установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой