当前位置: 首页 > 图灵资讯 > java面试题> javaMySQL面试题-MongoDB

javaMySQL面试题-MongoDB

来源:图灵教育
时间:2024-05-28 13:37:52
MongoDB 是一个基于分布式文件存储的数据库,是非关系数据库中功能最丰富、最像关系数据库的。在高负载的情况下,通过添加更多的节点,可以保证服务器性能。由 C++ 编写,可以为 WEB 应用提供可扩展、高性能、易部署的数据存储解决方案。

什么是 BSON

{key:value,key2:value2}和Json类似,是一种二进制形式的存储格式,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,比如 value包括字符串,double,Array,DateBSON可以做为网络数据交换的一种存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。

BSON有三个特点:轻量性、可遍历性、高效性

优点:

●文档结构的存储方式,能够更便捷的获取数据。对于一个层级式的数据结构来说,使用扁平式的,表状的结构来查询保存数据非常的困难。

●内置GridFS,支持大容量的存储。GridFS是一个出色的分布式文件系统,支持海量的数据存储,满足对大数据集的快速范围查询。

●性能优越千万级别的文档对象,近10G的数据,对有索引的ID的查询 不会比MySQL慢,而对非索引字段的查询,则是全面胜出。 mysql实际无法胜任大数据量下任意字段的查询,而mongodb的查询性能实在牛逼。写入性能同样很令人满意,同样写入百万级别的数据,mongodb基本10分钟以下可以解决。

缺点:

●不支持事务

●磁盘占用空间大

MySQL 8.0 版本

1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。

2. NoSQL:MySQL 从 5.7 版本开始提供 NoSQL 存储功能,在 8.0 版本中nosql得到了更大的改进。

3. 窗口函数:实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中,即窗口函数不需要 GROUP BY。

4. 隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。