- 数据库类别
- 关系型数据库
- MySQL
- PostgreSQL
- 键值数据库
- Redis
- 文档型数据库
- MongoDB
- 检索型数据库
- elasticsearch
- 图数据库
- 时序数据库
- 关系型数据库
https://blog.bytebytego.com/i/127263496/a-handy-cheatsheet-for-sql-and-nosql-databases
mysql数据库在系统上是以一个文件夹的形式出现的,你创建了ac数据库,那么在磁盘上就会出现ac的目录,而ac数据库的全局配置则是ac文件夹中的db.opt文件来管理。mysql的数据文件在datadir下,你在数据库中执行 show variables like '%datadir%';就会显示数据库文件的路径,你可以找到ac文件夹。
文件和图片存储的方式
将文件存储到磁盘, 数据库中存取文件的路径
实体(entity)对应数据库中的表(table)
应用(app)对应数据库中的实例(instance)
实体属性(attribute)对应表格中的列(column)
关系则用相同的条件表示, 当实体间满足某个属性相同则存在关系
一种数据结构, 索引文件
常见的索引结构有 B树, B+树, 哈希表
数据库以二维表的形式存储,如果我们以某一属性或多条属性为条件查找时,如果没进行查询优化,那么就只能从头开始顺序查找,效率极低。所以我们可以建立索引
(是一种数据结构)`来帮我们快速定位(该数据结构的查询速率快于顺序查询)到某个地址来找到某一行,以此来优化查询。常见的索引结构有B树、B+树、哈希表。
我们知道数据表其实是存储在存储器中的,一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。当我们要查询时就需要先去存储器中读取索引,通过索引去快速定位数据。这就意味着索引查找过程中就要产生磁盘I/O消耗
。
相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘I/O操作次数的渐进复杂度。换句话说,索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。
在这之前,我们要知道磁盘存取原理
记录
first normal form