热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为数据库管理和数据检索场景设计,能够根据用户指定的数据库类型、检索方法和工具,生成专业、准确的数据检索指导方案。提示词采用结构化工作流程,涵盖需求分析、方法选择、指令生成和优化建议四个关键环节,确保输出的检索指令具备技术精确性、操作可行性和安全性考量。适用于数据库管理员、数据分析师和开发人员在不同数据库环境下进行高效数据检索的场景,能够显著提升数据查询的准确性和效率。
说明:
-- 建议先在会话中设置时区(如果 created_at 为 UTC)
SET SESSION time_zone = '+00:00';
-- 一致性只读事务
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION READ ONLY;
-- 可选:查看执行计划以确认走索引
EXPLAIN ANALYZE
SELECT
user_id,
email,
created_at AS registered_at,
source_channel
FROM users
WHERE email_verified = 0
AND created_at >= (UTC_TIMESTAMP() - INTERVAL 7 DAY) -- 若使用本地时区,改为 NOW()
ORDER BY created_at DESC, user_id DESC
LIMIT 500;
COMMIT;
-- 示例DDL:请先在测试环境验证,确认无冲突后再由DBA上线
-- 该索引支持 WHERE email_verified=0 AND created_at范围过滤,并避免或减少 filesort
ALTER TABLE users
ADD INDEX idx_users_emailver_createdat_uid (email_verified, created_at, user_id);
-- 覆盖索引示例(体积较大,慎用)
ALTER TABLE users
ADD INDEX idx_users_emailver_createdat_cov (email_verified, created_at, user_id, email, source_channel);
说明:以下请求在 24 小时窗口内进行过滤,按时间倒序返回 10 条原始样例,同时计算 Top10 error_code 的计数。考虑到国内常见东八区,可在 range 中配置 time_zone(若 ES 集群使用 UTC 或您希望使用 UTC,则可移除 time_zone)。
cURL 示例:
curl -s -X POST "https://
-H "Content-Type: application/json"
-H "Authorization: ApiKey <your_api_key>"
-d '{
"track_total_hits": true,
"size": 10,
"sort": [
{ "@timestamp": { "order": "desc" } }
],
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"gte": "now-24h",
"lt": "now",
"time_zone": "+08:00"
}
}
},
{ "term": { "status.keyword": "failed" } },
{ "range": { "amount": { "gt": 0 } } }
]
}
},
"aggs": {
"top_error_code": {
"terms": {
"field": "error_code.keyword",
"size": 10,
"order": { "_count": "desc" },
"missing": "MISSING"
}
}
}
}'
Kibana Dev Tools 控制台(如无需鉴权与协议): GET payment-*/_search?ignore_unavailable=true&allow_no_indices=true { "track_total_hits": true, "size": 10, "sort": [ { "@timestamp": { "order": "desc" } } ], "query": { "bool": { "filter": [ { "range": { "@timestamp": { "gte": "now-24h", "lt": "now", "time_zone": "+08:00" } } }, { "term": { "status.keyword": "failed" } }, { "range": { "amount": { "gt": 0 } } } ] } }, "aggs": { "top_error_code": { "terms": { "field": "error_code.keyword", "size": 10, "order": { "_count": "desc" }, "missing": "MISSING" } } } }
可选优化(若仅需关键字段而非完整原始 _source,可加快传输并减少内存占用):
如需把结果转为可直接用于告警的结构(例如只返回 top N 的 error_code + 计数与 total),可在当前检索基础上增加对返回 JSON 的二次处理;如需我输出一个 jq/脚本示例可继续告知。
检索需求概述
数据库环境说明
具体检索指令
说明:
聚合管道(MongoDB 5.0+,mongosh中执行;根据实际字段名调整):
// 近30天起始时间
const since = new Date(Date.now() - 30*24*60*60*1000);
db.login_events.aggregate([
// 1) 近30天过滤
{ $match: { ts: { $gte: since } } },
// 2) 标记黑名单(使用集合 ip_blacklist,若无请见下方“无集合黑名单写法”)
{ $lookup: {
from: "ip_blacklist",
localField: "ip",
foreignField: "ip",
as: "bl"
}},
{ $addFields: { is_blacklisted: { $gt: [ { $size: "$bl" }, 0 ] } } },
{ $project: { bl: 0 } },
// 3) 按(user_id, ip, ts)排序,为窗口函数准备
{ $sort: { user_id: 1, ip: 1, ts: 1 } },
// 4) 窗口函数:计算“成功次数”的前缀和作为失败序列的分组键(resetGroup)
{ $setWindowFields: {
partitionBy: { user_id: "$user_id", ip: "$ip" },
sortBy: { ts: 1 },
output: {
resetGroup: {
$sum: {
$cond: [ { $eq: [ "$status", "success" ] }, 1, 0 ]
},
window: { documents: [ "unbounded", "current" ] }
}
}
}},
// 5) 我们只关心失败事件来构成“连续失败序列”
{ $match: { status: "failure" } },
// 6) 聚合得到每个失败序列(被success分隔)的长度与最后失败时间
{ $group: {
_id: { user_id: "$user_id", ip: "$ip", resetGroup: "$resetGroup" },
failure_count: { $sum: 1 },
last_failure_time: { $max: "$ts" },
is_blacklisted: { $max: "$is_blacklisted" }
}},
// 7) 对每个(user_id, ip)选出“最大连续失败序列”(同长度取最后失败时间更晚的)
{ $sort: { "_id.user_id": 1, "_id.ip": 1, failure_count: -1, last_failure_time: -1 } },
{ $group: {
_id: { user_id: "$_id.user_id", ip: "$_id.ip" },
failure_count: { $first: "$failure_count" },
last_failure_time: { $first: "$last_failure_time" },
is_blacklisted: { $first: "$is_blacklisted" }
}},
// 8) 高风险筛选:IP在黑名单 或 最大连续失败次数≥5
{ $match: { $or: [ { is_blacklisted: true }, { failure_count: { $gte: 5 } } ] } },
// 9) 结果整形、排序与限制
{ $project: {
_id: 0,
user_id: "$_id.user_id",
ip: "$_id.ip",
failure_count: 1,
last_failure_time: 1
}},
{ $sort: { failure_count: -1, last_failure_time: -1 } },
{ $limit: 2000 }
], { allowDiskUse: true });
若无黑名单集合(在mongosh中以数组变量传入):
const since = new Date(Date.now() - 30*24*60*60*1000);
const blackIps = [ /* "1.2.3.4", "5.6.7.8", ... */ ];
db.login_events.aggregate([
{ $match: { ts: { $gte: since } } },
{ $addFields: { is_blacklisted: { $in: [ "$ip", blackIps ] } } },
{ $sort: { user_id: 1, ip: 1, ts: 1 } },
{ $setWindowFields: {
partitionBy: { user_id: "$user_id", ip: "$ip" },
sortBy: { ts: 1 },
output: {
resetGroup: {
$sum: { $cond: [ { $eq: [ "$status", "success" ] }, 1, 0 ] },
window: { documents: [ "unbounded", "current" ] }
}
}
}},
{ $match: { status: "failure" } },
{ $group: {
_id: { user_id: "$user_id", ip: "$ip", resetGroup: "$resetGroup" },
failure_count: { $sum: 1 },
last_failure_time: { $max: "$ts" },
is_blacklisted: { $max: "$is_blacklisted" }
}},
{ $sort: { "_id.user_id": 1, "_id.ip": 1, failure_count: -1, last_failure_time: -1 } },
{ $group: {
_id: { user_id: "$_id.user_id", ip: "$_id.ip" },
failure_count: { $first: "$failure_count" },
last_failure_time: { $first: "$last_failure_time" },
is_blacklisted: { $first: "$is_blacklisted" }
}},
{ $match: { $or: [ { is_blacklisted: true }, { failure_count: { $gte: 5 } } ] } },
{ $project: { _id: 0, user_id: "$_id.user_id", ip: "$_id.ip", failure_count: 1, last_failure_time: 1 } },
{ $sort: { failure_count: -1, last_failure_time: -1 } },
{ $limit: 2000 }
], { allowDiskUse: true });
执行步骤说明
db.login_events.createIndex({ user_id: 1, ip: 1, ts: 1 });
// 可选:若ts过滤很强、并发低,可并建 { ts: 1 } 辅助过滤
db.ip_blacklist.createIndex({ ip: 1 }, { unique: true });
// 在聚合末尾追加$merge
{ $merge: { into: "tmp_high_risk_login_events_30d", whenMatched: "replace", whenNotMatched: "insert" } }
然后执行导出:
mongoexport \
--uri="mongodb://<user>:<pass>@<host>/<db>?authSource=<db>" \
--collection=tmp_high_risk_login_events_30d \
--type=csv \
--fields=user_id,ip,failure_count,last_failure_time \
--out=high_risk_login_events_last30d.csv
导出完成后可清理临时集合:
db.tmp_high_risk_login_events_30d.drop();
预期结果描述
注意事项提醒
把“我需要什么数据”快速转化为“马上可执行的检索方案”。该提示词面向多数据库环境,帮助数据分析师、开发者与DBA在最短时间内获得清晰、可靠、可落地的查询指令与操作步骤,减少试错、规避风险、提升检索命中率与执行速度。
快速生成符合环境的检索方案与脚本,定位慢查、排查锁等待,制定安全查询模板,降低线上风险并沉淀操作手册。
根据业务口径一键产出指标拉取语句与校验步骤,按日周月批量复用,减少与技术反复沟通,提升报表制作和洞察效率。
在开发、测试、生产多环境高效定位数据,构造测试样本,验证业务逻辑与回归问题,缩短联调与上线周期。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期