数据库
存储引擎
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引 擎。
存储引擎主要有:
- MyIsam
- InnoDB
- Memory
- Archive
- Federated
最重要的是索引和锁
一个面试题 如何设计一个关系型数据库?
首先要了解开发一个数据库需要什么模块
要设计一个关系型数据库,首相要将其划分为两大部分:一个是存储部分,该部分类似一个文件系统将数据持久化到存储设备当中,还需要程序实例模块对存储进行逻辑上的管理。
程序实例部分又分为这样几个部分:
存储管理:将数据的逻辑关系转换为物理存储关系
缓存机制:优化执行效率
SQL解析:解析SQL语句
日志管理:记录操作
权限划分:进行多用户管理
容灾机制:灾难恢复
索引管理:优化数据查询效率
锁管理:使数据库支持并发操作
数据库三范式
范式是具有最小冗余的表结构。
第一范式 ( 1st NF-列都是不可再分)
第一范式的目标是确保每列的原子性: 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
第二范式(2nd NF-每个表只描述一件事情)
首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。第二范式要求每个表只描述一件事情。