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.数据库表设计 项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分 ...
随机推荐
- [bug] MySQL: The user specified as a definer ('root'@'%') does not exist
错误1 gciantispider.getchildlst does not exist 原因 getchildlst创建失败 解决 在mysql中设置mysqld中加上log_bin_trust_f ...
- [Python] 微信公众号开发 Python3
搭建服务 开通一个阿里云ecs,安装python3及需要的包(参考下方官方文档) 将py文件保存在ecs上,运行 在本地访问阿里云的IP地址 能完成这步说明网络没问题 server.py 1 # -* ...
- 一文搞懂:java中的VO、PO、BO、DAO、POJO
针对java工程里的各种带O的对象,进行分析,了解各自的作用. PO:persistent object,持久对象.与数据库里表字段一一对应.PO是一些属性,以及set和get方法组成.一般情况下,一 ...
- 【BIGDATA】ElasticSearch HEAD插件的GET请求的坑
今使用HEAD插件,发现复杂查询功能下,使用GET请求有坑. 查询语句如下: GET kk/_search { "query": { "match": { &q ...
- vmware快捷键大全
初学linux的朋友往往需要使用VMware这个软件 与其打交道多了 越来越觉得快捷键的重要性 特将搜集到的快捷键记录以便查阅记忆 Ctrl-Alt-Enter 进入全屏模式 ctrl+alt+ins ...
- make: g77: Command not found 修改Makefile.in中的编译文件中的g77为gfortran
make: g77: Command not found 编译cblas时报错,这时,修改Makefile.in中的编译文件中的g77为gfortran
- Centos7 安装 htop
此安装方法是目前位置我了解到的最简介.最快速的安装方法.本人亲验: 系统版本: CentOS Linux release 7.3.1611 (Core) 安装步骤: yum -y instal ...
- jmeter线程组扩展空间——Stepping Thread Group
安装方法跟安装其他插件一样,不复赘述 各个配置含义: 举个例子:一个线程组下包含了登陆和抽奖两个接口 1.继续:如果登陆接口失败,会继续执行抽奖接口 2.start next thread loop: ...
- 063.Python前端Django分页器
Django的分页器 1 前期准备 创建一个数据库,用于存放数据 mysql> create database pager default charset=utf8; mysql> use ...
- 科普 AF摄像头
AF(Auto Focus)自动对焦:自动对焦有两种方式,根据控制原理分为主动式和被动式两种.主动式自动对焦通过相机发射红外线,根据反射回来的射线信号确定被摄体的距离,再自动调节镜头,实现自动对焦.被 ...