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

综合优化手段

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

image.png

2000w数据分库分表

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

参数调优

参数 作用 具体值 关注点
innodb_flush_log_at_trx_commit MySQL InnoDB 引擎redo log的刷盘时机 0/2 性能
1 数据不丢
sync_binlog MySQL binlog的刷盘时机 N(N>1,表示每多少个事务刷新一次) 性能
1 数据不丢
transaction-isolation 调整隔离级别 TRANSACTION_READ_UNCOMMITTED 读未提交
TRANSACTION_READ_COMMITTED 读已提交
TRANSACTION_REPEATABLE_READ 可重复读
TRANSACTION_SERIALIZABLE 串行化

Buffer Poll优化

1. innodb_buffer_pool_size

2. innodb_buffer_pool_instances