在运维工作中,如何创建一个索引?

news/2025/3/30 17:16:46/文章来源:https://www.cnblogs.com/huangjiabobk/p/18797141

在 Linux 中,DROPDELETETRUNCATE 是用于删除数据的 SQL 操作,它们在功能、性能和对数据库的影响方面存在显著差异。以下是它们的详细对比:

1. 功能
  • DROP

    • 功能:用于删除数据库对象(如表、视图、索引等)。

    • 作用范围:删除整个对象,不仅仅是数据。例如,DROP TABLE 会删除表及其所有数据、索引、约束等。

    • 语法DROP TABLE table_name;

    • 示例

      DROP TABLE employees;
      

      执行后,employees 表及其所有数据、索引、外键约束等都会被删除。

  • DELETE

    • 功能:用于删除表中的数据,但不删除表结构。

    • 作用范围:仅删除数据,表结构依然存在。

    • 语法DELETE FROM table_name WHERE condition;

      • 如果不加 WHERE 条件,则会删除表中所有数据。
    • 示例

      DELETE FROM employees WHERE age > 60;
      

      执行后,employees 表中 age > 60 的数据会被删除,但表结构和未匹配条件的数据依然存在。

  • TRUNCATE

    • 功能:用于删除表中的所有数据,但保留表结构。

    • 作用范围:清空表中的所有数据,但表结构、索引、约束等依然存在。

    • 语法TRUNCATE TABLE table_name;

    • 示例

      TRUNCATE TABLE employees;
      

      执行后,employees 表中的所有数据会被清空,但表结构、索引、约束等依然存在。

2. 性能
  • DROP

    • 性能:通常性能较高,因为它直接删除了整个表对象,不需要逐行处理数据。
    • 事务日志:会产生大量的事务日志,因为需要记录表的删除操作。
    • 回滚:如果在事务中执行 DROP,可以回滚,但回滚成本较高。
  • DELETE

    • 性能:性能较低,尤其是删除大量数据时。因为它需要逐行处理数据,并且会触发触发器(如果有)。
    • 事务日志:会产生大量事务日志,因为需要记录每一行的删除操作。
    • 回滚:可以回滚,因为每行的删除操作都被记录在事务日志中。
  • TRUNCATE

    • 性能:性能较高,因为它不会逐行处理数据,而是直接清空表中的数据。
    • 事务日志:事务日志较少,因为它不会记录每一行的删除操作,而是记录表的清空操作。
    • 回滚:在某些数据库中,TRUNCATE 是不可回滚的(如 MySQL),但在其他数据库中(如 PostgreSQL),TRUNCATE 是可以回滚的。
3. 对数据库的影响
  • DROP

    • 影响:删除整个表对象,包括数据、索引、约束等。如果表与其他表有外键关联,可能需要先删除外键约束。
    • 适用场景:当不再需要某个表时,使用 DROP
  • DELETE

    • 影响:仅删除数据,表结构和约束等依然存在。如果表中有触发器,DELETE 会触发这些触发器。
    • 适用场景:需要删除部分数据或根据条件删除数据时。
  • TRUNCATE

    • 影响:清空表中的所有数据,但保留表结构、索引和约束。不会触发触发器。
    • 适用场景:需要快速清空表中的所有数据,但保留表结构时。
4. 事务支持
  • DROP
    • 事务支持:支持事务,但回滚成本较高。
  • DELETE
    • 事务支持:支持事务,可以回滚。
  • TRUNCATE
    • 事务支持:在某些数据库中(如 MySQL)不支持事务回滚,在其他数据库中(如 PostgreSQL)支持事务回滚。
5. 我的总结
  • DROP:删除整个表对象,性能高,但不可恢复。
  • DELETE:删除表中的数据,支持条件删除,性能低,但可以回滚。
  • TRUNCATE:清空表中的所有数据,性能高,不触发触发器,但可能不可回滚(取决于数据库)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906902.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022CCPC Online Contest G - Name the Puppy

对正串和反串分别建立 Trie 树,定义 \(dp[i][j]\) 表示正串 Trie 树上编号为 \(i\) 的点匹配反串 Trie 树上编号为 \(j\) 的点所能拼出最长 anti-border 的长度。 如此,从根节点开始搜索,直到无法匹配为止都可以搜,搜到底后回到根节点继续匹配,可以证明,拼出来的 anti-bo…

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一…

【AI News | 20250327】每日AI进展

AI Repos 1、playwright-mcp 使用Playwright提供浏览器自动化功能的MCP服务,核心是让LLM通过结构化的可访问性快照与网页交互,不需要依赖截图或视觉模型。可以用来自动填写网页表单、自动收集网页信息、自动进行网页测试等。支持两种模式:快照模式(默认):使用可访问性快照…

markdown常用命令行格式

Markdown 主要命令(语法)如下:标题 使用 # 号表示标题,# 的个数决定标题的级别:一级标题 二级标题 三级标题 四级标题 五级标题 六级标题段落 & 换行 直接输入文字形成段落,使用两个以上空格或 进行换行:这是一个段落。 这是同一段的下一行。 使用 <br> 也可…

微调可以获得什么

1.改变模型的行为: 使模型的响应更稳定; 使模型聚焦于某一领域; 发展期潜力,在某一方面更加出色,比如对话 2.获取新的知识: 学习预训练阶段没学过的知识; 纠正过时的错误和信息;

2022CCPC Online Contest G - Count Permutation

利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i][j - 1] + 1\)如果 \(s[pos[i - 1…

第2章 C#2

第2章 C#2 2.1 泛型 2.1.1 示例:泛型诞生前的集合 在泛型诞生之前(.NET1),开发者常用如下方式创建集合:数组普通对象集合 如 ArrayList​、Hashtable​专用类型集合 如 StringCollection​// 数组 static string[] GenerateNames() {string[] names = new string[4];names…

ESP32S3串口UART0,UART1UART2,软件模拟串口,USB虚拟串口的使用 - 基于ArduinoIDE

硬件串口的使用 硬件资源我使用的具体的模组型号为 ESP32-S3-WROOM-1(U), 根据官方手册其有3个串口。UART0:通常用于下载和输出调试信息串口,信号管脚默认与 GPIO43(TX) ~ GPIO44(RX) 复用,可以通过 GPIO 交换矩阵连接到任意 GPIO. UART1:信号管脚默认与 GPIO17(TX) ~ GPIO…

从0搭建nacos单点、集群

主机IP 主机名10.0.0.91 elk9110.0.0.92 elk9210.0.0.93 elk93nacos单机部署使用内置数据库 1.下载解压nacos [root@elk91 ~]# wget https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz[root@elk91 ~]# tar xf nacos-server-2.5.1.tar.gz -C…

ESP32在ArduinoIDE中的配置

🟡 注意 使用 Arduino IDE 开发 ESP32 时除了要看 Arduino 官方的资料一定还要看乐鑫的支持包的资料。详见↗️ 安装ArduinoIDE 到 Arduino 官网 下载最新版的 Arduino IDE 并安装。 🟡 压缩包格式的下载选项意义不大,Arduino IDE 2 无法制作为便携版,参考:绿色(Portabl…

文献阅读《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

参考博客: 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》 - 别关注我了,私信我吧 - 博客园 (cnblogs.com) 摘要 为将CNN推广到高维图结构数据中,基于spectral graph theory(谱图理论),设计了一种通用的fast local…

1013 Div3 F题目加注释

https://codeforces.com/contest/2091/problem/F这题主题思路就是递推,从下往上递推,然后用差分和前缀合得到下一行可能性,详细看代码注释点击查看代码 #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; const…