本文由作者郑智辉授权网易云社区发布。 0.前言 本文通过分析线上MySQL慢查询日志,定位出现问题的SQL,进行业务场景分析,结合索引的相关使用进行数据库优化。在两次处理问题过程中,进行的思考。 1.简要描述 在九月底某个新上的游戏业务MySQL慢查询日志 第一次处理方式:在该表上添加了(recv_ ...
分类:
数据库 时间:
2018-12-11 17:17:16
阅读次数:
209
mongodb可以通过profile来监控数据 (mongodb性能优化) 开启 Profiling 功能 ,对慢查询进行优化: mongodb可以通过profile来监控数据,进行优化。 查看当前是否开启profile功能用命令 db.getProfilingLevel() 返回level等级,值 ...
分类:
数据库 时间:
2018-12-10 11:34:47
阅读次数:
233
在项目使用mysql过程中,随着系统的运行,发现一些慢查询,在这里总结一下mysql索引优化步骤 1.开发过程优化 开发过程中对业务表中查询sql分析sql执行计划(尤其是业务流水表),主要是查看sql执行计划,对sql进行优化。 explain执行计划关键属性 select_type,possib ...
分类:
数据库 时间:
2018-12-09 22:37:35
阅读次数:
242
mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql,会被记录在慢查询日志中。long_query_time的默认值是10,意思是运行10S之上的语句。慢查询日志的设置1、查看是否开启慢查询日志命令:showvariableslike‘%slow_query_log%‘12、
分类:
数据库 时间:
2018-12-03 20:15:28
阅读次数:
207
慢查询参数 slow_query_log=1slow_query_log_file=/mysql3306/log/slow.log 记录的是查询语句,而非管理语句。除非启用 los_slow_admin_statements记录时间达到long_query_time或者符合log_queries_n ...
分类:
其他好文 时间:
2018-12-01 11:04:53
阅读次数:
137
一、索引原理 1、介绍 为何要有索引? 一般的应索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会受到影响。而索引太少,对查询性能又会产生影响,要找到一个平衡点,这对应用程序的性能至关重要。一些开发人员总是在事后才想起添加索引 我一直认为,这源于一种错误的开发模式。如果知道数据 ...
分类:
数据库 时间:
2018-11-29 14:57:40
阅读次数:
203
一、SQL语句优化的一般步骤: (1)通过 show status 命令了解各种 SQL 的执行效率; (2)定位执行效率较低的 SQL 语句(重点是 Select); (3)通过 explain 分析低效率的 SQL 语句的执行情况; (4)确实问题并采取相应的优化措施; 二、 1、show st ...
分类:
数据库 时间:
2018-11-28 00:27:20
阅读次数:
245
一、需求分析 线上的MySQL服务器,最近有很多慢查询。需要统计出行数大于100万的表,进行统一优化。 需要筛选出符合条件的表,统计到excel中,格式如下: 二、统计表的行数 统计表的行数,有2中方法: 1. 通过查询mysql的information_schema数据库中INFODB_SYS_T ...
分类:
数据库 时间:
2018-11-26 20:03:08
阅读次数:
268
MySQL慢查询记录日志对于跟踪PHP+MySQL体系下的MySQL负载调优问题很有用处, 比如安装了很多Discuz!插件的用户,这样可以大概排查出那些插件有代码问题。 其实启用MySQL的慢查询日志很简单,只需要在MySQL的配置文件里添加log-slow-queries和long_query_ ...
分类:
数据库 时间:
2018-11-26 02:23:40
阅读次数:
218
错误日志(默认开启,建议开启) 记录严重错误和启动关闭消息 二进制日志(默认关闭,建议开启) 记录了数据库所有的ddl语句和dml语句,用于恢复数据库、主从复制 查询日志(默认关闭,建议关闭) 记录用户的所有操作,其中还包含增删查改等信息 慢查询日志(默认关闭,建议调试性能才开启) 便于收集查询时间 ...
分类:
数据库 时间:
2018-11-25 20:44:23
阅读次数:
183