0x00 前言
当前数据库技术以及相对成熟,数据库大致可以分为关系型数据库和非关系性数据库,其中关系型数据主要以Mysql、Oracle、PostgreSQL、Mssql等为代表,非关系型数据主要以Redis、Mongodb、Hbase等为代表。它们适用于各种不同应用场景,各有优势。
0x01 关系型数据库
一、Mysql
简介
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL是一个高性能且相对简单的数据库系统,与一些大型系统的设置和管理相比,其复杂程度较低。 MySQL 数据库体积小、速度快、总体拥有成本低、开放源代码,其有着广泛的应用。
特点
1. 价格
MySQL开源免费,相对于商业付费的数据数来说略有不足,但对于个人和中小企业来说是不错的选择
2. 体积
MySQL数据库体积较小,安装简便
3. 支持查询语言
MySQL 使用的 SQL 语言是用于访问数据库的最常用的标准化语言
MySQL 为多种编程语言提供了 API,编程语言包括 C、C++、Java、Python、Perl、PHP、Eiffel、Ruby 和 Go 等等
4. 功能
MySQL数据库没有用户数的限制,多个客户机可同时使用同一个数据库
MySQL支持事务处理
MySQL支持多线程,充分利用 CPU 资源
MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库
MySQL支持日志记录,慢查询记录
MySQL支持访问控制、权限控制
5. 连接性和安全性
MySQL是完全网络化的,可在因特网上的任何地方访问其数据库
MySQL支持访问控制、但是默认是root用户,需要更改配置或者更换密码等
6. 可移植
MySQL既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中
MySQL支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统
7. 速度
MySQL 优化了 SQL 查询算法,有效地提高查询速度
下载地址
https://dev.mysql.com/downloads/mysql/
官方使用手册
https://dev.mysql.com/doc/connector-net/en/
二、Oracle
简介
Oracle数据库系统是美国Oracle(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。它具有完整的数据管理功能、产品关系完备并支持分布式处理。
特点
1.价格
Oracle数据库是商业数据库软件,需要付费使用
2.体积
Orcale体积较大,安装包最小需要2.6GB,根据不同的系统安装包大小各不一样,安装难度较大
3. 支持查询语言
Orcale使用的 SQL 语言是用于访问数据库的最常用的标准化语言
Orcale为多种编程语言提供了 API,编程语言包括Java、Python、Node.js、.Net 等等
4. 功能
Oracle支持多用户、大事务量的事务处理
Oracle支持分布式高性能数据处理
Oracle支持大量数据存储
Oracle支持数据持久存储
Oracle支持数据分析、界面管理
Oracle支持数据云服务
5.连接性和安全性
Oracle支持数据可靠
Oracle支持数据安全性和完整性控制
Oracle支持网络连接
6. 可移植
Oracle支持各类系统平台
Oracle支持数据通用
7.速度
oracle运行速度与效率高
下载地址
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c
官方使用手册
https://www.oracle.com/database/technologies/
三、PostgreSQL
简介
PostgreSQL 是一个免费的对象-关系数据库服务器,在灵活的BSD许可证下发行。PostgreSQL 开发者把它念作 post-gress-Q-L,PostgreSQL 的 Slogan 是 "世界上最先进的开源关系型数据库",PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES 。
特点
1.价格
PostgreSQL 因为自由宽大的许可证,任何人都可以以任何目的免费使用、修改和分发PostgreSQL, 不管是私用、商用还是学术研究目的
2.体积
软件大小较低,安装难度较小
3.查询语言
PostgreSQL 使用的 SQL 语言是用于访问数据库的最常用的标准化语言
PostgreSQL 为多种编程语言提供了 API
4. 功能
PostgreSQL支持多用户、大事务量的事务处理
PostgreSQL支持分布式高性能数据处理
PostgreSQL支持大量数据存储
PostgreSQL支持数据持久存储
PostgreSQL支持高可定制
PostgreSQL支持数据云服务
5. 连接性和安全性
PostgreSQL运行稳定性强
PostgreSQL支持数据可靠
PostgreSQL支持数据安全性和完整性控制
PostgreSQL支持网络连接
6. 可移植
PostgreSQL支持各类系统平台,自8.0后也开始支持windows
PostgreSQL支持数据通用
7.速度
PostgreSQL运行速度与效率相对较快
下载地址
https://www.postgresql.org/download/
官方使用手册
http://www.postgres.cn/docs/11/
四、Mssql
简介
MS SQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。
特点
1.价格
不免费,需要付费
源码不开放
2.体积
sql server1个G不到2个G大小,安装工序相对复杂
3.查询语言
sql server使用的 SQL 语言是用于访问数据库的最常用的标准化语言
sql server为多种编程语言提供了 API,编程语言包括Java、Python、Node.js、.Net 等等
4. 功能
提供可靠且可扩展的RDBMS
5. 连接性和安全性
安全性方面,没有获得任何安全证书
6. 可移植
2017版本之前不支持跨平台、只能运行在windows环境下,无法在windows意外环境运行,基本支持跨平台
7.速度
速度相对较慢
下载地址
https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads?rtc=1
官方使用手册
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup?view=sql-server-ver15
0x02 非关系型数据库
一、Redis
简介
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
特点
1.价格
开源免费
2.体积
体积较小,安装免费
3.查询语言
使用nosql查询语句
支持多语言api
4. 功能
读写性能10万/S
键值对的数据结构
简单稳定
支持事务,操作都是原子性的
可用于缓存、消息,按key设置过期时间,过期自动删除
淘汰策略
5. 连接性和安全性
发生断电或机器故障,数据可能会丢失,持久化到硬盘
实现多个相同数据的redis副本
哨兵机制实现高可用,保证redis节点故障发现和自动转移
6. 可移植
支持跨平台
7.速度
速度快,数据放在内存中
下载地址
https://redis.io/download/
官方使用手册
https://redis.io/docs/
https://www.lanmper.cn/redis/c467.html【非官方】
二、Mongodb
简介
MongoDB是一个基于分布式文件存储 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系型和非关系型的数据库,是非关系数据库中功能最为丰富,最像关系数据库的。它支持的数据结构非常松散,因此可以存储比较复杂的数据类型。
特点
1.价格
开源免费,但是有代价
2.体积
体积较小,易于扩展,方便部署
3.查询语言
nosql查询语句
支持多语言查询
4. 功能
支持完全索引,包含内部对象
支持动态查询
模式自由
使用高效的二进制数据存储,包括大型对象
自动处理碎片,以支持云计算层次的扩展性
强大的聚合工具
5. 连接性和安全性
面向集合存储,易存储对象类型的数据
可以网络访问
支持复制和故障恢复
6. 可移植
支持多平台
7.速度
高性能,可扩展
下载地址
https://www.mongodb.com/download-center/community
官方使用手册
https://www.mongodb.com/docs/atlas/app-services/tutorials/