Query optimization (dspy): - Replace UNION ALL + sort with two parallel queries (asyncio.gather) that each use (userid, use_time) composite index - Python-side merge-sort of two pre-sorted sequences O(n) - Concurrent FileStorage reads for ioinfo (asyncio.gather) Indexes (models/*.json + /tmp/llmage_history_indexes.sql): - llmusage: add idx_llmusage_userid_usetime (userid, use_time) - llmusage_history: add idx_lh_userid_usetime (userid, use_time) (was missing userid index entirely - main bottleneck)
148 lines
3.3 KiB
JSON
148 lines
3.3 KiB
JSON
{
|
|
"summary": [
|
|
{
|
|
"name": "llmusage",
|
|
"title": "模型使用",
|
|
"primary": [
|
|
"id"
|
|
],
|
|
"catelog": "entity"
|
|
}
|
|
],
|
|
"fields": [
|
|
{
|
|
"name": "id",
|
|
"title": "id",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "llmid",
|
|
"title": "模型id",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "use_date",
|
|
"title": "使用日期",
|
|
"type": "date"
|
|
},
|
|
{
|
|
"name": "use_time",
|
|
"title": "使用时间",
|
|
"type": "timestamp"
|
|
},
|
|
{
|
|
"name": "userid",
|
|
"title": "用户id",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "usages",
|
|
"title": "使用信息",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"name": "ioinfo",
|
|
"title": "交互内容",
|
|
"type": "text"
|
|
},
|
|
{
|
|
"name": "transno",
|
|
"title": "交易号",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "responsed_seconds",
|
|
"title": "响应时间",
|
|
"type": "float",
|
|
"length": 18,
|
|
"dec": 2
|
|
},
|
|
{
|
|
"name": "finish_seconds",
|
|
"title": "结束时间",
|
|
"type": "float",
|
|
"length": 18,
|
|
"dec": 2
|
|
},
|
|
{
|
|
"name": "status",
|
|
"title": "状态",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "taskid",
|
|
"title": "任务号",
|
|
"type": "str",
|
|
"length": 256
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"title": "交易金额",
|
|
"type": "float",
|
|
"length": 18,
|
|
"dec": 2
|
|
},
|
|
{
|
|
"name": "cost",
|
|
"title": "交易成本",
|
|
"type": "float",
|
|
"length": 18,
|
|
"dec": 2
|
|
},
|
|
{
|
|
"name": "userorgid",
|
|
"title": "用户机构id",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "ownerid",
|
|
"title": "模型机构id",
|
|
"type": "str",
|
|
"length": 32
|
|
},
|
|
{
|
|
"name": "accounting_status",
|
|
"title": "记账状态",
|
|
"type": "str",
|
|
"length": 32
|
|
}
|
|
],
|
|
"indexes": [
|
|
{
|
|
"name": "idx1",
|
|
"idxtype": "unique",
|
|
"idxfields": [
|
|
"taskid"
|
|
]
|
|
},
|
|
{
|
|
"name": "idx2",
|
|
"idxtype": "index",
|
|
"idxfields": [
|
|
"userid"
|
|
]
|
|
},
|
|
{
|
|
"name": "idx_llmusage_accounting",
|
|
"idxtype": "index",
|
|
"idxfields": [
|
|
"accounting_status",
|
|
"use_date"
|
|
]
|
|
},
|
|
{
|
|
"name": "idx_llmusage_userid_usetime",
|
|
"idxtype": "index",
|
|
"idxfields": [
|
|
"userid",
|
|
"use_time"
|
|
]
|
|
}
|
|
]
|
|
} |