最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中Truncate用法詳解

 更新時間:2021年12月13日 11:56:32   作者:kun_行者  
Truncate是一個能夠快速清空資料表內(nèi)所有資料的SQL語法。這篇文章介紹了Truncate用法及注意事項,并和drop,delete方法進行對比。需要的朋友可以收藏下,方便下次瀏覽觀看

前言:

當我們想要清空某張表時,往往會使用truncate語句。大多時候我們只關心能否滿足需求,而不去想這類語句的使用場景及注意事項。本篇文章主要介紹truncate語句的使用方法及注意事項。

1.truncate使用語法

truncate的作用是清空表或者說是截斷表,只能作用于表。truncate的語法很簡單,后面直接跟表名即可,例如: truncate table tbl_name 或者 truncate tbl_name

執(zhí)行truncate語句需要擁有表的drop權限,從邏輯上講,truncate table類似于delete刪除所有行的語句或drop table然后再create table語句的組合。為了實現(xiàn)高性能,它繞過了刪除數(shù)據(jù)的DML方法,因此,它不能回滾。盡管truncate table與delete相似,但它被分類為DDL語句而不是DML語句。

2.truncate與drop,delete的對比

上面說過truncate與delete,drop很相似,其實這三者還是與很大的不同的,下面簡單對比下三者的異同。

  • truncate與drop是DDL語句,執(zhí)行后無法回滾;delete是DML語句,可回滾。
  • truncate只能作用于表;delete,drop可作用于表、視圖等。
  • truncate會清空表中的所有行,但表結構及其約束、索引等保持不變;drop會刪除表的結構及其所依賴的約束、索引等。
  • truncate會重置表的自增值;delete不會。
  • truncate不會激活與表有關的刪除觸發(fā)器;delete可以。
  • truncate后會使表和索引所占用的空間會恢復到初始大小;delete操作不會減少表或索引所占用的空間,drop語句將表所占用的空間全釋放掉。

3.truncate使用場景及注意事項

通過前面介紹,我們很容易得出truncate語句的使用場景,即該表數(shù)據(jù)完全不需要時可以用truncate。如果想刪除部分數(shù)據(jù)用delete,注意帶上where子句;如果想刪除表,當然用drop;如果想保留表而將所有數(shù)據(jù)刪除且和事務無關,用truncate即可;如果和事務有關,或者想觸發(fā)trigger,還是用delete;如果是整理表內(nèi)部的碎片,可以用truncate然后再重新插入數(shù)據(jù)。

無論怎樣,truncate表都是高危操作,特別是在生產(chǎn)環(huán)境要更加小心,下面列出幾點注意事項,希望大家使用時可以做下參考。

  • truncate無法通過binlog回滾。
  • truncate會清空所有數(shù)據(jù)且執(zhí)行速度很快。
  • truncate不能對有外鍵約束引用的表使用。
  • 執(zhí)行truncate需要drop權限,不建議給賬號drop權限。
  • 執(zhí)行truncate前一定要再三檢查確認,最好提前備份下表數(shù)據(jù)。

以上所述是小編給大家介紹的MySQL中Truncate用法詳解,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 關于MySQL分區(qū)表的一個性能BUG

    關于MySQL分區(qū)表的一個性能BUG

    這篇文章主要給大家講訴MySQL分區(qū)表的一個性能BUG,也就是使用分區(qū)表進行數(shù)據(jù)查詢/加載的時候比普通表的性能下降了約50%,下面就來講將對此的解決辦法,需要的朋友可以參考以下內(nèi)容
    2021-09-09
  • MySQL分表自動化創(chuàng)建的實現(xiàn)方案

    MySQL分表自動化創(chuàng)建的實現(xiàn)方案

    在數(shù)據(jù)庫應用場景中,隨著數(shù)據(jù)量的不斷增長,單表存儲數(shù)據(jù)可能會面臨性能瓶頸,例如查詢、插入、更新等操作的效率會逐漸降低,分表是一種有效的優(yōu)化策略,它將數(shù)據(jù)分散存儲在多個表中,從而提高數(shù)據(jù)庫的性能和可維護性,本文介紹了MySQL分表自動化創(chuàng)建的實現(xiàn)方案
    2025-01-01
  • MySql的事務使用與示例詳解

    MySql的事務使用與示例詳解

    這篇文章主要介紹了MySqld的事務用法,需要的朋友可以參考下
    2014-06-06
  • MySQL8.0中的降序索引

    MySQL8.0中的降序索引

    這篇文章主要介紹了MySQL8.0中的降序索引的相關知識,幫助大家更好的理解和使用MySQL8.0的新特性,感興趣的朋友可以了解下
    2020-10-10
  • 深入了解MySQL中聚合函數(shù)的使用

    深入了解MySQL中聚合函數(shù)的使用

    這篇文章主要為大家詳細介紹一下MySQL中聚合函數(shù)的使用,文中的示例代碼講解詳細,對我們學習MySQL有一定幫助,需要的可以參考一下
    2022-07-07
  • mysql 5.7.17的最新安裝教程圖文詳解

    mysql 5.7.17的最新安裝教程圖文詳解

    mysql-5.7.17-winx64是現(xiàn)在最新版本的Mysql,這是免安裝的,所以要進行些配置,下面通過本文給大家介紹mysql 5.7.17的最新安裝教程圖文詳解,感興趣的朋友一起學習吧
    2017-03-03
  • mysql-connector-java和mysql-connector-j的區(qū)別小結

    mysql-connector-java和mysql-connector-j的區(qū)別小結

    在Java項目中,引入MySQL數(shù)據(jù)庫通常需通過Maven管理MySQLConnector/J驅動,最新版本的spring-boot-starter-parent中,舊的mysql-connector-java坐標不再適用,需改用新的com.mysql:mysql-connector-j,下面就來介紹一下區(qū)別,感興趣的可以了解一下
    2024-09-09
  • MySQL復制表的三種方式(小結)

    MySQL復制表的三種方式(小結)

    這篇文章主要介紹了MySQL復制表的三種方式(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Ubuntu中更改MySQL數(shù)據(jù)庫文件目錄的方法

    Ubuntu中更改MySQL數(shù)據(jù)庫文件目錄的方法

    這篇文章主要給大家介紹了關于在Ubuntu中更改MySQL數(shù)據(jù)庫文件目錄的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • mysql如何配置secure_file_priv

    mysql如何配置secure_file_priv

    這篇文章主要介紹了mysql如何配置secure_file_priv問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

雷州市| 潜山县| 花垣县| 凤凰县| 资溪县| 黔西县| 兴业县| 西畴县| 乌兰县| 宣汉县| 随州市| 澄迈县| 剑河县| 滦南县| 石家庄市| 夏津县| 新巴尔虎右旗| 柳林县| 仙居县| 呼伦贝尔市| 都昌县| 富民县| 扶余县| 汝阳县| 汾西县| 绍兴县| 河间市| 泰兴市| 丽江市| 石柱| 渝中区| 阿拉尔市| 龙里县| 乃东县| 修文县| 乌鲁木齐县| 沾化县| 娱乐| 德州市| 新绛县| 延庆县|