网站打开慢如何排查

1.打开网页, 用谷歌浏览器F12, 查看network: 哪个加载时间长就优化哪个

2.如果是数据库问题

2.1 查看大体情况

# top

# uptime  //load average 负载

mysql> show full processlist;

2.2 查看慢查询日志:

long_query_time = 1

log-slow-queries = /data/3306/slow.log

日志分析工具:

mysqldumpslow  mysqlsla  myprofi  mysql-explain-slow-log  mysqllogfilter

2.3 观察sql语句执行情况:

mysql> explain....

2.4 查看条件字段field的值的唯一性

mysql> select count(distinct ader) from tb1;

2.5 where条件语句最后用等号, 那样效率最高

2.6 查看report

./mysqlreport --user=root --password=123456 --socket=/usr/local/mysql/tmp/mysql.sock

搜索对网站数据库的压力

1.从业务上实现用户登录后才能搜索, 减少搜索次数 (如果这个逻辑不行, 就放弃)

2.如果有大量的频繁搜索, 一般是爬虫在爬网站, 那么分析web日志封掉此ip

3.配置多个主从同步, 实现读写分离, 让like语句去从库查询

4.在数据库前端加上memcached服务器

5.用sphinx实现数据库的搜索, 因为like语句很难优化的

6.为搜索单独建集群, 实现每日读库计算搜索索引, 保存在服务器上提供搜索, 每5分钟给从库做一次增量 (此方法一般是大公司做的)

mysql优化

硬件优化

cpu

mem

disk

网卡

sql语句优化

1.索引优化

2.大的sql语句拆分成多个小的: 子查询  join连表查询

3.计算操作不要放在数据库里进行

4.搜索功能不要用数据库

架构优化

1.业务拆分: 比如搜索功能用sphinx, 某些业务应用使用nosql持久化存储

2.数据库前端加cache: memcached redis

3.数据静态化: 整个文件静态化, 页面片段静态化

4.数据库集群和读写分离

5.拆库拆表: 单表2000万等特别大的情况

软件优化

操作系统: x86_64

软件: mysql编译安装

my.cnf参数优化

优化的幅度很小

流程,制度,安全优化

详见下

制度与流程

1.项目开发

办公开发环境 --- 办公测试环境 --- IDC测试环境 --- IDC正式环境

2.数据库更新

开发人员提交需求 --- 开发主管审核 --- 部门领导审核 --- DBA审核 --- DBA执行 --- IDC执行

3.DBA参与项目数据库设计与审核

账户权限控制

1.需求不明确者让其知难而退

2.办公和测试环境可以放开权限, idc测试和正式环境要严格控制数据库写权限

3.开发人员正式环境数据库: 给单独的不对外服务的从库只读权限, 不能分配正式库(主库)的写权限

4.特殊人员(如领导)需要权限时, 要问清楚他做什么, 发邮件回复: 注明用户名,密码,权限范围, 多提醒他操作注意事项, 如果有可能由DBA人员代替其操作

5.特权账号由DBA控制

web账户权限分配

1.写库账户默认权限为: select, insert, update, delete, 不要给建表改表或all权限

2.读库账号默认权限为select(配合read-only参数)

3.专库专账号, 碎库特别多的小公司特别对待

4.如果是lamp一体, 在一台服务器的环境, db权限主要设置为localhost

5.www和db分离的, 可以根据web服务数量多少按ip或网段来授权

数据库客户端访问控制

1.更改默认mysql client端口

2.数据库web client端统一部署在1-2台不对外服务的server上, 限制ip及端口, 只能从办公室内网访问

3.不做公网域名解析, 用host或者内部ip实现访问

4.phpadmin站点目录独立于其他站点根目录, 只能由指定的域名或ip访问

5.限制使用web连接的账户来管理数据库, 根据用户角色设置指定账户访问

6.按开发及相关任意, 根据职位角色分配管理账户

7.设置指定账户访问(apache/nginx验证 + mysql用户 两个登录限制)

8.统一所有数据库账户登录入口地址, 禁止所有开发人员私自上传phpadmin等数据库管理的程序

9.开通VPN, 跳板机, 内部IP 来管理数据库

;

mysq'l系列之10.mysql优化&权限控制的更多相关文章

  1. mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化

    可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...

  2. Mysql用户权限控制(5.7以上版本)

    1.1. 最简单的MySql权限   最简单也是最高效的,如果解决新手们删库跑路的问题其实也是很简单的,对于正式库只给一个增删改查的权限,或者只给一个查询权限(是不是就解决了删库的可能性?) 使用Ro ...

  3. Jenkins进阶系列之——13修改Jenkins权限控制

    说明:本方法适用于安全矩阵和项目矩阵授权策略的Jenkins. 很多童鞋在使用jenkins的时候忘记配置权限或者权限配置错误,然后各种蛋疼.最近闲着无事,折腾了下.好了,闲话少扯. Jenkins的 ...

  4. ZooKeeper系列(五)—— ACL 权限控制

    一.前言 为了避免存储在 Zookeeper 上的数据被其他程序或者人为误修改,Zookeeper 提供了 ACL(Access Control Lists) 进行权限控制.只有拥有对应权限的用户才可 ...

  5. 10 RESTful 实现权限控制

    1 2 身份控制 3 4 只能显示5条数据 5 权限控制 序列化渲染深度 6

  6. SpringSecurity 3.2入门(10)自定义权限控制认证及授权的过程

    上一章的代码实现还存在一些问题,如角色表.权限表的用处没有体现出来,但是已经能完成URL拦截功能,后面将会继续完善认证及授权的过程. 认证及授权的过程如下: 1.容器启动,MyInvocationSe ...

  7. MySQL用户权限控制一例

      Preface       I supposed we are encountering a situation that there's an anonymous user has connec ...

  8. Mysql优化(出自官方文档) - 第八篇(索引优化系列)

    目录 Mysql优化(出自官方文档) - 第八篇(索引优化系列) Optimization and Indexes 1 Foreign Key Optimization 2 Column Indexe ...

  9. mysql 权限控制具体解释

    概述 mysql权限控制在不同的上下文和不同的操作水平上都能够进行控制,他们包括例如以下几个 ** 管理权限能够同意用户管理mysql server的操作. 这些权限控制是全局的,不是针对某个特定的数 ...

随机推荐

  1. php中int类型在不同平台所占不同字节数理解

    1.在不同平台上占字节数与最大值 在32位平台上int占4个字节,在64位平台上int占8个字节,PHP_INT_SIZE 在32位平台上int的最大值2^31 - 1,在64位平台上int最大值2^ ...

  2. JavaScript 深克隆

    深克隆 function judgeType(arg){//判断js数据类型 return Object.prototype.toString.call(arg).slice(8,-1); } fun ...

  3. String、Stringbuffer和Stringbuilder之间的区别

    关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.在执行速度方面:Stringbuilder>Stringbuffer&g ...

  4. node/webpack/react

    node是运行引擎,通过他可以直接在后端运行js语法 webpack是打包工具 react是前端框架 通过 npm 使用 React 我们建议在 React 中使用 CommonJS 模块系统,比如 ...

  5. linux命令lsattr、chattr、man

    1.man命令,可以查看手册 配置位置/etc/man.conf MANPATH决定手册查询位置 MANSECT决定man查询的顺序 man的查询 linux man的常用用法: man sectio ...

  6. 通过apache的mod_status 统计占资源的脚本

    apache的mod_status模块,提供了对apache运行时的一些统计信息,对apache的管理员来说很有意义. 一.加载apache的mod_status模块 各种系统下,加载apache模块 ...

  7. Controller层返回字符串

    刚开始练习,有时候想让Controller层返回一个字符串,但是他却去寻找这个字符串名字的jsp页面,结果肯定会是404的,研究了一会才明白过来,如果Controller需要返回一个值的话,需要再方法 ...

  8. 【C/C++】高亮C++中函数的重写——函数名相同?参数列表相同?返回值相同?

    C++的重载给人留下了非常深刻的影响,原因是重载的条件很值得注意:函数名相同,参数列表不相同的两个函数构成重载函数,而无关乎二者的返回值. 但是C++中的函数重写又是另一码事.标准规定:只要函数名相同 ...

  9. Intellij IDEA如何不显示参数提示

    刚安装了IDEA之后,调用方法的时候会提示方法中的参数,就像下面这样: 虽然IDEA也是好心,提示,但是劳资看着难受啊. 如果觉得不习惯,不想看参数名,可以用下图的方式取消.具体是:  setting ...

  10. XMLHttpRequest cannot load ''. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' ' is therefore not allowed access.

    ajax跨域 禁止访问! 利用Access-Control-Allow-Origin响应头解决跨域请求