• 宝塔linux面板, 服务器日志分析与流量统计这款插件的mysql版优化。


     在花1块钱,购买了那个《服务器日志分析与流量统计》这个插件, 用来分析日志和流量, 当www.wxtv.net流量巨大, 短短几天就产生了8百万条网站日志,  使用的是mysql存储日志的方式,   该插件的作者几乎没有优化过mysql存储方式(我也不知道sqlite方式有没有优化),  大几百万的日志, 查询几乎打不开, 还把整个mysql拖死。 打开mysql的慢日志查询, 发现全是统计的语句超时了。 

    慢日志记录:

    SET timestamp=1590377705;
    select website,ip,CAST(time AS CHAR) AS time,httpstatus,size,httpmothed,pageurl,shebieinfo from weblogs where website='www.wxtv.net' and time>='2020-05-2100:00:01' and time<='2020-05-2123:59:59' and shebieinfo like '%baidus%' order by time desc limit 0,100;
    # Time: 200525 11:35:10
    # User@Host: wlog[wlog] ******  Id: 1230472
    # Query_time: 4.893739  Lock_time: 0.000176 Rows_sent: 1  Rows_examined: 2227923
    SET timestamp=1590377710;
    select count(ip) from weblogs where website='www.wxtv.net' and time>='2020-05-2100:00:01' and time<='2020-05-2123:59:59' and shebieinfo like '%baidus%' order by time desc;
    

      

    解决办法:

    增加weblogs表的time字段的索引。 操作步骤如下:

    1. 点击左边菜单“数据库”。

    2. 选择当时日志配置的mysql数据库, 点击管理,打开phpMyAdmin。 

    3.  在phpMyAdmin中, 选择日志的数据库。  点击结构。 

    4. 点击time字段操作列中的索引, 给time字段新建索引。  

    建好索引后, 再打开《服务器日志分析与流量统计》这个插件, 查询速度变成了秒级。 

    PS: 该款插件只卖1块钱, 所谓1分钱一分货, 作者在mysql方式上, 几乎都没有测试。  买过来, 可以打开它的源码, 修改代码, 在服务器上进行优化。 

  • 相关阅读:
    php获取随机字符串
    php短网址生成算法
    tp5.1发送邮件
    PHP简单 对象(object) 与 数组(array) 的转换
    PHP获取接下来一周的日期
    swoole 连接池
    PHP静态文件缓存
    php微信分享demo
    生成二维码并指定地址跳转
    tp5依赖注入(自动实例化):解决了像类中的方法传对象的问题
  • 原文地址:https://www.cnblogs.com/jackrebel/p/12956554.html
Copyright © 2020-2023  润新知