Mysql慢查询和慢查询日志分析 众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的。下面总结一些使用过或者研究过的经验,从配置以及调节索引的方面入手,对mysql进行一些优化。 第一步应该做的就是排查问题,找出瓶颈,所以,先从日志入手 开启慢查询日志 mysql>show variables like “%slow%”; 查看慢查询配置,没有则在my.cnf中添加,如下 log-slow-queries = /data/mysqldata/
启用慢查询日志 mysql 中的 slow log 是用来记录执行时间较长(超过 long_query_time 秒)的 sql 的一种日志工具。 启用 slow log 在 my.cnf 中设置 [mysqld] slow_query_log=on slow_query_log_file=mysql-slow 重启 MySQL 服务。 1.工具集 五款常用工具 mysqldumpslow mysqlsla myprofi mysql-explain-slow-log
有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name]
一、mysqldumpslow工具使用 1.1、修改配置文件开启慢查询 mysql 开启慢查询 systemctl stop mysqld echo -e "# 开启慢查询\nslow_query_log = 1\nslow_query_log_file = /var/lib/mysql/slow-query.log\nlong_query_time = 1\nlog_queries_not_using_indexes = 1" >>/etc/my.cnf # 重启mysql systemctl rest
Bootstrapping: Kickstart、Cobbler、rpmbuild/xen、kvm、lxc、Openstack、 Cloudstack、Opennebula、Eucalyplus、RHEV
运维精简工具箱 Bootstrapping: Kickstart、Cobbler、rpmbuild/xen、kvm、lxc、 Openstack、 Cloudstack、Opennebula、Eucalyplus、RHEV 配置类工具: Capistrano、Chef、puppet、func、salstack、Ansible、 rundeck、CFengine、Rudder 自动化构建和测试: Ant、Maven、Selenium、PyUnit、QUnit、JMeter、Gradle、 PHPUni
日志就跟人们写的日记一样,记录着过往的事情。但是人的日记是主观的(记自己想记的内容),而数据库的日志是客观的,根据记录内容分为以下好几种日志:
总是在灾难发生后,才想起容灾的重要性。 总是在吃过亏后,才记得曾经有人提醒过。 一,核心军规 不在数据库做计算,cpu计算务必移至业务层 控制单表数据量,单表记录控制在千万级 控制列数量,字段数控制在20以内 平衡范式与冗余,为提高效率可以牺牲范式设计,冗余数据 拒绝3B(big),大sql,大事务,大批量 二,字段类军规 用好数值类型 tinyint(1Byte) smallint(2Byte) mediumint(3Byte) int(4Byte) bigint(8Byte) bad case:in
赶集网mysql开发36军规 写在前面的话: 总是在灾难发生后,才想起容灾的重要性; 总是在吃过亏后,才记得曾经有人提醒过。 (一)核心军规 (1)不在数据库做运算:cpu计算务必移至业务层 (2)控制单表数据量:单表记录控制在1000w (3)控制列数量:字段数控制在20以内 (4)平衡范式与冗余:为提高效率牺牲范式设计,冗余数据 (5)拒绝3B:拒绝大sql,大事物,大批量 (二)字段类军规 (6)用好数值类型 tinyint(1Byte) smallint(2Byte) mediumint(3Byte
2、控制单表数据量 int型不超过1000w,含char则不超过500w; 合理分表; 限制单库表数量在300以内;
在MySQL中,对于性能问题诊断,最开始的时候总是感觉有些束手无策,如果一个人问你,MySQL数据库响应慢了,该怎么办,如果数据库服务器CPU 100%了该怎么吧,或者数据库连接不上了,业务提示无法连接该怎么办,看起来好像没有太大的关系的问题,其实我们能够分析的一个入口就是日志。
写在前面的话: 总是在灾难发生后,才想起容灾的重要性; 总是在吃过亏后,才记得曾经有人提醒过。
MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的 SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10s以上的语句。
本文介绍了MySQL慢日志的作用、设置方法、查看方法以及相关的分析工具。慢日志是MySQL性能调优和诊断的重要工具,用于记录在MySQL中响应时间超过阈值的SQL语句。通过设置slow_query_log和long_query_time参数可以开启慢日志。使用mysqldumpslow、pt-query-digest等工具可以对慢日志进行分析。
7、索引命名:非唯一索引必须以 idx_字段1_字段2命名,唯一所以必须以uniq_字段1_字段2命名,索引名称必须全部小写
MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。
基础规范 使用InnoDB存储引擎 表字符集默认使用UTF8,如果涉及到用户输入应当校验字符范围,emoji需要使用UTF8MB4 所有表都需要添加注释 单表数据量建议控制在5000W以内 不在数据库中存储图⽚、文件等大数据 禁止在线上做数据库压力测试 禁⽌从测试、开发环境直连线上数据库 命名规范 库名、表名、字段名禁⽌止超过32个字符。并且能够准确表达含义。 库名、表名、字段名禁⽌止使⽤用MySQL保留字 临时库、表名必须以tmp为前缀,并以日期为后缀,日期格式为YYYY[MM][DD][HH][mm][
是否启用mysql查询缓存,可以通过2个参数:query_cache_type和query_cache_size,
对一个程序来说,由于数据库资源的绝对宝贵性(无法无限扩展),所以数据库必须合理的运行使用。以保证高效、稳定、安全的运行。数据库设计得好, 系统健步如飞;数据库设计不好,系统蹒跚前行。今天介绍数据库的设计原则和规范,你知道得越多,你不知道的越多。你知道多少呢?
索引是应用程序设计和开发的一个重要方面。如果索引太多,应用的性能可能会受到影响;如果索引太少,对查询性能又会产生影响。
这周公司开发工作比较悠闲,工作几乎压在设计上游,于是整理了下公司开发的文档,包括项目架构、服务器运维、规范、api对接、基本依赖信息等。如下是包含其中的MySQL开发规范,根据社区很多的博文参考以及结合自身小团队开发情况总结。
一个网站最先出现瓶颈的一定是数据库,然后是磁盘IO; Mysql 数据库优化建议:
1,插拔式的插件方式 ,插拔式的插件方式 2,存储引擎是指定在表之上的,即一个库中的每一个表都可 ,存储引擎是指定在表之上的,即一个库中的每一个表都可以指定专用的存储引擎。 3,不管表采用什么样的存储引擎,都会在数据区,产生对应 ,不管表采用什么样的存储引擎,都会在数据区,产生对应的一个 的一个frm文件(表结构定义描述文件)
硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10,操作系统: CentOS 6.4 x86_64(64位)。
精彩早知道 作者概述 什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么人来进行性能调优?(who) 怎么样进行性能调优?(How) 总结 硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10,操作系统: CentOS 6.4 x86_64(64位)。 概述 在这篇博文中,我不想用一些抽象的概念去说性能调优的问题,只想用最通俗的语言尽量来准确的表达我的想法。 由于本人小平有
不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题。 如何成为运维经理。一般来说,运维经理大概有两种出身,一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作也比较重视,逐步走向Manager的岗位。第二种是业务管理出身或者有IT技术背景,具备了一定经验直接进入IT管理层的人员。 那么做为一个Linux运维经理,你需要哪些技能武器、管理哪些细节,具备什么样的能力? ----
不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题。 如何成为运维经理。一般来说,运维经理大概有两种出身,一种是从底层最基
领取专属 10元无门槛券
手把手带您无忧上云