前言:为什么说是极致优化,不要小瞧上面的3000万说的比较少,为啥,因为我们知道数据量不能代表一切,还要看字段的长度,和字段数量,这3000万数据 分化在60张表里面,核心表6 7张每张数据量大约在300w-800w,字段长度在60-200不等,并且大部分表内部包涵超长文本。这样你还觉得慢吗。
背景:数据库迁移,sqlserver 将数据迁移至mysql。平行迁移。公司切换数据库。
优化方向一:(代码级别优化)
优化点1:批量写入(大家应该都知道,但是这个批量写入还略有不同,区别在下面的优化点慢慢看)
优化点2:批量写入数据库使用的方式,选择了sqlsession(预处理语句)
优化点3:多线程执行操作(将数据库性能发挥到极限)
优化点4:滚动查询(查询效率极高,是普通分页查询的10倍以上)
优化方向二:(数据库引擎参数配置优化)
优化点1:global innodb_flush_log_at_trx_commit(事务提交时 日志设置 效果明显)
优化点2:max_connections 最大连接数 ,这个要综合考虑各种情况包涵服务器节点数 线程数据,服务器核心数 等资源分配情况
优化点3:global bulk_insert_buffer_size (插入缓冲区)
优化点4:innodb_buffer_pool_size(InnoDB缓冲池)
优化点5:in