课程 一是 持久 金融 文档 等等 base 数据库管理系统 -m
本文为我自己学习老男孩 MySQL DBA 高级运维课程的学习笔记, 内容均出自老男孩 MySQL DBA 高级运维课程, 老男孩老师讲的很好, 非常感谢老男孩老师. 我是一个菜鸟刚接触运维, 如果我写的文章有不对的地方; 请各位行业的精英, 老师多多批评指点, 呵呵~
1.1 数据库介绍
1.1.1 什么是数据库?
简单的说, 数据库就是一个存放数据的仓库, 这个仓库是按照一定的数据结构 (数据结构是指数据的组织形式或数据之间的联系) 来组织, 存储的, 我们可以通过数据库提供的多种方法来管理数据库里的数据.
1.2 数据库的种类
比较流行的数据库模型有三种, 分别为层次式数据库, 网络式数据库和关系型数据库. 在当今的互联网中, 最常用的数据库模型主要有两种, 即关系型数据库和非关系型数据库(Nosql).
1.2.1 关系型数据库介绍
(1)关系型数据库的由来
虽然网状数据库和层次数据库已经很好的解决了数据库的集中和共享问题, 但是在数据库独立性和抽象级别上仍有很大的欠缺, 用户在对这两种数据库进行存取时, 仍然需要明确数据库的存储结构, 指出存取路径, 而关系数据库就可以较好的解决这些问题.
(2)关系型数据库介绍
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式), 在关系数据库中, 对数据库的操作几乎全部建立在一个或多个关系表格上, 通过对这些关联的表格分类, 合并, 连接或选取等运算来实现数据的管理.
(3)关系型数据库表格之间的关系举例
用 access 或 power builder 完成下列关系表格
小结: 什么是关系型数据库
(1)关系型数据库就是类似于 execl 表格这种二维表来表示的.
(2)关系型数据库使用结构化查询语句 SQL 语句来对数据进行存取的.
(3)关系型数据库的代表 oracle ,mysql.
1.2.2 非关系型数据库
1.2.2.1 非关系型数据库诞生背景
非关系型数据库也被称为 NoSQL 数据库, NoSQL 的本意是 "Not Only SQL"(不仅仅是关系型数据库), 指的是非关系型数据库, 而不是 "No SQL" 的意思(没有 SQL 语句?), 因此 NoSQL 并不是要彻底地否定关系型数据库, 而是作为传统关系型数据库的一个有效补充.
传统的关系型数据库在应对 web 2.0 这个高并发, 高吞储就很困难. 关系型数据库 IO 瓶颈, 性能瓶颈都难以有效突破, 于是 NoSQL(非关系型) 类的数据库就这样诞生了, 并得到了非常迅速地发展.
Google 的 BigTable 与 Amazon 的 Dynamo 是非常成功的商业 NoSQL 实现, 一些开源的 NoSQL 体系如 FaceBook 的 Cassandra,Apache 的 HBase 也得到了广泛认同, Redisd,mongodb 也逐渐的越来越受到各类大中小行公司的欢迎和追捧.
总结: NoSQL 为什么诞生?
动态请求越来越多, 对数据库的要求越来越高. 而传统数据库它遵循 ACID 理论, 要保持数据一致性, 又要使用结构化查询语句 SQL 语句来对数据进行存储; 导致存取速度很慢, 而且还要放磁盘里面去不能保证数据不丢, 所以在这种情况下非关系型数据库就产生了.
1.3 常用关系型数据库
1.3.1 Oracle 数据库
主要应用范围: 传统发企业, 大公司, 政府, 金融, 证券等等.
版本升级: Oracle8i,Oracle9i,Oracle10q,Oracle11g
1.3.2 Mysql 数据库
目前 MySQL 被广泛地应用在 Internet 上的大中小型网站中, 由于其体积小, 速度快, 总体拥有成本低, 尤其是开放源码这一特点, 许多大中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库.
MySQL 数据库主要应用范围: 互联网领域, 大中小型网站, 游戏公司, 电商平台等等.
1.3.3 MariaDB 数据库
MariaDB 数据库管理系统是 MySQL 数据库的一个分支, 主要由开源社区维护, 采用 GPL 授权许可. 开发这个 MariaDB 数据库分支的可能原因之一是: 甲骨文公司收购了 MySQL 后, 有将 MySQL 闭源的风险, 因此 MySQL 开源社区采用分支的方式来避开这个风险. MariaDB 数据库的名称来自 MySQL 的创始人 Michael Widenius 的女儿 Maria 的名字.
MariaDB 基于事务的 Maria 存储引擎, 替换了 MySQL 的 InnoDB 存储引擎, 它使用了 Percona 的 XtraDB(InnoDB 的变体). 这个版本还包括了 PrimeBase XT(PBXT) 和 Federated X 存储引擎.
官网: https://mariadb.org/ .
1.3.4 SQL server
Microsoft SQL Server 是微软公司开发的大型关系型数据库.
主要应用范围: 部分企业电商, 使用 windows 服务平台的企业.
1.3.5 Access 数据库
Access 数据库是美国 Microsoft 公司于 1994 年推出的微机数据库管理系统, 它具有界面友好, 易学易用, 开发简单, 接口灵活等特点, 是典型的新一代桌面关系型数据库管理系统. 它是 Microsoft Office 的成员之一.
Access 是入门级小型桌面数据库, 性能安全性都很一般, 可供个人管理或小型网站使用. 它主要适用于中小型应用系统, 或作为客户机 / 服务器系统中的客户端数据库.
早期应用领域: 小型程序系统 asp+access 系统, 留言板, 校友录等.
1.4 常用非关系型数据库
1.4.1 Memcached(key-value)
Memcached 是一个开源的, 高性能的, 具有分布式内存对象的缓存系统. 通过它可以减轻数据库负担, 加载动态的 web 应用. 缓存一般用来保存一些经常被存取的对象或数据, 通过缓存来存取对象或数据要比在磁盘上存取快很多. Memcached 是一种纯内存缓存系统, 把经常存取的对象或数据缓存在 Memcached 的内存中, 这些缓存的数据被程序通过 API 的方式被存取 Memcached 里面的数据就像一张巨大的 HASH 表, 数据以 key-value 的方式存在. Memcached 通过缓存经常被存取的对象或数据, 从而减轻频繁读取数据库的压力, 提高网站的响应速度, 构建出速度更快的可扩展的 web 应用, 官方: http://memcached.org/ .
由于 Memcached 为纯内存缓存软件, 一旦重启所有数据都会丢失, 因此, 新浪网基于 Memcached 开发了一个开源项目 Memcachedb. 通过 Memcached 增加 Berkeley DB 的持久化存储机制和异步主铺复制机制, 使 Memcached 具备了事务恢复能力, 持久化数据存储能力和分布式复制能力, Memcached 非常适合需要超高性能读写速度, 持久化保存的应用场景, 但是近几年逐渐被持久化产品取代例如: redis.
1.4.2 Redis(key-value)
和 Memcached 类似, redis 也是一个 key-value 型的存储系统, 单 redis 支持的存储 value 类型相对更多, 包括 string(字符串),set(集合) 和 zset(有序集合) 等. Redis 的数据都是缓存在内存中, 区别是 redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件, 并且在此基础上实现了 master-slave(主从) 同步.
官方: http://www.redis.io/documentation
Redis 特点:
(1)支持内容缓存, 这个功能相当于 memcached.
(2)支持持久化, 这个功能相当于 memcachedb,ttserver.
(3)数据库类型更丰富, 比其他 key-value 库功能更强.
(4)支持集群, 分布式.
(5)支持队列等特殊功能.
1.4.3 MongoDB(Document-oriented)
MongoDB 是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富, 最像关系数据库的. 他支持的数据结构非常松散, 类似 json 的 bjson 格式, 因此可以存储比较复杂的数据类型. Mongodb 最大的特点是他支持的查询语言非常强大, 其语法有点类似于面向对象的查询语言.
Mongodb 更详细文档: http://www.mongodb.org/display/DOCS/Manual
官网: http://blog.mongodb.org/ .
1.4.4 Cassandra(Column-oriented)
Apache Cassandra 是一套开源分布式 Key-Value 存储系统.
主要特性:
(1)分布式
(2)基于 column 的结构化
(3)高伸展性
Cassandra 的主要特点就是它不是一个数据库, 而是由一堆数据库节点共同构造的一个分布式网络服务.
Mysql DBA 高级运维学习笔记 - mysql 数据库介绍
来源: http://www.bubuko.com/infodetail-2475584.html