mysq'l系列之10.mysql优化&权限控制
网站打开慢如何排查
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优化&权限控制的更多相关文章
- mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化
可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...
- Mysql用户权限控制(5.7以上版本)
1.1. 最简单的MySql权限 最简单也是最高效的,如果解决新手们删库跑路的问题其实也是很简单的,对于正式库只给一个增删改查的权限,或者只给一个查询权限(是不是就解决了删库的可能性?) 使用Ro ...
- Jenkins进阶系列之——13修改Jenkins权限控制
说明:本方法适用于安全矩阵和项目矩阵授权策略的Jenkins. 很多童鞋在使用jenkins的时候忘记配置权限或者权限配置错误,然后各种蛋疼.最近闲着无事,折腾了下.好了,闲话少扯. Jenkins的 ...
- ZooKeeper系列(五)—— ACL 权限控制
一.前言 为了避免存储在 Zookeeper 上的数据被其他程序或者人为误修改,Zookeeper 提供了 ACL(Access Control Lists) 进行权限控制.只有拥有对应权限的用户才可 ...
- 10 RESTful 实现权限控制
1 2 身份控制 3 4 只能显示5条数据 5 权限控制 序列化渲染深度 6
- SpringSecurity 3.2入门(10)自定义权限控制认证及授权的过程
上一章的代码实现还存在一些问题,如角色表.权限表的用处没有体现出来,但是已经能完成URL拦截功能,后面将会继续完善认证及授权的过程. 认证及授权的过程如下: 1.容器启动,MyInvocationSe ...
- MySQL用户权限控制一例
Preface I supposed we are encountering a situation that there's an anonymous user has connec ...
- Mysql优化(出自官方文档) - 第八篇(索引优化系列)
目录 Mysql优化(出自官方文档) - 第八篇(索引优化系列) Optimization and Indexes 1 Foreign Key Optimization 2 Column Indexe ...
- mysql 权限控制具体解释
概述 mysql权限控制在不同的上下文和不同的操作水平上都能够进行控制,他们包括例如以下几个 ** 管理权限能够同意用户管理mysql server的操作. 这些权限控制是全局的,不是针对某个特定的数 ...
随机推荐
- iOS7自定义back按钮和pop交互手势
Clambake for iPhone有一个回退按钮在所有的导航条上.这是一个简单的没有文字箭头. 实现一个自定义按钮是简单的.类似这个设置controller 的navigationItem一个le ...
- 解决unknown import path "golang.org/x/sys/unix": unrecognized import path "golang.org/x/sys"
问题描述 当我们使用 go get.go install.go mod 等命令时,会自动下载相应的包或依赖包.但由于众所周知的原因,类似于 golang.org/x/... 的包会出现下载失败的情况. ...
- SVN源码服务器搭建-详细教程
一.引言 笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文, ...
- ADO.NET:连接数据字符串
ylbtech-ADO.NET:ADO.NET-Oracle|SQLServer|MySql|Access|Excel-dddd ADO.NET:连接数据字符串 1.A,SqlServer返回顶部 1 ...
- 初始----python数字图像处理--:环境安装与配置
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
- 2016.11.10 Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver
运行项目rds_web时,出现错误提示:Could not get JDBC Connection; nested exception is java.sql.SQLException: No sui ...
- 【SharePoint】SharePoint2013中使用客户端对象模型给用户控件赋初值
本文要实现的功能:新建一条列表记录,打开新建记录画面时,自动给[申请人]赋值为当前登录用户. 在SharePoint2010中,可以使用SPServices的SPFindPeoplePicker方法来 ...
- TextView划线 android
TextView 加下划线 . 中划线 下过如图: // 中划线 textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.A ...
- WinForm搭载ScintillaNET时文本由于发生偏移被隐藏解决方案
项目用ScintillaNet搭载到WinForm以满足文本编辑的需求,在用FindReplace.Scintilla.Text=“显示内容”输出文本内容的时候会碰到文本被WinForm边框隐藏的情况 ...
- ruby 作为嵌入脚本时使用的注意事项
近期一直在採坑... 假设是作为嵌入式脚本使用ruby的话... 一定会遇到这2个问题... gem安装的,无法在嵌入时使用..为啥.? 由于你没require 'ruby gem' 出现 找不到 E ...