关系性数据库
- MariaDB
- Mysql
- SQLServer
- SQLite
- PostgreSQL
- ORACLE
优点:
易于维护:都是使用表结构
使用方便:sql语言通用可用于复杂查询
复杂操作:支持sql 可用于一个表以及多个表之间非常复杂的查询
缺点:
读写性能比较差,尤其是海量数据的高效率读写
固定的表结构,灵活度稍欠
高并发去写需求,传统关系性数据库来说,硬盘I/O是一个很大的瓶颈
非关系型数据库
- MondoDB
- HBASE
- redis
- Cassandra
- Neo4j
- CouchDB
非关系型数据库严格上不是一种数据库,应该是一种结构化存储方法的集合,可以使文档或者键值对等
优点:
- 速度快,存储数据的格式可以使key.value的形式,文档形式 图片形式等等,使用灵活,应用场景广泛,而关系性数据库则只支持基础类型
- 速度快,nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能用硬盘
- 高扩展
- 成本低
缺点:
不提供sql支持,学习和使用成本较高
无事务处理
数据结构相对复杂,复杂查询方面稍欠
非关系型数据库和分类比较
-
文档型
-
key-value型
-
列式数据库
-
图形数据库
Mysql
mysql 是一种开源的关系型数据库管理系统(RDBMS),广泛用于web应用程序和后端数据库存储和管理,他是一种结构化查询语言数据库,使用标准sql语言进行数据管理,mysql具有高性能,可靠性和扩展性,支持多种操作语言和编程语言,他提供了各种功能,包括数据的存储,检索,更新和删除,以及数据安全和事务管理,mysql被广泛应用于各种规模的应用程序,从个人网站到大型企业级
MongoDB
MongoDB是一种开源的文档型数据库管理系统DBMS,广泛用于web应用程序的后端数据存储和管理,与传统的关系型数据库不同,mongodb采用了面型文档的数据模型,使用类似json的bson(Binary JSON)格式来存储数据,它支持灵活的数据结构,可以存储和查询复杂的文档和嵌套数据,MongoDB还具有高性能 可扩展性和可用性,也适用大型的高负载的应用程序
MongoDB的设计目标是提供高效的数据处理和灵活的数据建模,可以轻松的存储和查询不同结构和类型的数据,它支持复制和分片等分布式架构,可以处理大规模的数据集和高并发访问,此外MongoDB还提供了丰富的查询语言和索引机制,使开发人员可以方便地进行数据库的查询和分析
由于其灵活性,性能和可扩展性,mongoDB被广泛的应用于各种类型的应用程序,特别是需要处理大量非结构化数据和需要快速迭代开发的场景,例如,在社交媒体、物联网、日志分析和内容管理等领域,MongoDB都得到了广泛应用
Mysql和MongoDB的区别
Mysql和MongoDB是两种不同的类型的数据库管理系统,它们有以下几个区别:
-
数据模型:Mysql是一种关系型数据库,采用表格的形式来组织和存储数据,使用sql语言进行查询和操作,而MongoDB是一种文档存储数据库,以类似JSON的BSON格式存储数据,使用面型文档的数据类型,而不是预先定义数据的结构,具有灵活的数据模型
-
事务支持:mysql是一种支持事务的数据库,它具有ACID(原子性、一致性、隔离性和持久性)特性,可以保证数据的完整性和一致性,而MongoDB在早期对事务支持比较弱,但在最新版本中已经增强了对多文档事务的支持
-
扩展性:Mysql使用表格和关系的结构来存储数据,一般采用垂直扩展的方式来提高性能,即通过更多的硬件资源来处理更大的负载,而MongoDB采用文档存储模型,可以通过水平扩展实现更高的性能和吞吐量,即通过添加更多的服务器节点来分布和处理数据
-
查询语言:Mysql使用sql语言进行数据查询和操作,具有强大的查询能力和丰富的功能,支持复杂的关系性查询,而MongoDB使用基于文档的查询语言(如find/和aggregate)可以进行文档级别的查询和操作,对于非结构化或半结构化数据具有更好的灵活性
-
数据一致性:Mysql是一个强一致性的数据库,可以保证在所有的福门上的数据是一致的,而mongoDB在分布式环境中,可能会牺牲一致性来获得更好的可用性和性能,采用最终一致性模型
-
数据一致性:Mysql是一个强一致性的数据库,可以保证在所有的福门上的数据是一致的,而mongoDB在分布式环境中,可能会牺牲一致性来获得更好的可用性和性能,采用最终一致性模型
选择使用Mysql还是MongoDB,取决于具体的应用场景和需求,如果需要吃力复杂的关系型数据库需要强一致性和事务支持的应用,一般会选择mysql,而对于非机构化或半结构化数据,需要灵活性和可扩展性的应用MongoDB是一个更好的选择