调优
对于高风险,0收益,甚至是负收益的操作,走流程准没错
比如:有DMS数据管理工具,为了避免一些业务操作,没有走工单而是自己写代码或者用其他奇奇怪怪的方式,出现问题自己承担责任,虽然你可能是为了快速用户解决问题,要学会用流程和规范来保护自己。
综合优化手段
查询优化、参数优化、读写分离还有分库分表。异地多活。
2000w数据分库分表
增加索引深度。MySQL 默认是 16K 的页面,抛开它的配置 header,大概就是
15K,因此,非叶子节点的索引页面可放 151024/12=1280 条数据,按照每行 1K 计算,每
个叶子节点可以存 15 条数据。同理,三层就是 151280*1280=24576000 条数据。只有数据量达到 24576000 条时,深度才会增加为 4
参数调优
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...