MongoDB基础知识记录
一.概念:
讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作:
NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 。是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
关系型数据库中的表都是存储一些结构化的数据,每条记录的字段的组成都一样,即使不是每条记录都需要所有的字段,但数据库会为每条数据分配所有的字段。而非关系型数据库以键值对(key-value)存储,它的结构不固定,每一条记录可以有不一样的键,每条记录可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
(1)传统:
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
(2)个人理解:
mongodb就是一个以文档方式存储的高性能、易部署的非关系型数据库。
二.特点:(主要)
高性能、易部署、易使用,存储数据非常方便
三.优点:(主要)
1.文档存储;
2.非结构化;
3.动态查询;
4.缺少专业的数据库管理员;
5.支持RUBY,PYTHON,JAVA,C++,PHP等多种语言;
6.可扩展性;
7.复制和故障切换支持;
四.缺点:(主要)
不支持事务;
不支持联表查询,不适用于关系多的数据;
占用空间过大;
预分配模式带来的磁盘瓶颈;
Mongodb全局锁机制;
删除数据集合后空间不会自动释放;
五.总结:
一句话,mongodb不是完美的。
-----mongodb之所以诞生,是思维的变迁。