24、mysql数据库优化
24.1、如何判断网站慢的排查顺序:
客户端->web->nfs->数据库;
24.2、uptime命令详解:
[root@backup ~]#uptime
13:03:23 up 37 min, 1 user, load average: 0.08, 0.02, 0.01
13:03:23 up 37 min #开机时间和开机运行了多长时间;
1 user #正在使用的用户数;
load average: 0.08, 0.02, 0.01
#这里是1分钟、5分钟和15分钟内的平均负载;
#一般load average的三个值不能大于cpu个数,假设长期大于cpu个数说明系统非常繁忙负载高。
#偶尔大于的话,一般不影响实际性能。
24.3、mysql服务器负载高的解决办法:
1、案例一(索引问题):
(1)登录到数据库;
(2)使用show full processlist;命令,发现大量的sql查询查询进程等待;
(3)使用explain+sql语句查看等待的sql语句的索引利用情况;发现该sql语句没有没有走任何的索引,是全表扫描;
(4)查看被查询表的表结构信息,然后使用select count( discount,<字段名称>) from <表名称>;命令查看被查询字
段的的唯一性,发现每一个字段的唯一性都很小,所以通过create index <索引名称> on student (<字段名>,<字段名>);命令
建立联合索引;
(5)通过explain+sql语句查看索引情况,发现sql查询走索引了,通过uptime命令查看mysql服务器的负载也降下来了;
(6)注意:在生产环境中,如果访问频繁的大表,创建索引会很耗费时间,也许需要几分钟,所以应该在业务低估时建立索引;
2、案例二(非索引问题):
使用的搜索是%<搜索的内容>%,不走索引;
使用 mysql -uroot -p<密码> -e "show full processlist" | grep -vi sleep命令查看数据库进程;
3、小结:引起负载高的软件原因,要么是sql查询没有走索引,要么是sql语句写的比较烂;
24.4、如何优化数据库:
1、硬件优化:
6*600、sas、15k硬盘、raid10、2颗cpu、16G、单实例mysql服务;
2、软件优化:
3、my.cnf优化:
对于线程buffer不要调的太大,主要和并发有关,系统内存会吃不消的;
4、sql语句的优化:
5、架构上的优化:
24.5、数据库管理规章制度:
1、项目开发制度流程:
2、数据库更新流程:
3、dba参与项目数据库的设计:
4、各种操作申请流程:
5、定期对内部人员进行培训:
6、内部开发等人员权限的分配:
说明:说到底就是把最大的权限放到dba手中,其他人权限分配最小,如果需要权限就需要走流程;
7、数据库客户端访问控制:
8、数据库运维管理核心思想:
24、mysql数据库优化的更多相关文章
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- 50多条mysql数据库优化建议
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存 ...
- 30多条mysql数据库优化方法【转】
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- 转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- MySQL数据库优化、设计与高级应用
MySQL数据库优化主要涉及两个方面,一方面是对SQL语句优化,另一方面是对数据库服务器和数据库配置的优化. 数据库优化 SQL语句优化 为了更好的看到SQL语句执行效率的差异,建议创建几个结构复杂的 ...
- 关于MySQL数据库优化的部分整理
在之前我写过一篇关于这个方面的文章 <[原创]为什么使用数据索引能提高效率?(本文针对mysql进行概述)(更新)> 这次,主要侧重点讲下两种常用存储引擎. 我们一般从两个方面进行MySQ ...
- 【MySQL】花10分钟阅读下MySQL数据库优化总结
1.花10分钟阅读下MySQL数据库优化总结http://www.kuqin.com2.扩展阅读:数据库三范式http://www.cnblogs.com3.my.ini--->C:\Progr ...
- 解开发者之痛:中国移动MySQL数据库优化最佳实践(转)
开源数据库MySQL比较容易碰到性能瓶颈,为此经常需要对MySQL数据库进行优化,而MySQL数据库优化需要运维DBA与相关开发共同参与,其中MySQL参数及服务器配置优化主要由运维DBA完成,开发则 ...
- 百万行mysql数据库优化和10G大文件上传方案
百万行mysql数据库优化和10G大文件上传方案 最近这几天正在忙这个优化的方案,一直没时间耍,忙碌了一段时间终于还是拿下了这个项目?项目中不要每次都把程序上的问题,让mysql数据库来承担,它只是个 ...
- 从运维角度来分析mysql数据库优化的一些关键点【转】
概述 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善. 1.数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分 ...
随机推荐
- [Java] GUI编程基础 绘图
库 swing awt 过程 创建窗口JFrame JFrame-->MenuBar-->Container 屏幕坐标系:左上角为原点 Graphics2D Main.java 1 imp ...
- ipmitool -I lanplus -H 10.1.81.90 -U admin -P admin mc reset cold
ipmitool -I lanplus -H 10.1.81.90 -U admin -P admin mc reset cold
- centos7 连接打印机
centos7 连接打印机 2017-08-07 15:05:33 五岳寻仙客 阅读数 2531更多 分类专栏: Liunx的日常使用 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版 ...
- 【备忘】ffmpeg推流命令
1 组播推流 ffmpeg -re -i "D:\\OTT\\adghg2323.mp4" -vcodec libx264 -vprofile baseline -level 30 ...
- s9 Linux 进程管理命令
9.1 ps:查看进程 9.2-3 pstree & pgrep 9.4-6 kill & killall & pkill 9.7 top:实时显示系统中各个进程的资源占用状况 ...
- C语言的指针数组与指针数组
一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...
- flink反压的监控
反压在流式系统中是一种非常重要的机制,主要作用是当系统中下游算子的处理速度下降,导致数据处理速率低于数据接入的速率时,通过反向背压的方式让数据接入的速率下降,从而避免大量数据积压在flink系统中,最 ...
- Go语言流程控制02--选择结构之switch
package main import "fmt" /* @星座诊所2(switch) 根据用户输入的出生月份猜测其星座: ·白羊(4) 金牛(5) 双子(6) 巨蟹(7) 狮子( ...
- 使用kubeadm部署一套高可用k8s集群
使用kubeadm部署一套高可用k8s集群 有疑问的地方可以看官方文档 准备环境 我的机器如下, 系统为ubuntu20.04, kubernetes版本1.21.0 hostname IP 硬件配置 ...
- 常用深度学习框——Caffe/ TensorFlow / Keras/ PyTorch/MXNet
常用深度学习框--Caffe/ TensorFlow / Keras/ PyTorch/MXNet 一.概述 近几年来,深度学习的研究和应用的热潮持续高涨,各种开源深度学习框架层出不穷,包括Tenso ...