---mysql oracle redis mongodb
mysql 和 mongodb 主要应对互联网行业
hadoop 应对数据分析,大数据等
Oracle 应对传统行业
MySQL和mongodb 的区别?
1.MySQL针对 大型互联网 行业
2.mongodb 针对大数据量存储,快速的数据量查询需求
3.比如 滴滴打车 因为地理位置索引 只有在 mongodb 才会有,MySQL 里面是没有的
4.可以使用 mongodb 作为我们数据库前端的一个 缓存 数据库;
数据库的最好程度就是 数据库里面只存储数据,不进行运算和分析
运算、分析、数据提取这些尽可能的都放在前端缓存数据库进行
缓存数据库比如:mongodb、 redis、 memcached (缺点:丢失数据)
而且一般情况下,生产环境宕机风险很小;前端缓存有可能宕机,在添加一台缓存服务器就行
MySQL 的开源市场
1.Oracle收购MySQL 花费 74亿美金
2.mariadb ,mysql 分支,防止 MySQL被收购后成为收费数据库,mariadb 等于接替MySQL的存在
3.mongodb ,非关系型数据库 应用于 滴滴打车 微信搜索附近人等(mongodb 地理位置索引)
DBA素质
1.抗压能力(不加班不正常)
2.会猜测(需要具备处理问题的思路,从哪方面排查)
3.团队协作(开发、测试、运营、运维等都会进行相应的沟通,最好的DBA 是懂业务的!)
4.MySQL是纯甲方 ,需要了解公司业务。先熟悉数据字典,在慢慢了解公司业务,最主要的是保证数据的完整和安全
5.行情:MySQL的新版本,新特性
6.流程化:只要是涉及的数据库操作。一定要有邮件,留存证据
7.强大的自信心和表达能力,给领导反馈每天的工作量。周报
----学习MySQL
MySQL:
1.插件式存储引擎:innodb (区别于其他数据库最主要的一点)
2.binlog ,主从 replication ,进行高可用搭建。通过 binlog 日志进行复制,保证数据同步
3.第三方工具(sqlyog 、 navicat、 pevcona 、toolit(优化工具) )
4.官方旗下的MySQL(Oracle下的MySQL,原因是MySQL被收购了)的一些功能特点,比如:进行 ddl 语句不会锁整张表
5.互联网背景下 MySQL使用比较广泛,尤其创业公司,MySQL晚的就是架构;
--数据库种类
1.关系型数据库
MySQL Oracle sql server
2.非关系型数据库
mongodb、memcache 、redis 、hbase 等;
MySQL--官网网址:http://www.mysql.com
GPL 开源协议
社区版
企业版是不支持 开源协议的,而且还需要购买服务
(游戏和电商类平台最能学到东西)
MySQL DBA 3条发展线路
1.运维,这条路越走越窄。。。
2.管理、经理---总监,看运气
3.架构师,业务分析 ,架构瓶颈的估测 ,需要shell python 支持
---选择MySQL数据库的原因
1.MySQL 性能卓越,服务稳定,很少出现异常宕机
2.MySQL 开发源代码且没有版本制约,自主性及使用成本低
3.MySQL历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助
4.MySQL软件体积小,安装使用简单,且易于维护,即:安装维护成本低
5.MySQL品牌口碑效应,使得企业无需考虑就可以直接使用,LAMP LNMP 流行架构
6.MySQL支持多种操作系统,提供多种 PAI 接口,支持多种开发语言
特别针对流行的 PHP ,Java 语言有很好的支持
--LNMP N 支持多层负载
---MySQL分类与版本升级
官方网站 http://www.mysql.com
MySQL发布采用双授权政策,和大多数开源产品一样,分为社区版和商业版
而这两个版本又各自分四个版本一次发布
alpha版、beta 版、rc版、ga 版、
alpha 是刚开发完就发布到网上的
beta 经过简单测试
rc 可以上线,但是也会存在一些问题
GA 基本上没问题,目前使用的就是这个版本了
--MySQL 版本选择
MySQL的三条产品线
1.MySQL 5.0-5.1
2.MySQL 5.4-5.7
3.MySQL 6.0-7.0 主要是 MySQL cluster
注:MySQL cluster 经常出现问题,几乎很少用;所以 主要版本都是 5.4-5.7
---MySQL 生产场景 选择 MySQL 数据库的建议
1.开源、社区稳定版、GA版本
2.主流 5.5 其次 5.1或者 5.6
3.GA 版发布 6个月以上的版本
4.前后几个月没有大的BUG 修复。而不是 大量修复 BUG 的集中版本
5.考虑开发人员开发程序使用的版本是否兼容你选择的版本,作为内部开发测试库环境。允许大概3-6个月之后才能正式上线
---MySQL 由:数据库+数据库实例组成
数据库:
物理操作系统文件或者其他形式文件类型的集合,在MySQL中 数据库文件可以是:frm.myd.idb 结尾文件
数据库实例:
由数据库后台进程/线程 以及一个共享内存区组成
数据库实例才是真正用来操作数据库文件的
两者关系:一对一;一对多
内存+后台进程=实例
一个实例对应一个库;或者一个库对应多个实例
---MySQL 安装
1.使用 yum 安装
2.安装和配置MySQL的二进制包(*)
3.安装和配置MySQL的RPM包
4.安装和配置MySQL的源码包
5.MySQL启动过程中的常见错误
优先选择 二进制包 安装MySQL
日积月累