没有合适的资源?快使用搜索试试~ 我知道了~
45-MySQL单表2000万数据查询慢解决方案1
需积分: 0 64 下载量 136 浏览量
2022-08-08
20:57:25
上传
评论
收藏 209KB DOCX 举报
温馨提示
试读
6页
45-MySQL单表2000万数据查询慢解决方案1
资源推荐
资源详情
资源评论
MySQL 单表 2000 万数据查询慢,时间触发
器+分区解决
事起
当时我们一个项目,要不停地从第三方系统拿一些监控数据存起来,只保留 2 个月。数据量
2 千万+。这个数据量,查起来就比较慢了,我们就开始优化。
思路就是将表分区,我们是按照 8 周,将单表分了 8 个区,每周一都会将最早一周的分区 Drop
掉,然后新建下一周的分区。
定时任务这一块,我们当时也没想着用 Quartz,直接用 MySQL 的时间触发器。
准备
为写本文档,我是在本机用 5.7 版本,中间会报一些错误,解决如下:
Error 1418
set global log_bin_trust_function_creators=TRUE;
或配置文件中增加
log_bin_trust_routine_creators=1;
select @@sql_mode
结果如下:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ER
ROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在 my.cnf 中添加如下,把红色的删掉。
sql_mode=
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_Z
ERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
时间触发器
先建一张表 tuser,id 自增,username,intime,建表语句略。
建一个 Function,专门 insert 数据。
资源评论
王佛伟
- 粉丝: 13
- 资源: 320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功