ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 前言 本文节选自美~Michal S.Miknowski著的《单页web应用, js从前端到后端》,从这里我学到了一些基础入门的知识点,与大家共享。 ## 选择数据库,与其他数据库的区别 * mysql 作为最常用的关系型数据库,被用作开发最多。 * memcached 缓存服务,使用key~value存储,可以存储应用数据,提升用户体验,简单有效,在早期的应用中,用户登录以及一些相关信息都是保存在这里 * neo4j 图形数据库 * cassandra或者mongodb 文档数据库,对于文件io操作有些明显的优势 ## 消除数据转换 相信做过java或者php开发的肯定遇到过需要写sql文,把查到的数据封装成自己的数据模型,然后到前端显示的时候又要转换。 而前端与后端交互数据时传递的又是json,后端同学又要转成自己的对象模型,解析成sql文存储到数据库的过程。 现在,这些统统不用,用mongodb 前后端以及服务器都是json格式的,不用转换,而且开发语言都一样,极大的利好。 ## 把逻辑放在需要的地方 之前我们的整体用户逻辑分好多层去维护,比如前端,后台,数据库都要对数据进行检验,而这三端的语言又不同,维护成本较高。 当用mongodb的时候,因为三层的开发语言相同,所以我们只要考虑好逻辑应该放在那里就好,减少思维切换。 ## 面向文档的存储 Mongodb存储的是json文档,因为存储和检索的单位一致,所以不需要转换。这样,我们的应用将更加简洁但这不意味着 它比java加mysql更快,但它意味着单一的数据格式下具备更加优异的性能。 ## 动态文档结构 * 与关系型数据库不同的是,不用创建表,不用修改schema,这样的结构具有优点: 1文档结构灵活,不管什么结构,它都会存储文档。如果文档结构频繁更改或者没有结构,数据库也不用调整,直接存储。 2 经常变化的应用不需要改数据库,比如更新文档有了新的或者不同的属性,我们可以部署应用,它会直接保存新的结构,否则可能要修改代码了。 3 没有会引起停机或者暂时的schema变化,不必锁定数据库部分功能。 4 不需要schema设计的专业知识,构建成本低。 * 没有schema的缺点: 1没有强制的文档结构,在没有数据库级别的限制时,对文档的任何修改都不会自动传播给已有的文档,当多个程序使用相同的集合时,比较痛苦。 2 没有文档结构的定义,就无法保证结构的一致,查看结构比较困难 3 没有明确的定义,没有办法让数据访问更加准确,比如索引。 ## 开始使用 * 从官网下载安装软件,然后启动相应的服务,启动之后可以通过输入MongoDB启动shell,会看到版本信息。 * 其他具体的使用我们在下一篇文档中详细介绍哦。