文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MYSQL性能优化以及建议

2021-05-06 03:43

关注

MYSQL性能优化以及建议

业务代码组合逻辑后进行数据库操作,如根据波次进行库存分配,可以将波次里面的订单所有明细进行分组,然后匹配库存。
2、将大字段、不常用字段放置到扩展表中,将经常使用(状态、数量、编号)放到一张表中,预防经常查询所有字段带来很多网络流量开销。
3、尽量使用主键进行加锁,防止间隙锁带来锁冲突。
4、热点数据更新放到事务最后,并制定更新顺序(如库存扣减、可以通过按照主键ID、货品ID排序更新)。
5、减少大事务,可以将大事务拆分多个小的独立事务(根据业务情况确定是否可以拆分),可以从两个维度(1、节点状态变更:如分配后自动生成拣货任务,就可以拆分两个事务,通过消息队列异步处理另一个状态。2、批量数据单个执行,如选择多个波次执行一个操作,后台可以逐个波次执行)。
6、合理调节数据库最大连接数、innodb buffer大小。
7、合理使用服务器内存缓存,配合消息队列清理缓存,来减少MYSQL的配置数据访问。
8、表之间转移/归档数据,少用insert into select where语句,防止select的where未走索引,加上其他事务更新表产生死锁。
9、业务报表数据尽量通过job定时跑数据生成(业务时间加上索引,job跑最近的业务数据、或则结合RowVersion增量统计),避免直接使用复杂的SQL语句查询业务表数据。
10、对于业务系统存在定时归档/关单的表,需要做好表重建工作,减少碎片以及存储空间。
11、对于非常大的表,尽量不要查询总条数,可以通过上一页,下一页的交互方式,后台通过小技巧取一个总条数返回给前端,如当前页的记录数等于每页需要展示的最大条数,则直接将总页数+1否在,总页数就是当前的页。
12、对于只需要根据一个条件做等值查询时,可以考虑通过分表减少每张表的数据量,如出库单日志表。
13、设计主从表(一对多)时,从表的外键不要设置为可空,可能导致join走不了索引。
14、网上提到的不要使用IN操作,走不了索引的说法是错误的,具体走不走索引需要根据执行计划分析(当in后面的数据在数据表中超过一定值就不会走)。
15、条件允许(如使用了可靠性很高的云服务器,不会意外断电等)的情况下将双一配置改为双100配置,提升数据库写入性能。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯