Mysql DBA高级运维学习笔记-mysql数据库介绍

本文为我自己学习老男孩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的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构造的一个分布式网络服务。

原文地址:http://blog.51cto.com/10642812/2065426

时间: 2024-08-08 01:27:59

Mysql DBA高级运维学习笔记-mysql数据库介绍的相关文章

Mysql DBA高级运维学习笔记-Mysql数据库的多种安装方法

3.1 MySQL数据库的安装 3.1.1 yum/rpm方式安装 注意:yum/rpm方式安装MySQL适合所有MySQL软件产品系列. (1)rpm包方式安装mysql我们必须安装Mysql-server和Mysql.client包,rpm安装很简单这里就不说了. (2)yum方式安装mysqlyum 安装的方式很简单,只要执行yum install mysql-server –y即可.大的门户把源码根据企业的需求制作成rpm,搭建yum仓库,yum install xxx -y. 3.1.

Mysql DBA 高级运维学习笔记-MySQL备份与恢复实战案例及生产方案

1.全量备份与增量备份 1.1 全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B –A gzip >/server/backup/mysq_backup_$(date +%F).sql.gz 备份一个库: mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B linzhong

Mysql DBA 高级运维学习笔记-Mysql增量备份及数据恢复实战

大家好本文讲了mysql数据库的增量恢复.老男孩老师讲的很好很细,我自己呢整理了老师讲的部分内容,请大家将就看:文章内容比较多.比较乱,请大家认真总结知识,发现问题请及时批评指点~ 1.1 MySQL数据库的备份与恢复 1.1.1备份单个数据库练习多种参数使用 Mysql数据库自带了一个很好用的备份命令,就是mysqldump, 它的基本使用如下: 语法:mysqldump –u用户名 –p密码 数据库名>备份的文件名 范烈1:备份名字为cuizhong的库 a.查看备份前的数据 [[email

Mysql DBA 高级运维学习笔记-Mysql常用基础命令实战

7.1 单实例mysql启动和关闭方法 (1)常规方法启动数据库 1.启动mysql服务命令 [[email protected] ~]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! 2.查看mysql端口 [[email protected] ~]# ss -lnt|grep 3306 LISTEN 0 50*:3306 *:* 3.查看mysql进程 会启动两个进程第一个就是mysql_safe第二个是mysqld [[email pr

Mysql DBA 高级运维学习笔记-mysql数据库常用管理应用

9.1 创建数据库 命令语法:create database<数据库名> 注意库名不能数字开头在mysql默认字符集情况下建立数据库测试如下: a. 建立一个名为zbf的数据库 [email protected] 08:3120->create database zbf; Query OK, 1 row affected (0.00 sec) [email protected] 08:3810->show databases like 'z%'; +---------------+

Mysql DBA 高级运维学习笔记-Mysql插入中文乱码问题

1.1 mysql插入中文数据乱码 1.1.1MySQL中添加中文数据并查看检表语句 a.创建cuizhong测试数据库并查看建表语句 mysql> create database cuizhong; Query OK, 1 row affected (0.00 sec) mysql> show create database cuizhong\G *************************** 1. row *************************** Database:

Mysql DBA 高级运维学习笔记-Mysql数据库字符集知识

1.2 Mysql数据库字符集知识 1.2.1 MySQL数据库字符集介绍 简单的说,一套文字符号及其编码.比较规则的集合. MySQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念.其中,字符集是用来定义MySQL数据字符串的存储方式,而校对规则则是定义比较字符串的方式.前面建库的语句中,CHARACTER SET latin1即为数据库字符集而COLLATE latin1_wedish_ci 为校对字符集,有关字符集详细内容参考mysql手册,第10张字

Mysql DBA 高级运维学习笔记-Mysql数据库中的日志文件

1.MySQL 引擎概述 1.1 什么是存储引擎 我们在录制一个视频文件的时候,可以转换成不同的格式如mp4,avi,wmv等,而且在电脑的磁盘上也会存在于不同类型的文件系统windows里常见的ntfs,fat32,存在于linux操作系统里常见的ext3,ext4,xfs.但是跟我们呈现的内容都是一样的,直观的区别是占用系统空间的大小与清晰程度不一样.那么数据库存储引擎也有很多种存储方式.无论用什么存储引擎来存储,用户看到的数据都是一样的.不同的引擎存储,引擎功能,占用的空间的大小,读取性能

Mysql DBA 高级运维学习笔记-mysql建表语句及表知识

9.9 表操作 9.9.1以默认字符集建库 以默认格式的为例,指定字符集建库 [email protected] 07:0205->create database wwn; Query OK, 1 row affected (0.00 sec) [email protected] 07:0339->SHOW CREATE DATABASE wwn\G; *************************** 1. row *************************** Database