45-MySQL单表2000万数据查询慢解决方案1
MySQL单表2000万数据查询慢解决方案1 本文主要讨论了如何解决MySQL单表2000万数据查询慢的问题,通过将表分区和使用时间触发器来实现数据的优化。 分区设计 在解决方案中,我们使用的是按照8周将单表分为8个区,每周一都会将最早一周的分区Drop掉,然后新建下一周的分区。这样可以大大减少数据的查询时间。 时间触发器 我们使用MySQL的时间触发器来实现定时任务。需要开启事件调度器,使用命令`set global event_scheduler=1;`。然后,创建一个事件,每秒执行一下adduser函数。 函数设计 我们创建了一个专门insert数据的函数,使用uuid作为主键,并与intime一起作为主键。 分区创建 在创建分区时,需要注意字段intime必须是主键或主键的一个。我们可以将原来单个id主键索引删掉,改成id、intime为主键。 数据插入 我们可以按照分区的原则,向表里插入数据。每个分区有4条数据,查询结果正确。 分区删除 我们可以使用命令`alter table tuser drop partition p1;`删除第一个分区,分区内的数据也将被删除。 新建分区 我们可以使用命令`alter table tuser add partition (partition p3 values less than (TO_DAYS('2017-09-27')));`新建一个分区,注意红色粗体,我们新建的分区必须要在原分区之后追加。 解决方案 我们的解决方案思路很简单, 每7天某个时间点触发Event,执行一个存储过程,先取出最早的分区,drop,然后创建一个最大分区号+1,日期也+7的分区。 技术要点 * 使用分区来减少数据查询时间 * 使用时间触发器来实现定时任务 * 创建函数来insert数据 * 注意分区字段的设计 * 分区删除和新建的实现 结论 通过本文,我们可以学习到如何使用分区和时间触发器来解决MySQL单表2000万数据查询慢的问题,并可以将这些技术要点应用到实际工作中。
![png](https://img-home.csdnimg.cn/images/20210720083516.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/release/download_crawler_static/86371400/bg1.jpg)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/b410f31a42934e8fb1ef0f2a2c11e36d_weixin_35823441.jpg!1)
- 粉丝: 20
- 资源: 320
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)