热血拳皇统计优化日志

本文介绍了一种通过建立联合索引来优化数据库查询的方法,包括注册创建查询、在线图表查询、用户在线图表及充值查询等场景,并展示了如何通过索引来提高查询效率。
#========================================优化注册创建查询 =======================================================
#建立联合索引 I_INDEX1(statistics_date,dist_id,statistics_hour,platform_id)  NIndex1(statistics_date) 符合松散型索引扫描 最左原则  
EXPLAIN SELECT SUM(reg_num) as reg_num,SUM(create_num) as create_num,statistics_date FROM dgs_register
WHERE statistics_date >= 1397534733   AND statistics_date <= 1398830736   AND dist_id in (102) GROUP BY statistics_date ORDER BY statistics_date DESC


#=====================================优化在线图表查询=============================================
#建立联合索引Nindex3(statistics_time,online,max_online,dist_id) 符合紧凑型索引扫描 最左原则  
explain SELECT statistics_time,SUM(online) as online , SUM(max_online) as max_online FROM dgs_online WHERE statistics_time >= 1396929933 AND statistics_time <= 1398312336 GROUP BY statistics_time ORDER BY NULL
explain SELECT statistics_time,SUM(online) as online , SUM(max_online) as max_online FROM dgs_online WHERE statistics_time >= 1396929933 AND statistics_time <= 1398312336 AND dist_id in (106,107) GROUP BY statistics_time ORDER BY NULL
#以上2个查询都能用到联合索引  9W条测试数据提升扫描5W条(根据时间范围扩大而增加)


#====================================优化用户在线图表=========================================
#建立联合索引Nindex4(statistics_date,online,max_online,dist_id) 符合紧凑型索引扫描 最左原则  
explain SELECT a.statistics_date,MIN(a.online) as min_online,MAX(a.max_online) as max_online,CEIL(AVG(a.online)) as avg_online,b.max_online_time,b.min_online_time 
FROM dgs_online a LEFT JOIN dgs_online_time b ON a.statistics_date = b.statistics_date AND a.dist_id = b.dist_id 
WHERE a.statistics_date >= 1397232000 AND a.statistics_date <= 1398485136 AND a.dist_id in (106,107)  GROUP BY a.statistics_date ORDER BY a.statistics_date DESC;
#以上查询可以使用到联合索引 Nindex4


#======================================优化充值查询================================================
#建立联合索引 I_INDEX1(statistics_date,dist_id,statistics_hour,platform_id)  NIndex1(statistics_date) 符合松散索引扫描 最左原则  
explain SELECT statistics_date,SUM(recharge_amount) as recharge_amount, 
SUM(recharge_times) as recharge_times, 
SUM(recharge_members) as recharge_members,
SUM(recharge_members_new) as recharge_members_new, 
SUM(recharge_members_old) as recharge_members_old, 
dist_id
FROM dgs_recharge 
WHERE statistics_date >= 1396368000 AND statistics_date <= 1397750400  AND dist_id in (106,107) GROUP BY statistics_date  ORDER BY statistics_date DESC limit 0,20

#建立联合索引 NIndex2(statistics_date, recharge_amount, recharge_times, recharge_members_new, recharge_members_old)  符合紧凑型索引扫描 最左原则  
explain SELECT 
SUM(a.recharge_amount) as recharge_amount, 
SUM(a.recharge_times) as recharge_times, 
SUM(a.recharge_members) as recharge_members, 
SUM(a.recharge_members_new) as recharge_members_new, 
SUM(a.recharge_members_old) as recharge_members_old, 
SUM(b.person_login_num) as person_login_num 
FROM dgs_recharge a LEFT JOIN dgs_register b ON a.statistics_date = b.statistics_date AND a.dist_id = b.dist_id 
WHERE a.statistics_date >= 1396281600 AND a.statistics_date <=1397664000 AND a.dist_id in (106,107)
//8000条数据 全表扫描提升到 5000条左右


=================================================== 留存率 ======================================
#建立索引NIndex1(statistics_date) 
explain SELECT SUM(reg_num) AS reg_num, SUM(second_day_num) AS second_day_num, SUM(third_day_num) AS third_day_num, 
SUM(seven_day_num) AS seven_day_num, SUM(fifty_day_num) AS fifty_day_num, SUM(thirty_day_num) AS thirty_day_num,
 statistics_date, statistics_time FROM dgs_remain 
WHERE statistics_date >= 1396368000 AND statistics_date <= 1400169600  GROUP BY statistics_date ORDER BY statistics_date DESC limit 0,20

 

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值