mysql优化


mysql优化,在我的了解下可以分为三种:
1:服务器层面的优化;
2:SQL设计层面的优化
3:SQL语句的优化

服务器层面的优化

1:你可以先看下你的buffer pool的使用率
show global status like ‘innodb_buffer_pool_pages_%’;
如果 Innodb_buffer_pool_pages_free | 0 | 0 就表示已经被用光
你可以适当的扩大buffer pool,理论上扩大到mysql内存的3/4 或者 4/5
这样可以最大限度的保证数据从内存读取而不是硬盘(内存和硬盘大家都懂得)

修改方式:
linux的my.cnf中增加innodb_buffer_pool_size = 设置值(带单位M/G)
重启mysql记得 修改配置文件,得重启
2:降低磁盘写入次数

 a:redo log大的话,落盘次数少(这个有时间,我会增加一篇mysql innodb的架构设计)
	 一般innodb_log_file_size 设置成 innodb_buffer_pool_size * 0.25就可以了
 b:通用查询日志、慢查询日志最好不开(生产上,你测试要用还是要开的)
	 bin-log得开呀,要不主从咋子办?
 c:可以更改检查点落盘策略innodb_flush_log_at_trx_commit 0 1 2 

3:从硬件上,提高磁盘读写
如果show profile中的 Sending data 大的不正常了,就要考虑这点了,毕竟脱离硬件谈软件,就是只想恋爱不想结婚呀!!!!!!!
4:内存预热
就是第一次查询会慢一点,但是第二次就会相对快一点

SQL层面的优化

1:设计统计表,对于实时性要求不高的需求,可以后台定时计算放入表中,查询的时候直接取
2:减少查询关联,创建合理的冗余字段------->别忘了修改数据的时候的数据一致性
3:字段太多的表,考虑拆表(这个是列拆,可不是行分)!
4:对于经常不适用的字段或者存储数据比较多的字段,考虑拆表,或者有字段是 blob 、text之类的,最好拆出去(这玩意得导致主键索引树多大呀)
5:每张表建议自己做int类型的主键,建议主键自增(分布式请雪花)

SQL语句优化

1:肯定不用说,是索引优化
where的字段中,组合索引,有没有按照最左前缀原则
执行计划一下,看看有没有索引下推
创建的组合索引,在查询的时候索引覆盖,不回表
on两边的字段都要创建索引
排序,分组使用索引列
不要使用*
2:limit优化(这个是在layer层,可以中断扫表)
3:小结果集关联大结果集
4:count优化

   count (*) 找普通索引 ,找到最小的那棵树来遍历 包含空值
   count(字段) 走缓存 不包含空值
   count(1) 忽略字段 包含空值

在这里插入图片描述

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕需求响应动态冰蓄冷系统及其优化策略展开研究,结合Matlab代码实现,探讨了在电力需求侧管理背景下,冰蓄冷系统如何通过优化运行策略参与需求响应,以实现削峰填谷、降低用电成本和提升能源利用效率的目标。研究内容包括系统建模、负荷预测、优化算法设计(如智能优化算法)以及多场景仿真验证,重点分析不同需求响应机制下系统的经济性和运行特性,并通过Matlab编程实现模型求解与结果可视化,为实际工程应用提供理论支持和技术路径。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及从事综合能源系统优化工作的工程师;熟悉Matlab编程且对需求响应、储能优化等领域感兴趣的技术人员。; 使用场景及目标:①用于高校科研中关于冰蓄冷系统与需求响应协同优化的课题研究;②支撑企业开展楼宇能源管理系统、智慧园区调度平台的设计与仿真;③为政策制定者评估需求响应措施的有效性提供量化分析工具。; 阅读建议:建议读者结合文中Matlab代码逐段理解模型构建与算法实现过程,重点关注目标函数设定、约束条件处理及优化结果分析部分,同时可拓展应用其他智能算法进行对比实验,加深对系统优化机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值