902019.08 https://www.doczj.com/doc/952109569.html,
基础设施与数据管理
责任编辑:季莹 投稿信箱:netadmin@https://www.doczj.com/doc/952109569.html,
Infrastructu re Mgmt. & Data Mg mt.
MySQL 数据库使用技巧三例
■ 山东 赵秀芹 刘杨青 李瑞祥
下面将具体过程介绍如下。
删除指定日期内的日志文件
我们在局域网中建立了数台日志服务器,用于记录网络设备产生的日志文件,这些日志文件主要是作为网络故障排查的一个依据,但由于每天产生的日专文件数据巨大,占用数据库的存储空间,降低了查询的效率。最近这个问题越来越明显了,执行相应的查询语句时越来越慢。
通过对日志文件的结构进行分件,我们发现有一个“ReceivedAt”字段,里面是存储的日志信息产生的时间,那么就可以依据这个字段,进行删除操作,当然进行删除操作之前,我们需要先用select 语句看一下这某个指定的时间段内有多少条数据文件,语句如下:
S E L E C T * F R O M
编者按:在日常网络运维工作中,我们经常要在mysql 数据库中进行诸如设备日志记录的查询、不达标ONU 对应用户的查询等操作,在这个过程中有一些特定的需求,需要解决,通过对MySQL 数据库的系统学习,可以得到解决。
SystemEvents
WHERE
S y s t e m E v e n t s .ReceivedAt
BETWEEN
'2018-08-01 00:00:00'AND
'2018-09-0 1 00:00:00';
这是查询的2018年8月份产生的日志文件,一共有34.6118万条,这些信息由于时期久远,可以删除掉了,语句如下:
D E L E T E F R O M SystemEvents
WHERE
S y s t e m E v e n t s .ReceivedAt
BETWEEN
'2018-08-01 00:00:00'AND
'2018-09-0 1
00:00:00';
从执行完毕后出现的信息看
受影响
的行: 346118
时间: 50.541s
用了不到一分钟的时间,就将34.6118万行的数据删除掉了,可以再用select 语句验证一下。从出现的提示信息看,一条信息也没有了,证明确实是从MySQL 数据库中删除了。
其实在MySQL 数据库执行删除指定的日期间的数据信息的方法有很多种,但是通过实践验证,证明这种方法效率最高,理解起来也很容易。
通过视图来优化查询操作
在我们的网络优化工作当中,需要定期整理各县公司(营业部)不达标ONU 的设备信息发给对应县公司(营业部)。具体来说就是要从OLT 设备的网管平台中导出