阅读:18579回复:0
各类数据库简单介绍数据库介绍 1 数据库简述 简单的说,数据库(英文Database)就是一个存放数据的仓库,这个仓库是按照一定的数据结果(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的、我们可以通过数据库提供的多种方法来管理数据库里的数据更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同。早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。 关系型数据库的诞生。网络数据库和层次数据库很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户对这两种数据库进行存取时,依然需要明确数据的存储结构,支出存储路径。而关系数据库就可以较好地解决这些问题。它是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。 非关系型数据库的诞生。非关系型数据库也被称为NoSQL数据库,NOSQL的本意是“Not Only SQL”指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定非关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库产品。 常用的关系型数据:Mysql数据库、Oracle数据库、MariaDB数据库(Mysql的分支)、SQL Server数据库、Access数据库,其他不常用的有DB2,PostgreSQL,Informix,Sybase等。常用的非关系型数据:memcached、Redis、MongoDB、Cassandra,其他不常用的数据库:HBase、MemcacheDB、BerkeleyDB、Tokyo Cabinet\Tokyo Tyrant(ttserver)等。国产数据库有达梦、金仓、神通、南大等,这些数据库多应用于央企,国家财政,军事等专用领域。 2 数据库比较 2.1 Mysql数据库优点 (1)MySQL性能卓越、服务稳定,很少出现异常宕机; (2)MySQL开放源代码且无版权制约,自主性及使用成本低; (3)MySQL历史悠久,社区及用户活跃,遇到问题可以及时解决; (4)MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低; (5)MySQL品牌口碑非常好,使得其在很多互联网企业中使用; (6)MySQL支持多用操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言、C++语言有很好的支持。 2.2 Oracle数据库优点 (1)支持多用户、大事务量的事务处理; (2)在保持数据安全性和完整性方面性能优越; (3)支持分布式数据处理。将分布在不同物理位置的数据库用通信网络连接起来,组成一个逻辑上统一的数据库,完成数据处理任务; (4)具有可移植性。Oracle可以在Windows、Linux等多个操作系统平台上使用。 以上两种数据库是基于“客户端/服务器”(Client/Server)系统结构。需要在服务器端启动服务。 2.3 SQLite数据库 SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。使用SQLite有以下优点: (1)不需要一个单独的服务器进程或操作的系统(无服务器的)。 (2)SQLite 不需要配置,这意味着不需要安装或管理。 (3)一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 (4)SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。 (5)SQLite 是自给自足的,这意味着不需要任何外部的依赖。 (6)SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。 (7)SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。 (8)SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。 (9)SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。 3 数据库选择 1. 读写速度; 2. 是否支持事务以及复杂查询; 3. 业务数据量增长速度; 4. 表结构是否明确。 oracle数据库:oracle作为一种商业性数据库,在事务处理方面有自己独到的优势,功能比较强大,市场占有率也比较高。oracle数据库是一种大型的关系型数据库,在使用上会收费。在部署上,可以根据自己的环境采用单节点或者集群部署。经常会使用于银行和金融机构,存储大量数据,可以对海量数据进行分析处理,在安全性上使用访问控制和多种数据备份机制,可靠性高。 图片:8.png Mysql:作为一种开源的轻量级数据库,在开源数据库中比较流行,由于小巧安装方便快捷,经常会用于互联网公司,维护也比较方便。因为开源,使用上比较灵活,mysql还有许多第三方的存储引擎,可以根据自己的需要进行安装。在功能上mysql可能没有oracle强大,但是对于资源的占用非常少,数据恢复快。在维护上,追求稳定的性能和易用性。 图片:9.png redis:redis作为一种缓存数据库,对于数据的读写特别快,redis之所以快,是因为它数据放在内存中,但是内存比较贵,另一方面,内存也是有限制的,当内存不够时,就需要使用redis的分布式方案。redis作为一种非关系型数据库,可以适用于高并发场景,配合关系型数据库作为做高速缓存,也可以降低磁盘IO,使用键值对存储,不适用于结构复杂的sql数据。 在选择数据库时,既要考虑成本,还有考虑维护的稳定和便利性,结合自己的设备规模。最重要的,需要结合我们的业务,如果高安全性,海量数据,可以选择oracle;网站上的快速查询,高并发访问,可以选择redis。 |
|