MYSQL性能优化以及建议

MYSQL性能优化以及建议1、业务代码组合逻辑后进行数据库操作,如根据波次进行库存分配,可以将波次里面的订单所有明细进行分组,然后匹配库存。2、将大字段、不常用字段放置到扩展表中,将经常使用(状态、数量、编号)放到一张表中,预

MYSQL性能优化以及建议

1、业务代码组合逻辑后进行数据库操作,如根据波次进行库存分配,可以将波次里面的订单所有明细进行分组,然后匹配库存。
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配置,提升数据库写入性能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5848.html

(0)
上一篇 2023-04-22
下一篇 2023-04-22

相关推荐

  • 如何安装Numpy库

    如何安装Numpy库strongNumpy库/strong是Python语言的一种基础库,是用于数值计算的库,在Python中广泛应用于科学计算、数据处理、机器学习等领域。

    2024-04-23
    83
  • 一则MySQL派生表优化案例「建议收藏」

    一则MySQL派生表优化案例「建议收藏」笔者最近遇到一则典型的因为sql中存在派生表造成的性能案例,通过改写SQL改善了的性能,但当时并没有弄清楚这其中的原因,派生表究竟是什么原因会导致性能上的副作用。说来也巧,很快就无意中就看到下文中的提

    2023-02-11
    162
  • 使用SQLServer 2008的CDC功能实现数据变更捕获

    使用SQLServer 2008的CDC功能实现数据变更捕获使用SQLServer 2008的CDC功能实现数据变更捕获 原创 置顶 發糞塗牆 最后发布于2012-10-30 23:35:53 阅读数 48357 收藏 展开 最近由于工作需要,研究了一下20…

    2023-02-14
    135
  • mysql忘记密码怎么办?_忘记密码怎么重新设置

    mysql忘记密码怎么办?_忘记密码怎么重新设置本文主要记录了在忘记密码时怎么办。

    2023-03-17
    151
  • Spyder打不开解决方法

    Spyder打不开解决方法Spyder是一款非常优秀的Python开发IDE,拥有较为完整的开发环境和强大的代码编辑、调试能力,被广泛的使用于Python程序的开发中。但是,在使用Spyder时也有可能会遇到一些问题,比如无法正常打开等问题,本文将从多个角度为大家介绍Spyder打不开的解决方法,希望可以帮助大家更好的使用Spyder。

    2024-06-21
    44
  • MySQL到底能有多少个字段[亲测有效]

    MySQL到底能有多少个字段[亲测有效]今天技术讨论群里 “一切随遇而安”同学看书时出现一个疑问,一个MySQL的表中到底可以有多少个字段?带着这个疑问,我们展开了探讨,也接着讨论了一个单字段长度的问题。 1. 官方文档说明 官方文档的内容

    2023-02-12
    152
  • 使用Python ttk来实现GUI界面快速开发

    使用Python ttk来实现GUI界面快速开发Graphical User Interface, 简称 GUI,是指采用图形方式显示应用程序的程序界面,用户可以通过鼠标、键盘等与应用程序进行直接交互。

    2024-01-14
    107
  • Python相对路径的使用

    Python相对路径的使用在日常的Python编程中,文件操作是必不可少的环节。而文件的路径则是文件操作的一个重要方面。本文将介绍Python中相对路径的使用方法,让你更加便捷地操作文件。

    2024-05-05
    65

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注