Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion docs/database/数据库基础知识.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,18 @@ truncate 和 drop 属于 DDL(数据定义语言)语句,操作立即生效,
* DML 是数据库操作语言(Data Manipulation Language)的缩写,是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最频繁的操作。
* DDL (Data Definition Language)是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。它和 DML 语言的最大区别是 DML 只是对表内部数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DDL 语句更多的被数据库管理员(DBA)所使用,一般的开发人员很少使用。

> 由于`select`不会对表进行破坏,所以有的地方也会把`select`单独区分开叫做数据库查询语言DQL(Data Query Language)

### 执行速度不同

一般来说:drop>truncate>delete(这个我没有设计测试过)。
一般来说:drop > truncate > delete(这个我没有设计测试过)。
> `delete`命令执行的时候会产生数据库的`binlog`日志,而日志记录是需要消耗时间的,但是也有个好处方便数据回滚恢复。
>
> `truncate`命令执行的时候不会产生数据库日志,因此比`delete`要快。除此之外,还会把表的自增值重置和索引恢复到初始大小等。
>
> `drop`命令会把表占用的空间全部释放掉。
>
> Tips:你应该更多地关注在使用场景上,而不是执行效率。

## 数据库设计通常分为哪几步?

Expand Down