DML:数据操作语言
增删改查数据的语言。
INSERT
DELETE
SELECT
UPDATE
DDL:数据定义语言
定义、删除、修改RDB对象的sql语言
CREATE
DROP
ALTER
DCL:数据控制语言
定义数据库中用户访问权限的sql语言
GRANT
REVOKE
RDB对象:
库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器。
约束:保证数据完整性
域约束:数据类型约束
外键约束:引用完整性约束
主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空。
一张表只能有一个主键
唯一性约束:每一行的某字段都不允许出现相同值,可以为空
一张表中可以有多个
检查性约束:
关系型数据库:
表示层:表
逻辑层:存储引擎
物理层:数据文件
数据存储和查询:
存储管理器:
权限和完整性管理:管理用户的权限、数据的约束进行管理。
事务管理器:保证用户的操作 ,一个账户加了500元,另外一个账户必须减500块
文件管理器:用户的数据要保存到单个或多个文件中从而保存到磁盘中,管理文件的创建,删除,追加数据的功能
缓冲区管理器:要完成数据的查询、修改 都要在内存里完成,所以要把数据从磁盘的文件中读到内存里。这个缓冲区管理器就是管理缓冲空间的。
查询管理器:
负责接收用户查询请求,理解用户查询请求,并将请求提交给存储管理器。
DML解释器:让数据库能够理解DML语句。
DDL解释器:
查询执行引擎:执行sql语句,完成数据的增删改查。
单进程多线程:
多线程
守护线程:掉电丢失,将数据从缓冲区写到磁盘上,
应用线程
10个用户:
查询秋琼
需要往内存中载入256M的数据才能完成
需要载入1G的数据才能完成
载入256M数据才能完成
10个用户需要占用大量的内存,涉及到的数据量是比较大的,他的并发能力和web程序是不一样的,请求以一个页面几个兆,如果不是下载服务器,不会太大。
一个数据库服务器通常是一个系统性能的最慢的节点所在,所以尽量避免和数据库的交互。