| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- -- 用量日统计汇总表迁移脚本
- -- 创建日期: 2025-08-25
- -- 功能: 创建用量统计汇总表,用于存储按日期、令牌、模型分组的统计数据
- -- MySQL 语法
- CREATE TABLE IF NOT EXISTS usage_statistics (
- id INT AUTO_INCREMENT PRIMARY KEY,
- date VARCHAR(10) NOT NULL COMMENT '统计日期(YYYY-MM-DD)',
- token_id INT NOT NULL COMMENT '令牌ID',
- token_name VARCHAR(255) NOT NULL DEFAULT '' COMMENT '令牌名称',
- model_name VARCHAR(255) NOT NULL COMMENT '模型名称',
- total_requests INT NOT NULL DEFAULT 0 COMMENT '总请求次数',
- successful_requests INT NOT NULL DEFAULT 0 COMMENT '成功请求次数',
- failed_requests INT NOT NULL DEFAULT 0 COMMENT '失败请求次数',
- total_tokens INT NOT NULL DEFAULT 0 COMMENT '总Token消耗',
- prompt_tokens INT NOT NULL DEFAULT 0 COMMENT '提示Token数',
- completion_tokens INT NOT NULL DEFAULT 0 COMMENT '完成Token数',
- total_quota INT NOT NULL DEFAULT 0 COMMENT '总额度消耗',
- created_time BIGINT NOT NULL COMMENT '创建时间戳',
- updated_time BIGINT NOT NULL COMMENT '更新时间戳',
- INDEX idx_date (date),
- INDEX idx_token_id (token_id),
- INDEX idx_model_name (model_name),
- INDEX idx_date_token_model (date, token_id, model_name),
- UNIQUE KEY uk_date_token_model (date, token_id, model_name)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用量统计汇总表';
- -- PostgreSQL 语法 (如果使用PostgreSQL)
- /*
- CREATE TABLE IF NOT EXISTS usage_statistics (
- id SERIAL PRIMARY KEY,
- date VARCHAR(10) NOT NULL,
- token_id INTEGER NOT NULL,
- token_name VARCHAR(255) NOT NULL DEFAULT '',
- model_name VARCHAR(255) NOT NULL,
- total_requests INTEGER NOT NULL DEFAULT 0,
- successful_requests INTEGER NOT NULL DEFAULT 0,
- failed_requests INTEGER NOT NULL DEFAULT 0,
- total_tokens INTEGER NOT NULL DEFAULT 0,
- prompt_tokens INTEGER NOT NULL DEFAULT 0,
- completion_tokens INTEGER NOT NULL DEFAULT 0,
- total_quota INTEGER NOT NULL DEFAULT 0,
- created_time BIGINT NOT NULL,
- updated_time BIGINT NOT NULL
- );
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_date ON usage_statistics(date);
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_token_id ON usage_statistics(token_id);
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_model_name ON usage_statistics(model_name);
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_date_token_model ON usage_statistics(date, token_id, model_name);
- CREATE UNIQUE INDEX IF NOT EXISTS uk_usage_statistics_date_token_model ON usage_statistics(date, token_id, model_name);
- COMMENT ON TABLE usage_statistics IS '用量统计汇总表';
- COMMENT ON COLUMN usage_statistics.date IS '统计日期(YYYY-MM-DD)';
- COMMENT ON COLUMN usage_statistics.token_id IS '令牌ID';
- COMMENT ON COLUMN usage_statistics.token_name IS '令牌名称';
- COMMENT ON COLUMN usage_statistics.model_name IS '模型名称';
- COMMENT ON COLUMN usage_statistics.total_requests IS '总请求次数';
- COMMENT ON COLUMN usage_statistics.successful_requests IS '成功请求次数';
- COMMENT ON COLUMN usage_statistics.failed_requests IS '失败请求次数';
- COMMENT ON COLUMN usage_statistics.total_tokens IS '总Token消耗';
- COMMENT ON COLUMN usage_statistics.prompt_tokens IS '提示Token数';
- COMMENT ON COLUMN usage_statistics.completion_tokens IS '完成Token数';
- COMMENT ON COLUMN usage_statistics.total_quota IS '总额度消耗';
- COMMENT ON COLUMN usage_statistics.created_time IS '创建时间戳';
- COMMENT ON COLUMN usage_statistics.updated_time IS '更新时间戳';
- */
- -- SQLite 语法 (如果使用SQLite)
- /*
- CREATE TABLE IF NOT EXISTS usage_statistics (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- date TEXT NOT NULL,
- token_id INTEGER NOT NULL,
- token_name TEXT NOT NULL DEFAULT '',
- model_name TEXT NOT NULL,
- total_requests INTEGER NOT NULL DEFAULT 0,
- successful_requests INTEGER NOT NULL DEFAULT 0,
- failed_requests INTEGER NOT NULL DEFAULT 0,
- total_tokens INTEGER NOT NULL DEFAULT 0,
- prompt_tokens INTEGER NOT NULL DEFAULT 0,
- completion_tokens INTEGER NOT NULL DEFAULT 0,
- total_quota INTEGER NOT NULL DEFAULT 0,
- created_time INTEGER NOT NULL,
- updated_time INTEGER NOT NULL
- );
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_date ON usage_statistics(date);
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_token_id ON usage_statistics(token_id);
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_model_name ON usage_statistics(model_name);
- CREATE INDEX IF NOT EXISTS idx_usage_statistics_date_token_model ON usage_statistics(date, token_id, model_name);
- CREATE UNIQUE INDEX IF NOT EXISTS uk_usage_statistics_date_token_model ON usage_statistics(date, token_id, model_name);
- */
|