记一次MySql千万级数据量单表按日分组查询平均值的优化遇到的各种问题

2021/7/7 19:05:11

本文主要是介绍记一次MySql千万级数据量单表按日分组查询平均值的优化遇到的各种问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、单表千万级数据量 子查询 where  in 要比 where exists 快(查询时间差了100倍)

2、需要对datetime类型进行group by时(众所周知,函数不走索引),把日期的值拆分,比如要按日进行分组,则增加字段int 存放yyyyMMdd(为什么不是varchar,尽量用int等小字节,加快速度)

3、数据量不大的临时表的存储引擎用engine=MEMORY ,优化效果很明显。数据量太大的不建议,因为很吃内存,内存不够数据可能会丢失数据或者中断存储过程

4、truncate是先执行drop操作,然后再执行create操作,执行完成后会恢复初始的表空间。(找资料时看到有文章说对于临时表要先truncate再drop,差点被坑死,故有此一记)

 

更优的方法当然是把数据放到nosql/newsql里去,奈何领导不同意,只能先从数据库层面入手了。



这篇关于记一次MySql千万级数据量单表按日分组查询平均值的优化遇到的各种问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程