调优

对于高风险,0收益,甚至是负收益的操作,走流程准没错 比如:有DMS数据管理工具,为了避免一些业务操作,没有走工单而是自己写代码或者用其他奇奇怪怪的方式,出现问题自己承担责任,虽然你可能是为了快速用户解决问题,要学会用流程和规范来保护自己。

综合优化手段

查询优化、参数优化、读写分离还有分库分表。异地多活。
notion image

2000w数据分库分表

增加索引深度。MySQL 默认是 16K 的页面,抛开它的配置 header,大概就是 15K,因此,非叶子节点的索引页面可放 151024/12=1280 条数据,按照每行 1K 计算,每 个叶子节点可以存 15 条数据。同理,三层就是 151280*1280=24576000 条数据。只有数据量达到 24576000 条时,深度才会增加为 4

参数调优

notion image
innodb_buffer_pool_size 简单说就是 innodb 缓冲池的大小,用于缓存表和索引,也包括插入数据缓冲,增加这个值可 以减少磁盘 IO。 在实践中应该尽可能调大这个参数。如果数据库所在的机器内存比较大,那么可以调整到整个 内存的 70% 或者 75%。但是也要小心这个参数过大,物理内存不足,容易触发操作系统
 
innodb_buffer_pool_instances 这个参数指定。显然这个数字越大,并发竞争就越小
可惜 MySQL 有一些额外的限制,它要求在 innodb_buffer_pool_instances 大于 1 的情况 下,innodb_buffer_pool_size 不能小于 1G。一般我建议在 8G 以内设置成 2 就可以,如果大于 8G 那么可以设置成 4。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP