| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/bin/bash
- # MySQL 连接配置
- MYSQL_USER="root" # 替换为你的数据库用户名
- MYSQL_PASSWORD="123456" # 替换为你的数据库密码
- MYSQL_HOST="127.0.0.1" # 替换为数据库地址,如 127.0.0.1
- # 获取所有以 'ro' 开头的数据库
- DATABASES=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h$MYSQL_HOST -e "SHOW DATABASES LIKE 'ro%';" -s -N)
- TOTAL_RMB=0
- TOTAL_ROLE=0
- echo "开始查询所有 ro* 数据库的统计信息..."
- # 遍历每个数据库
- for DB in $DATABASES; do
- echo "数据库: $DB"
- # 查询1: 当日 RMB 总和(优化版,使用索引)
- SQL1="SELECT COALESCE(SUM(rmb), 0) FROM role_order_list WHERE order_date >= CURDATE() AND order_date < CURDATE() + INTERVAL 1 DAY;"
- SUM_RMB=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h$MYSQL_HOST -D $DB -e "$SQL1" -s -N 2>/dev/null)
- # 查询2: 当日创建的角色数量(优化版,使用索引)
- SQL2="SELECT COALESCE(COUNT(*), 0) FROM role WHERE create_date >= CURDATE() AND create_date < CURDATE() + INTERVAL 1 DAY;"
- COUNT_ROLE=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h$MYSQL_HOST -D $DB -e "$SQL2" -s -N 2>/dev/null)
- # 显示当前数据库的两个统计值
- echo " - 当日充值金额(美元): $SUM_RMB"
- echo " - 当日新角色数量: $COUNT_ROLE"
- echo ""
- # 分别累加到对应的总和
- TOTAL_RMB=$((TOTAL_RMB + SUM_RMB))
- TOTAL_ROLE=$((TOTAL_ROLE + COUNT_ROLE))
- done
- echo "========================================"
- echo "汇总结果:"
- echo "所有 ro* 数据库的当日充值总金额(美元): $TOTAL_RMB"
- echo "所有 ro* 数据库的当日新角色总数: $TOTAL_ROLE"
|