Node之数据库简介
MySql 是完全后端的知识,并且和 nodejs 也没有关系。但我们作为前端开发者,需要了解一定的后端知识。
数据库可以持久地存储数据。之前在使用变量的时候是存储在内存中,内存由于直接和 cpu 相关,所以存取速度很快,但很容易丢失,容易在断电或者程序退出的时候发生丢失。
网页上的数据还可以通过 ajax 请求进行服务器保存,就是保存在数据库中。
数据库是用来解决内存和磁盘的存储格式不一致。内存的容量很小,磁盘存储的都是平面的数据,需要数据库将数据存储在磁盘的文件之中。
如果使用 json 需要将所有文件读取到内存之中,然后进行数组的筛选来找到特定的数据。
数据库可以自动备份数据,然后根据情况恢复数据。可以快速地存取数据,可以进行权限控制,根据开发者的不同开放对应的权限,这些在普通的软件中是很难做到的。
前端的数据库主要与前端相关,比如用户的日志,用户的访问数据,用户的偏好设置等。
数据库分为三种。
第一种是关系型数据库,它是表与表相互关联的数据结构。就像 Excel 中各种不同关系的表相互关联。它能够表示复杂的数据关系,并且有强大的查询语言,可以精准地查询具体的数据。
但同时由于复杂的关系导致读写性能很差,尤其是面对海量数据时,很消耗性能。而且数据结构不能轻易更改,导致结构死板。
所以一般用来存储业务数据,就是结构关系比较复杂的数据。
关系型数据库有 oracle ,mysql ,sql server 三种,我们主要学习 mysql 。剩下是后端人员学习的数据库。
非关系型数据库的存储数据的结构简单。有文档型,就是一个数据库使用一个文档,在文档内可以随意更改,可以多个文档进行叠加。还有键值对型,使用 key - value 来进行数据存储。
它可以随意更改格式,并且对海量数据进行高效率读写。但和关系型数据库相反,无法处理复杂的数据结构,而且对于复杂查询效率不高。它用来存储结构简单的数据。
对于官网以及一些简单的兼职,使用关系型数据库,对于已经存在的大型项目,后端已经开发了关系型数据库,前端可以使用非关系型数据库进行用户数据的简单处理。代表有 mongodb ,redis ,membase 。
还有一种面向对象数据库。这种是为了进行内存和数据库之间完全的数据还原。保持原来的数据结构。一般用在商业软件之中。
DB 是数据库,DBA 是数据库管理员,DBMS 是数据库管理系统,比如 mysql ,DBS 是数据库系统,包括前面三个。