您现在的位置是: 首页 >  个人博客日记 >  mysql指令delete和truncate的区别(mysql常见面试题) 博客详情

mysql指令delete和truncate的区别(mysql常见面试题)

请叫我菜鸟 2019-07-24 20:50 【MySQL】 221次预览

简介        mysql是一个深受JavaWeb程序员喜爱的关系型数据库,因此在众多的企业项目开发中众多的中小型企业通常会使用mysql来作为后台数据管理数据库。所以,...

        mysql是一个深受JavaWeb程序员喜爱的关系型数据库,因此在众多的企业项目开发中众多的中小型企业通常会使用mysql来作为后台数据管理数据库。所以,在面试的过程中难免少不了会遇到一些关于mysql的题目。本篇文章主要是笔者在面试过程中笔试题目遇到的一道关于mysql数据库的题目,为此在这里对该题目做出回答(该回答只能作为参考答案)。

题目:delete和truncate指令的区别?

1、相同点:两者都可以用来删除表中的数据。

2、不同点:

(1)truncate作为一个数据定义语言,它会被隐式的提交,一旦提交后数据将不能会回滚。delete通常会被拿来具体删除某一行数据,并且会将删除的操作以日志的形式进行保存,以便于数据进行回滚操作。

(2)delete删除数据后,被删除的数据占用的纯纯空间仍然会存在,还可以回复。而truncate删除数据后,本删除的数据占用的存储空间同时会被释放,因此被删除的数据不能够进行恢复。

3、truncate执行的速度比delete快。


举例说明(下面的题目是数据库笔试过程中常见的题目)

题目:Oracle数据库的某一个表中存在若干条数据,其占用的存储空间大小为10MB,如果用delete语句将表中的数据全部删除,则此时该表占用的存储空间为多大?

解题分析:如果读者对上文认真看过的话,想必该题会很快得出答案。

答案:10MB,因为使用delete对表的数据进行删除,删除的只是表中的数据,但是该表的存储空间并不会立即被释放。如果想要删除表数据的同时释放表的存储空间,可以使用truncate。

加入我们

  • Java学习资源网官方群1

    群号:280998807(已满)

  • Java学习资源网官方群2

    群号:291195645

  • Java学习资源网官方群3

    群号:691628026

打赏本站

  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!
  • 微信扫码:你说多少就多少~
  • 支付宝扫码:你说多少就多少~