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

surrealql-performance — скилл для Claude Code: ускоряет запросы

Скилл для ИИ-агентов, который подсказывает, как ускорить запросы SurrealDB: структура record ID, индексы, вычисляемые поля. Пригодится, когда запрос тормозит или сканирует лишние записи.

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

Что делает surrealql-performance

Скилл разбирает три вещи: как проектировать record ID и ключи под доступ к данным, как выбирать индексы и как не пересчитывать одно и то же на каждом чтении. Внутри — три справочника: references/keys.md про локальность и range-сканы, references/indexing.md про типы индексов и порядок полей в составном, references/computed-fields.md про вычисляемые поля, вьюхи и события.

Главная мысль простая: record ID хранятся в отсортированном порядке, поэтому самый избирательный компонент ставят первым, а диапазон берут через SELECT * FROM person:1..1000, а не через WHERE по ID. Индекс нужен только там, где вы фильтруете, сортируете или джойните — каждый лишний добавляет стоимость записи. Проверять, что индекс реально используется, скилл советует через EXPLAIN или EXPLAIN FULL.

Скилл рассчитан на последнюю стабильную версию SurrealDB, а синтаксис вроде диапазонов записей, COMPUTED и опций FULLTEXT просит сверять с документацией и проверять примеры через surreal validate. Если вы застряли на старой версии, часть примеров может не пройти — это повод проверить синтаксис до того, как тащить его в прод.

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

  • понять, почему запрос сканирует всю таблицу
  • разложить record ID так, чтобы range-сканы работали
  • выбрать между обычным, UNIQUE, FULLTEXT и векторным индексом
  • убедиться через EXPLAIN, что индекс действительно задействован
  • решить, хранить вычисляемое значение или считать на чтении

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

  • Запрос по таблице person идёт медленно, посмотри план и скажи, какой индекс нужен
  • Помоги спроектировать record ID для погодных записей, чтобы выборки по городу и дате шли по ключу
  • Стоит ли вынести этот агрегат в DEFINE TABLE ... AS SELECT или считать на чтении?

Как установить surrealql-performance

1Через Skills CLI (Vercel)

npx skills add surrealdb/agent-skills --skill surrealql-performance -a claude-code

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

~/.claude/skills/surrealql-performance/SKILL.md

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

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

Вопросы о surrealql-performance

Как установить surrealql-performance в Claude?

Выполните npx skills add surrealdb/agent-skills --skill surrealql-performance -a claude-code. Скилл окажется в ~/.claude/skills/surrealql-performance/SKILL.md.

Что делает surrealql-performance?

Подсказывает агенту, как ускорить запросы SurrealDB: как проектировать record ID и ключи, какие индексы ставить и как проверять их использование, когда предвычислять значения.

Нужна ли определённая версия SurrealDB?

Скилл нацелен на последнюю стабильную версию. Синтаксис диапазонов записей, COMPUTED и опций FULLTEXT он советует сверять с документацией и проверять примеры через surreal validate.

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

SKILL.md · MIT
---
name: surrealql-performance
description: "Optimize SurrealDB performance through record ID and key design, indexing strategy, and computed/derived fields. Use when queries are slow, when designing record IDs for locality and range scans, choosing between standard/unique/full-text/vector indexes, verifying index usage with EXPLAIN, or deciding whether to precompute values with computed fields, views, or events. Triggers: slow query, performance, record id design, range scan, DEFINE INDEX, EXPLAIN, computed field, FUTURE, DEFINE TABLE AS SELECT."
metadata:
  author: surrealdb
  version: "0.1.0"
---

# SurrealQL Performance

Techniques for making SurrealDB queries fast: structuring record IDs and keys
for data locality, choosing and verifying the right indexes, and precomputing
values with computed fields and views instead of recomputing them on every read.

Target the **latest** stable SurrealDB release. Confirm version-sensitive syntax
(record ranges, `COMPUTED` fields, `FULLTEXT` index options) against
`https://surrealdb.com/docs`, and validate examples with `surreal validate`. See
the `surrealql` skill for version detection.

## When to use this skill

- A query is slow or scans more records than expected
- Designing record IDs to support efficient lookups and range scans
- Choosing between standard, `UNIQUE`, full-text `SEARCH`, or vector indexes
- Confirming whether an index is actually used (`EXPLAIN`)
- Deciding whether to store a derived value vs. compute it on read

## Topic map

| Topic | Reference |
| --- | --- |
| Record ID & key structuring for locality and range scans | [references/keys.md](references/keys.md) |
| Index types, composite order, verifying usage, rebuild cost | [references/indexing.md](references/indexing.md) |
| Computed fields, precomputed views, event-maintained values | [references/computed-fields.md](references/computed-fields.md) |

## Top rules

- **Design IDs for access patterns.** Record IDs are stored in sorted order. Put
  the most selective, range-friendly component first (e.g.
  `weather:['London', d'2025-02-13T05:00Z']`) so related records sit together and
  range queries avoid full-table scans. See [references/keys.md](references/keys.md).
- **Prefer record ranges over `WHERE` on the ID.** `SELECT * FROM person:1..1000`
  uses key ordering directly; filtering with `WHERE` after a full scan does not.
- **Index the fields you filter, sort, or join on — but no more.** Every index
  adds write cost. Order composite index fields from most to least selective and
  to match your query's filter/sort order. See [references/indexing.md](references/indexing.md).
- **Verify, don't assume.** Run `EXPLAIN` (or `EXPLAIN FULL`) to confirm a query
  uses the index you expect before concluding it is optimized.
- **Precompute expensive, read-heavy values.** Use computed fields, a
  `DEFINE TABLE ... AS SELECT` view, or a `DEFINE EVENT` to maintain derived data
  rather than recomputing aggregates on every query. See
  [references/computed-fields.md](references/computed-fields.md).
- **Use bound parameters.** Parameterized queries are safer and let the engine
  reuse query plans.

© surrealdb · MIT · surrealdb/agent-skills

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

Все скиллы по теме «Данные и базы» →
mongodb-performance-advisor официальный github Анализирует запросы к MongoDB в кодовой базе и собирает метрики через MCP-сервер в режиме чтения. Помогает найти медленные пайплайны и оптимизировать индексы. 223установок postgresql-database-engineering manutej Помогает проектировать схемы, выбирать индексы и оптимизировать медленные запросы в PostgreSQL. Пригодится при партиционировании больших таблиц и настройке репликации. CX Codex +1 1 800установок database-query-optimization aj-geddes Скилл разбирает медленные SQL-запросы: индексы, планы выполнения, узкие места. Пригодится, когда база тормозит или выросла нагрузка на CPU. CX Codex +1 586установок qdrant-performance-optimization qdrant Скилл-навигатор по настройке Qdrant: разводит задачи по скорости поиска, индексации и памяти и открывает нужный под-скилл. CX Codex +1 1 700установок database-performance-debugging aj-geddes Скилл помогает найти медленные SQL-запросы и разобрать их планы выполнения. Пригодится, когда приложение тормозит или база упирается в CPU. CX Codex +1 493установок magento-performance-analyst maxnorm Скилл ведёт агента по профилированию Magento 2: ищет узкие места, разбирает медленные запросы и планирует оптимизации. CX Codex +1 427установок

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

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

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