zoukankan      html  css  js  c++  java
  • 关于"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 () {
                     
                }
            });
        }

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

  • 相关阅读:
    防抖函数
    video.js汉化
    vscode 设置
    webpack配置
    寄生组合继承
    数组排序
    操作节点的方法
    vscde软件
    vue目录详解
    前端
  • 原文地址:https://www.cnblogs.com/shurun/p/14781368.html
Copyright © 2011-2022 走看看