关于"mysql第一次查询很慢,以后就很快"的解决方案

Posted 十行道人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于"mysql第一次查询很慢,以后就很快"的解决方案相关的知识,希望对你有一定的参考价值。

问题

  有个项目使用的mysql数据库,第一次查询很慢,大约15s左右出结果,再次查询就很快了。

分析

  后面变快的原因是mysql有缓存机制,但是过上一段时间不使用缓存会过期,我个人测了一下2~3分钟一班不会过期,6~7分钟就普遍过期了。

  所以,是不是可以通过定时刷新查询语句,来保持缓存的有效性呢?

  测试了一下,是可以的。

解决方案

  考虑到该项目本身查询语句是固定的,大概10条,所以采取了一个取巧的解决方案。

  即:

    在服务器上放一个隐藏的网页,每2分钟刷新一次这10条语句。

    这样就能使mysql缓存不过期,从而保持相对快速的查询速度。

  代码:

    $(function () { 
        //此页面用来保持mysql的查询缓存不过期,每隔2分钟刷新一次,需要在服务器上打开该网页,不能关闭。
        //第一次加载
        for (var i = 0; i < channelnameList.length; i++) {
            getContentList(channelnameList[i], idList[i]);
        }
        //定时加载
        setInterval(function () {
            for (var i = 0; i < channelnameList.length; i++) {
                getContentList(channelnameList[i], idList[i]);
            }
        },1000*60*2);

    });
    
    
    function getContentList(channelname, channelID) { 
        
        //调用后台,进行mysql查询
        $.ajax({
            type: "get",
            async: true,
            dataType: "text",
            url: "Handler.ashx?************,
            data: { ***********************) {

            },
            success: function (data, textStatus) {
               //*********************************************
               // 
 
            },
            error: function () {
                 
            }
        });
    }

 

    当然,用客户端刷新效果一样。

以上是关于关于"mysql第一次查询很慢,以后就很快"的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

MySQL简单插入查询在“查询结束”步骤上很慢

mysql数据1000万条,查询很慢,求解决方案

php+mysql查询上万条数据很慢,其中把分页去掉就快了

mysql做查询时,第一次很慢,第二三次就会很快?

关于Mysql使用left join写查询语句执行很慢的问题解决

mysql在第一次查询的时候很慢,第二次查询就比较快的原因?