震惊,小白看了都知道的!!Mysql6000w数据表的查询优化到0.023S

本文讲述了如何优化一个含有6000w数据的历史表,通过分析ORDER BY导致的性能瓶颈,讨论了全表扫描和文件排序的问题。作者通过添加索引并解释执行计划,最终将查询时间从300秒降至0.023秒。分享了在MySQL中避免文件排序和提高查询效率的实践经验。
摘要由CSDN通过智能技术生成

前言

很抱歉现在才把这篇文章发出来,这几天事情比较多,周四把任务完成才得空写一写,闲话不多说请看下↓↓↓

详细需求

需求:

系统中有一个专门存车流量的库(没有主键),其中一个历史表数据量太大,表空间占据太大,每天有500w的数据写入,然后老大给我安排了个任务,让我写个按天分表的定时任务,每次把一天的数据转移到按天生成的表中,并删除原表中的数据,主要目的是不想再增长表空间了,保持一个平衡,因为每天删500w也会加500w

表空间和数据量:
在这里插入图片描述在这里插入图片描述

实现思路

我本人实现的做法流程,如图
在这里插入图片描述
实现伪代码(删减了部分代码):

     /**
     * 转移数据 每天凌晨3点 每次只能转移一天的数据
     */
    @Scheduled(cron = "0 0 3 * * ?")
    public void dataTransfer()throws Exception{
   
        System.out.println("定时器开始运行------------------------------------------");
        String tabaleName = "XXX";
        String isTable = getTableName(tabaleName);
         // 当返回为空时,代表该表不存在,则创建
         if(ObjectUtils.isNull(isTable)
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值