From b1f9e3207e103f8f8a19ad2fcf0f1e79f870dfbe Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Feb 2022 14:53:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[docs=20update]=20=E8=A7=A3=E9=87=8A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=B8=8D=E5=90=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E5=BF=AB=E6=85=A2=E4=B8=8D=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/database/数据库基础知识.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/database/数据库基础知识.md b/docs/database/数据库基础知识.md index 92d30998..8d44d1e8 100644 --- a/docs/database/数据库基础知识.md +++ b/docs/database/数据库基础知识.md @@ -132,7 +132,14 @@ truncate 和 drop 属于 DDL(数据定义语言)语句,操作立即生效, ### 执行速度不同 -一般来说:drop>truncate>delete(这个我没有设计测试过)。 +一般来说:drop > truncate > delete(这个我没有设计测试过)。 +> `delete`命令执行的时候会产生数据库的`binlog`日志,而日志记录是需要消耗时间的,但是也有个好处方便数据回滚恢复。 +> +> `truncate`命令执行的时候不会产生数据库日志,因此比`delete`要快。除此之外,还会把表的自增值重置和索引恢复到初始大小等。 +> +> `drop`命令会把表占用的空间全部释放掉。 +> +> Tips:你应该更多地关注在使用场景上,而不是执行效率。 ## 数据库设计通常分为哪几步? From 762a5bb08620e1cf669138815130ca21de26a525 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Feb 2022 14:54:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[docs=20update]=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AF=B9DQL=E7=9A=84=E8=A7=A3=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/database/数据库基础知识.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/database/数据库基础知识.md b/docs/database/数据库基础知识.md index 8d44d1e8..e616203f 100644 --- a/docs/database/数据库基础知识.md +++ b/docs/database/数据库基础知识.md @@ -130,6 +130,8 @@ 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(这个我没有设计测试过)。