SlideShare una empresa de Scribd logo
1 de 20
华东地区数据库大会



  主   题:对MySQL DBA的一些思
  考
  分 享 者:金 官 丁
  新浪微博:mysqlops
主要内容
 为何要使用MySQL数据库产品

 MySQL DBA与其他商业数据库产品DBA的区别

 DBA无为状态的心法

 使用好MySQL的几点建议

 总结
为何要使用MYSQL数据库产品
其他数据库产品

 MySQL数据库产品

 小结
其他数据库产品
 SQL Server、Oracle、DB2等商业数据库产品
 Windows收费操作系统对SQL Server的发展限制与促进
 PostgreSQL为代表的其他开源数据库产品
 NoSQL数据库产品

总结
商业产品
①    收费且费用较贵
②    License收费模式,导致不适合大规模部署


其他非商业产品
①    产品不成熟
②    业务场景限制
③    不满足业务需求
④    技术人数量太少
MYSQL数据库产品之优势
 MySQL数据库产品支持的功能及特性,能满足企业的数据存储与管理、稳
定性、安全性等需求,尤其是数据伪分布式存储的需求

 MySQL采用开放式存储引擎技术架构

 MySQL采用开放源码策略

 MySQL社区版本允许遵守GPL协议前提下免费使用

 MySQL数据库产品趋于成熟和稳定

 MySQL数据库产品在互联网行业内占比重越来越大,

承担的数据服务角色也越来越重要

 MySQL数据库产业链正逐渐趋于成熟

 MySQL DBA从业人群正逐渐形成规模效应
MYSQL数据库产品之劣势
我们使用者的因素:
 MySQL数据库中的存储引擎种类众多,且内部机制和实现技术差异较大

 为省钱多使用MySQL社区版本,其开发和测试主要是开源爱好者完成

 多数公司把MySQL简单地当成存储使用
                              例如:JOIN算法,
 多数公司或技术人,认为MySQL”超简单”       分区的算法和
                              Global Index,
                              MyISAM设计缺陷
MySQL AB公司的因素:                等


 MySQL某些功能、实现技术和算法不够强大不够完善

 MySQL AB公司二次被收购对象为甲骨文

 MySQL AB被收购之后,技术人才流失严重,内部投入不足,不对社区开

源
MYSQL数据库产品之小结
 使用任何数据库产品,必须要有相应技术、知识和经验的人才储备
 合理的业务场景,使用正确的数据库产品
 数据库产品的更换,必须考虑新知识或技术的学习和出错的成本
 不同数据产品,架构和存取设计各有异同
 精确做到什么样的马,配什么样的鞍
与其他商业数据库产品DBA的区别
 分类不同

其他数据库产品的DBA--系统DBA和开发DBA

MySQL DBA -- 无法像其他数据库产品的DBA一样进行分类

 工作侧重点不同

其他数据库产品的DBA – 重SQL优化,重数据库优化,不一定关心业务需求和系统架构

MySQL DBA – 重业务需求,重系统架构,重数据库设计,最后才是SQL优化和数据库优

化

 产品的成熟度

其他数据库产品的DBA 角色定位 -- 保健医生

MySQL DBA 的角色定位 – 医生+保姆
DBA无为状态的心法
 从真实的业务需求出发,从熟悉已有产品着手,莫过于关心产品的价值

 从业务系统的特点出发,确定合理的数据层架构和硬件架构

 注重数据库及服务器性能数据的收集和分析,为DBA提供抉择的数据依据

 培养分析和猜测的能力,但要以用户真实需求为准
DBA无为状态的心法
产品生产线成员的“利益链”图谱
DBA无为状态的心法
 业务优化最优先,其次设计和程序优化,最后数据库和SQL优化

 SQL、索引组织和数据库端优化是随数据增长而不断重新平衡的过程
使用好MYSQL的几点建议
 熟读和深入理解MySQL官方手册的资料
①    数据类型
②    DDL、DML操作时危险性动作的处理
③    数据表对象的存储引擎选择
④    服务器端核心参数的作用及配置技巧
⑤    服务器状态参数的意义及如何用于指导优化
⑥    组合索引的字段顺序抉择
⑦    编写的SQL要便于优化器进行裁剪
⑧    范式、内连接和JOIN实现算法的三者关系
    嵌套循环算法总结
a)   适用于一个集合大而另一个集合小的情况(将小集合做为外循环),I/O性能不错;
b)   当外循环输入相当小而内循环非常大且有索引建立在JOIN字段上时,I/O性能相当不错;
c)   当两个集合中只有一个在JOIN字段上建立索引时,一定要将该集合作为内循环;
d)   对于一对一的匹配关系(两个具有唯一约束字段的联结),可以在找到匹配元组后跳过该次内循环的剩余部
     分(类似于编程语言循环语句中的continue);
使用好MYSQL的几点建议
 要基本清楚存储引擎:MyISAM、InnoDB、MEMORY的存储格式和工作机
制
 生产环境大对象的DDL
 生产环境大数据量的DML
 生产环境要尽量拒绝模糊查询的SELECT操作,转为搜索引擎模式
 MySQL数据库InnoDB存储引擎的事务隔离级别
①   READ UNCOMMITED
②   READ COMMITED
③   REPEATABLE READ
④   SERIALIZABLE

 MySQL软件版本选择:查阅修复的BUG List和改进或增加的功能列表->测
试
->开发测试环境试用->业务压力测试环境->非核心业务生产环境->某大压力生
产环境试用->正式大规模使用
使用好MYSQL的几点建议
二进制日志登记模式和事务隔离级别的组合设置
a) 日志登记模式
① STATEMENT
② ROW
③ MIXED

a) 事务隔离级别
①    READ UNCOMMITED
②    READ COMMITED
③    REPEATABLE READ
④    SERIALIZABLE
推荐设置
只读业务:
transaction-isolation = read-committed
binlog-format = mixed
非只读为主的业务应用场景
transaction-isolation = repeatabled-read
binlog-format = mixed
使用好MYSQL的几点建议
 存储引擎InnoDB的主键选型非常重要
使用好MYSQL的几点建议
 左连接或右连接的正确写法及错误写法区别
正确写法:
SELECT M.columnname……,N.* columnname…..
FROM left_table M
LEFT JOIN right_table N ON M. columnname_join=N. columnname_join AND N. columnname=XXX
WHERE M.columnname=XXX AND M.…..

解读:
a)   ON子句连接条件中M. columnname_join=N. columnname_join ,用于把二个表中等值的记录连接在一
     起,但是不影响记录集的数量。若是表left_table中的某记录,无法在表right_table 找到对应的记录,则此
     记录依然显示在结果集中,表 right_table需要在查询结果集显示的列的值用NULL替代;
b)   ON子句连接条件中表right_table. columnname=XXX用于控制right_table表是否有符合要求的列值还是
     用NULL替换的方式显示在查询列中,不影响记录集的数量;
c)   WHERE子句控制记录是否符合查询要求,不符合则过滤掉;

常见错误写法之一:
SELECT M.columnname……,N.* columnname…..
FROM left_table M LEFT JOIN right_table N
ON M. columnname_join=N. columnname_join AND N. columnname=XXX AND M.columnname=XXX ;
使用好MYSQL的几点建议
莫给优化器犯错的机会
总结
 MySQL入门易,也有捷径可走,深入亦难

 系统优化中,业务优化先行,其次架构优化,再次程序逻辑优化,接着SQL和索引
组织结构优化,最后服务器端参数优化

 作为一名DBA学会忘记身份认同,牢记自己的职责,合理巧妙地渗透到整个生产线

 DBA要学会永远为自己和他人留一条后路,至少保持系统20%处理能力的余量

 优秀的DBA能把问题扼杀在摇篮中,用合理的资源或金钱,办更多的事情,为企业
创造更多的价值

 运维人员要学会合理地自动化,从重复繁杂的事务中解放自己,思考和做更有意义
的事情,也为他人腾位置

 运维人员要学和懂管理,尤其要学会合理安排资源

 技术人要学会应用哲学的思想,辩证地看待产品、技术和架构
技术网站介绍
结束



     问答 & 感谢

Más contenido relacionado

Destacado

MySQL AIO详解
MySQL AIO详解MySQL AIO详解
MySQL AIO详解mysqlops
 
DBA新人的述职报告
DBA新人的述职报告DBA新人的述职报告
DBA新人的述职报告mysqlops
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台mysqlops
 
搜狐畅游数据库运维经验分享
搜狐畅游数据库运维经验分享搜狐畅游数据库运维经验分享
搜狐畅游数据库运维经验分享mysqlops
 
企业信息系统性能优化实战
企业信息系统性能优化实战企业信息系统性能优化实战
企业信息系统性能优化实战mysqlops
 
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB ClusterPercona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB Clustermysqlops
 
Greenplum管理实践
Greenplum管理实践Greenplum管理实践
Greenplum管理实践mysqlops
 
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementPercona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementmysqlops
 
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划mysqlops
 
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事mysqlops
 
运维超级管理工具 Super agent
运维超级管理工具 Super agent运维超级管理工具 Super agent
运维超级管理工具 Super agentmysqlops
 
基于Lucene的站内搜索 Beta
基于Lucene的站内搜索 Beta基于Lucene的站内搜索 Beta
基于Lucene的站内搜索 Betazwxgo
 
人大2010新生住宿指南
人大2010新生住宿指南人大2010新生住宿指南
人大2010新生住宿指南liufabin 66688
 
数据库部门介绍
数据库部门介绍 数据库部门介绍
数据库部门介绍 mysqlops
 
系统邮件实战技巧
系统邮件实战技巧系统邮件实战技巧
系统邮件实战技巧samon127
 
MySQL数据库生产环境维护
MySQL数据库生产环境维护MySQL数据库生产环境维护
MySQL数据库生产环境维护mysqlops
 
The Rules of Scalable database
The Rules of Scalable databaseThe Rules of Scalable database
The Rules of Scalable databaseDahui Feng
 
Oracle Security 101
Oracle Security 101Oracle Security 101
Oracle Security 101Dahui Feng
 

Destacado (20)

MySQL AIO详解
MySQL AIO详解MySQL AIO详解
MySQL AIO详解
 
DBA新人的述职报告
DBA新人的述职报告DBA新人的述职报告
DBA新人的述职报告
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台
 
搜狐畅游数据库运维经验分享
搜狐畅游数据库运维经验分享搜狐畅游数据库运维经验分享
搜狐畅游数据库运维经验分享
 
企业信息系统性能优化实战
企业信息系统性能优化实战企业信息系统性能优化实战
企业信息系统性能优化实战
 
Cbo100053
Cbo100053Cbo100053
Cbo100053
 
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB ClusterPercona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
 
Greenplum管理实践
Greenplum管理实践Greenplum管理实践
Greenplum管理实践
 
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementPercona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-management
 
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
 
腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事腾讯即时聊天IM1.4亿在线背后的故事
腾讯即时聊天IM1.4亿在线背后的故事
 
运维超级管理工具 Super agent
运维超级管理工具 Super agent运维超级管理工具 Super agent
运维超级管理工具 Super agent
 
基于Lucene的站内搜索 Beta
基于Lucene的站内搜索 Beta基于Lucene的站内搜索 Beta
基于Lucene的站内搜索 Beta
 
人大2010新生住宿指南
人大2010新生住宿指南人大2010新生住宿指南
人大2010新生住宿指南
 
数据库部门介绍
数据库部门介绍 数据库部门介绍
数据库部门介绍
 
系统邮件实战技巧
系统邮件实战技巧系统邮件实战技巧
系统邮件实战技巧
 
MySQL数据库生产环境维护
MySQL数据库生产环境维护MySQL数据库生产环境维护
MySQL数据库生产环境维护
 
The Rules of Scalable database
The Rules of Scalable databaseThe Rules of Scalable database
The Rules of Scalable database
 
Oracle Security 101
Oracle Security 101Oracle Security 101
Oracle Security 101
 
Go
GoGo
Go
 

Similar a 对MySQL DBA的一些思考 (20)

如何针对业务做DB优化
如何针对业务做DB优化如何针对业务做DB优化
如何针对业务做DB优化
 
Sybase Analytic Appliance
Sybase Analytic ApplianceSybase Analytic Appliance
Sybase Analytic Appliance
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Sequoia db 技术概述_sacc
Sequoia db 技术概述_saccSequoia db 技术概述_sacc
Sequoia db 技术概述_sacc
 
No sql带来了什么 孙立
No sql带来了什么   孙立No sql带来了什么   孙立
No sql带来了什么 孙立
 
百度数据库中间层
百度数据库中间层百度数据库中间层
百度数据库中间层
 
构建高性能MySQL系统
构建高性能MySQL系统构建高性能MySQL系统
构建高性能MySQL系统
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
 
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
 
Se shang hai_04_cloudybi
Se shang hai_04_cloudybiSe shang hai_04_cloudybi
Se shang hai_04_cloudybi
 
六合彩
六合彩六合彩
六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 

Más de mysqlops

The simplethebeautiful
The simplethebeautifulThe simplethebeautiful
The simplethebeautifulmysqlops
 
Oracle数据库分析函数详解
Oracle数据库分析函数详解Oracle数据库分析函数详解
Oracle数据库分析函数详解mysqlops
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationmysqlops
 
Percona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimizationPercona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimizationmysqlops
 
Pldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internalsPldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internalsmysqlops
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫mysqlops
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
eBay EDW元数据管理及应用
eBay EDW元数据管理及应用eBay EDW元数据管理及应用
eBay EDW元数据管理及应用mysqlops
 
基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现mysqlops
 
eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析mysqlops
 
QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示mysqlops
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDLmysqlops
 
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规mysqlops
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
新浪微博开放平台Redis实战
新浪微博开放平台Redis实战新浪微博开放平台Redis实战
新浪微博开放平台Redis实战mysqlops
 
MySQL Explain输出详解
MySQL Explain输出详解MySQL Explain输出详解
MySQL Explain输出详解mysqlops
 
MySQL Explain输出详解
MySQL Explain输出详解MySQL Explain输出详解
MySQL Explain输出详解mysqlops
 
如何写有效的Bug报告
如何写有效的Bug报告如何写有效的Bug报告
如何写有效的Bug报告mysqlops
 

Más de mysqlops (20)

The simplethebeautiful
The simplethebeautifulThe simplethebeautiful
The simplethebeautiful
 
Oracle数据库分析函数详解
Oracle数据库分析函数详解Oracle数据库分析函数详解
Oracle数据库分析函数详解
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
 
Percona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimizationPercona Live 2012PPT: MySQL Query optimization
Percona Live 2012PPT: MySQL Query optimization
 
Pldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internalsPldc2012 innodb architecture and internals
Pldc2012 innodb architecture and internals
 
分布式爬虫
分布式爬虫分布式爬虫
分布式爬虫
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
eBay EDW元数据管理及应用
eBay EDW元数据管理及应用eBay EDW元数据管理及应用
eBay EDW元数据管理及应用
 
基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现基于协程的网络开发框架的设计与实现
基于协程的网络开发框架的设计与实现
 
eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析eBay基于Hadoop平台的用户邮件数据分析
eBay基于Hadoop平台的用户邮件数据分析
 
QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示QQ聊天系统后台架构的演化与启示
QQ聊天系统后台架构的演化与启示
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDL
 
Memcached
MemcachedMemcached
Memcached
 
DevOPS
DevOPSDevOPS
DevOPS
 
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
新浪微博开放平台Redis实战
新浪微博开放平台Redis实战新浪微博开放平台Redis实战
新浪微博开放平台Redis实战
 
MySQL Explain输出详解
MySQL Explain输出详解MySQL Explain输出详解
MySQL Explain输出详解
 
MySQL Explain输出详解
MySQL Explain输出详解MySQL Explain输出详解
MySQL Explain输出详解
 
如何写有效的Bug报告
如何写有效的Bug报告如何写有效的Bug报告
如何写有效的Bug报告
 

对MySQL DBA的一些思考