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.数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分 ...
随机推荐
- 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用
基于Linux命令行KVM虚拟机的安装配置与基本使用 https://alex0227.github.io/2018/06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4 ...
- 一、python入门练习题
题目: 练习1:华氏温度转摄氏温度. 练习2:输入圆的半径计算计算周长和面积. 练习3:输入年份判断是不是闰年. 答案: 练习1: """ 将华氏温度转换为摄氏温度 F ...
- SSM整合(ForestBlog为例)
SSM整合(ForestBlog为例) 原版本github地址 :https://github.com/saysky/ForestBlog 文中版本地址:https://github.com/Yans ...
- 在安装python 第三方库时遇到【WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, st】问题
在命令执行窗输入: pip install Pyinstaller -i http://pypi.douban.com/simple --trusted-host pypi.douban.com (其 ...
- redis的rehash过程
在扩容和收缩的时候,如果哈希字典中有很多元素,一次性将这些键全部rehash到ht[1]的话,可能会导致服务器在一段时间内停止服务.所以,采用渐进式rehash的方式,详细步骤如下: 为ht[1]分配 ...
- 『动善时』JMeter基础 — 25、JMeter参数化补充练习
目录 1.使用"CSV数据文件设置"组件实现参数化 (1)测试计划中的元件 (2)数据文件内容 (3)线程组元件内容 (4)HTTP信息头管理器组件内容 (5)CSV数据文件设置组 ...
- Navigation activity回退到fragment失败
我有一个activity--MainActivity, 布局中设置了一个 <androidx.fragment.app.FragmentContainerView android:layout_ ...
- Python+Selenium学习笔记19 - 自动发送邮件
发送简单的邮件 用一个QQ邮箱发送到另一个QQ邮件. 首先设置QQ邮箱,邮箱设置 -> 账号 开启SMTP服务,点击开启按钮,按提示进行操作,需要1毛钱的短信费.开启后如下所示 1 # codi ...
- Count(1),Count(*),Count(column)区别
count是一种最简单的聚合函数,一般也是我们第一个开始学习的聚合函数,那么他们之间究竟由什么区别呢? 有的人说count(1)和count(*)他们之间有区别,而有的人说他们之间没有区别那么他们之间 ...
- CVPR2020论文解析:视频语义检索
CVPR2020论文解析:视频语义检索 Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning 论文链接:https:/ ...