# Send MariaDB to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mariadb",
    "name": "MariaDB",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/ivangdavila/mariadb",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/mariadb",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/mariadb",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mariadb",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "mariadb",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T17:27:23.097Z",
      "expiresAt": "2026-05-06T17:27:23.097Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mariadb",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mariadb",
        "contentDisposition": "attachment; filename=\"mariadb-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "mariadb"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/mariadb"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mariadb",
    "downloadUrl": "https://openagent3.xyz/downloads/mariadb",
    "agentUrl": "https://openagent3.xyz/skills/mariadb/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mariadb/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mariadb/agent.md"
  }
}
```
## Documentation

### Character Set

Always use utf8mb4 for tables and connections—full Unicode including emoji
utf8mb4_unicode_ci for proper linguistic sorting, utf8mb4_bin for byte comparison
Set connection charset: SET NAMES utf8mb4 or in connection string
Collation mismatch in JOINs forces conversion—kills index usage

### Indexing

TEXT/BLOB columns need prefix length: INDEX (description(100))
Composite index order matters—(a, b) serves WHERE a=? but not WHERE b=?
Foreign keys auto-create index on child table—but verify with SHOW INDEX
Covering indexes: include all SELECT columns to avoid table lookup

### Sequences

CREATE SEQUENCE seq_name for guaranteed unique IDs across tables
NEXT VALUE FOR seq_name to get next—survives transaction rollback
Better than auto-increment when you need ID before insert
SETVAL(seq_name, n) to reset—useful for migrations

### System Versioning (Temporal Tables)

ALTER TABLE t ADD SYSTEM VERSIONING to track all historical changes
FOR SYSTEM_TIME AS OF '2024-01-01 00:00:00' queries past state
FOR SYSTEM_TIME BETWEEN start AND end for change history
Invisible columns row_start and row_end store validity period

### JSON Handling

JSON_VALUE(col, '$.key') extracts scalar, returns NULL if not found
JSON_QUERY(col, '$.obj') extracts object/array with quotes preserved
JSON_TABLE() converts JSON array to rows—powerful for unnesting
JSON_VALID() before insert if column isn't strictly typed

### Galera Cluster

All nodes writable—but same-row conflicts cause rollback
wsrep_sync_wait = 1 before critical reads—ensures node is synced
Keep transactions small—large transactions increase conflict probability
wsrep_cluster_size should be odd number—avoids split-brain

### Window Functions

ROW_NUMBER() OVER (PARTITION BY x ORDER BY y) for ranking within groups
LAG(col, 1) OVER (ORDER BY date) for previous row value
SUM(amount) OVER (ORDER BY date ROWS UNBOUNDED PRECEDING) for running total
CTEs with WITH cte AS (...) for readable complex queries

### Thread Pool

Enable with thread_handling=pool-of-threads—better than thread-per-connection
thread_pool_size = CPU cores for CPU-bound, higher for I/O-bound
Reduces context switching with many concurrent connections
Monitor with SHOW STATUS LIKE 'Threadpool%'

### Storage Engines

InnoDB default—ACID transactions, row locking, crash recovery
Aria for temporary tables—crash-safe replacement for MyISAM
MEMORY for caches—data lost on restart, but fast
Check engine: SHOW TABLE STATUS WHERE Name='table'

### Locking

SELECT ... FOR UPDATE locks rows until commit
LOCK TABLES t WRITE for DDL-like exclusive access—blocks all other sessions
Deadlock detection automatic—one transaction rolled back; must retry
innodb_lock_wait_timeout default 50s—lower for interactive apps

### Query Optimization

EXPLAIN ANALYZE for actual execution times (10.1+)
optimizer_trace for deep dive: SET optimizer_trace='enabled=on'
FORCE INDEX (idx) when optimizer chooses wrong index
STRAIGHT_JOIN to force join order—last resort

### Backup and Recovery

mariadb-dump --single-transaction for consistent backup without locks
mariadb-backup for hot InnoDB backup—incremental supported
Binary logs for point-in-time recovery: mysqlbinlog binlog.000001 | mariadb
Test restores regularly—backups that can't restore aren't backups

### Common Errors

"Too many connections"—increase max_connections or use connection pool
"Lock wait timeout exceeded"—find blocking query with SHOW ENGINE INNODB STATUS
"Row size too large"—TEXT/BLOB stored off-page, but row pointers have limits
"Duplicate entry for key"—check unique constraints, use ON DUPLICATE KEY UPDATE
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T17:27:23.097Z
- Expires at: 2026-05-06T17:27:23.097Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/mariadb)
- [Send to Agent page](https://openagent3.xyz/skills/mariadb/agent)
- [JSON manifest](https://openagent3.xyz/skills/mariadb/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/mariadb/agent.md)
- [Download page](https://openagent3.xyz/downloads/mariadb)