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

MySQL 超大表快速刪除方式

 更新時間:2022年08月24日 16:28:40   作者:小王格子  
這篇文章主要介紹了MySQL 超大表快速刪除方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL 超大表快速刪除

MySQL里面直接對大表執(zhí)行drop table刪除有可能導(dǎo)致MySQL Hang住,對業(yè)務(wù)造成影響。刪除超大表的前提是該表是獨立表空間,這樣刪除才有效。

表創(chuàng)建一個硬鏈接

# du -sh pay_bills.ibd?
175G ? ? ? ?pay_bills.ibd
# 創(chuàng)建硬鏈接
# ln pay_bills.ibd pay_bills.ibd_hdlk

執(zhí)行表刪除

在Linux中,每個存儲文件都會有指向該文件的Inode Index,多個文件名可以通過相同Inode Index指向相同一個存儲文件。

如果該文件名引用的Inode Index上還被其他文件名引用,則只會刪除該文件名和Inode Index之間的引用

如果該文件名引用的Inode Index上沒有被其他文件名引用,則刪除該文件名和Inode Index之間的引用并刪除Inode Index指向的存儲文件。

實際上只是刪除了對 pay_bills.ibd 的一個文件引用,我們 pay_bills.ibd_hdlk 對物理文件的引用還是存在的,就不會執(zhí)行OS級別的刪除操作,IO波動不大,降低對MySQL的影響。

mysql> drop table pay_bills;
Query OK, 0 rows affected (3.24 sec)

執(zhí)行文件刪除

安裝 truncate 工具

# yum install coreutils -y

執(zhí)行刪除腳本

#!/bin/bash
TRUNCATE=/usr/bin/truncate
# 從175G開始每次刪除2G,最后如果腳本truncate后還剩下部分文件,使用rm刪除
for i in `seq 175 -2 1`; do?
? $TRUNCATE -s ${i}G ?pay_bills.ibd_hdlk
? sleep 1
done
rm -f pay_bills.ibd_hdlk

MySQL快速清空大表數(shù)據(jù)       

項目初次上線,進(jìn)行性能測試造的數(shù)據(jù)量巨大,都是些不可用數(shù)據(jù),但又有一些是必須保留的,很多時候需要進(jìn)行系統(tǒng)性的清理數(shù)據(jù)或者是,將有用的數(shù)據(jù)篩選出來之后再插入到表中!保留表結(jié)構(gòu)或者重新建表(導(dǎo)出數(shù)據(jù)庫中的表結(jié)構(gòu)),重新執(zhí)行SQL語句。

MySQL刪除或清空表數(shù)據(jù)

清空表數(shù)據(jù)的五種方式

1、truncate–刪除所有數(shù)據(jù),保留表結(jié)構(gòu),不能撤銷還原

2、delete–是逐行刪除速度極慢,不適合大量數(shù)據(jù)刪除

3、drop–刪除表,數(shù)據(jù)和表結(jié)構(gòu)一起刪除

4、導(dǎo)出表結(jié)構(gòu),再次執(zhí)行一遍;

5、導(dǎo)出數(shù)據(jù)庫所有表結(jié)構(gòu),再次執(zhí)行一遍,清空所有表(與4一致)

清空表數(shù)據(jù)語法

truncate table 表名;(僅保留表結(jié)構(gòu),速度很快)

delete from 表名;

delete from 表名 where 列名="value ";

DROP `t_product_events` IF EXIST;
CREATE TABLE `t_product_events` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '事件ID',
`level` int(11) NULL DEFAULT NULL,
`product_id` bigint(20) NOT NULL COMMENT '產(chǎn)品類型ID',
`identifier` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件名稱',
`description` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '事件描述',
`type` int(11) NOT NULL COMMENT '事件類型,0:info(信息)、1:alert(告警)、2:error(故障)',
`ref_id` int(11) UNSIGNED NULL DEFAULT 0 COMMENT '引入模板時有意義',
`original_required` tinyint(2) NOT NULL,
`update_required` tinyint(2) NOT NULL DEFAULT 0 COMMENT '是否是標(biāo)準(zhǔn)功能的必選事件,0:可選,1:必選',
`custom` tinyint(2) NOT NULL COMMENT '0:模板導(dǎo)入,1:自定義',
`method` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件對應(yīng)的方法名稱(根據(jù)identifier生成)',
`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0),
`ref` bigint(20) NULL DEFAULT NULL,
`related` int(11) NULL DEFAULT 0 COMMENT '被預(yù)發(fā)布或者已發(fā)布關(guān)聯(lián)個數(shù)',
`copyright` tinyint(2) NULL DEFAULT 0 COMMENT '是否發(fā)布過, 1 發(fā)布過 0未發(fā)布',
`prerelease` tinyint(2) NULL DEFAULT 0 COMMENT '是否預(yù)發(fā)布過, 1 預(yù)發(fā)布過 0未預(yù)發(fā)布',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_product_id`(`product_id`) USING BTREE COMMENT '查詢優(yōu)化'
) ENGINE = InnoDB AUTO_INCREMENT = 497560 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '產(chǎn)品類型事件表' ROW_FORMAT = Compact;

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql5.5數(shù)據(jù)庫data目錄遷移方法詳解

    mysql5.5數(shù)據(jù)庫data目錄遷移方法詳解

    這篇文章主要介紹了mysql5.5數(shù)據(jù)庫data目錄遷移方法詳解,其實數(shù)據(jù)庫的目錄就在你安裝目錄的data里面,我的實在D盤??赡艽蠹夷J(rèn)安裝都在C吧。這樣就要遷移了。這個大家都懂需要的朋友可以參考下
    2016-04-04
  • 一文帶你深入了解?MySQL的鎖機制

    一文帶你深入了解?MySQL的鎖機制

    在數(shù)據(jù)庫系統(tǒng)中,同時有多個用戶或進(jìn)程訪問數(shù)據(jù)是常見的情況,為了確保數(shù)據(jù)的完整性和一致性,數(shù)據(jù)庫管理系統(tǒng)引入了鎖機制,本文將深入探討?MySQL?鎖機制,幫助您理解鎖的分類、實現(xiàn)方式以及使用場景和優(yōu)化策略,需要的朋友可以參考下
    2023-05-05
  • MySQL復(fù)制表常用的四種方式小結(jié)

    MySQL復(fù)制表常用的四種方式小結(jié)

    mysql?想必大家比較熟悉了,我們常見的crud??sql想必大家也是手到拈來,但可能會有人不會寫mysql中復(fù)制表,所以接下來本文我會介紹四種常用的復(fù)制表的方式,需要的朋友可以參考下
    2023-07-07
  • MySQL數(shù)據(jù)庫之事務(wù)簡析

    MySQL數(shù)據(jù)庫之事務(wù)簡析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫之事務(wù)簡析,MySQL數(shù)據(jù)庫中的事務(wù)是一組數(shù)據(jù)庫操作,它們被視為一個整體,要么全部執(zhí)行成功,要么全部失敗回滾,MySQL支持四種事務(wù)隔離級別,其中默認(rèn)的事務(wù)隔離級別是REPEATABLE?READ,需要的朋友可以參考下
    2023-09-09
  • windows環(huán)境下Mysql中文亂碼問題解決方法

    windows環(huán)境下Mysql中文亂碼問題解決方法

    在搭建Mysql環(huán)境的時候遇到了中文亂碼問題,下面與大家分享下具體的解決方法,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • mysql 5.7.16 安裝配置方法圖文教程(ubuntu 16.04)

    mysql 5.7.16 安裝配置方法圖文教程(ubuntu 16.04)

    這篇文章主要為大家分享了ubuntu 16.04下mysql 5.7.16 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時間值)

    Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時間值)

    這篇文章主要給大家介紹了關(guān)于Mysql中STR_TO_DATE函數(shù)使用的相關(guān)資料,STR_TO_DATE函數(shù)的主要功能是字符串轉(zhuǎn)為日期/時間值,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • MySQL8.0.32安裝及環(huán)境配置過程

    MySQL8.0.32安裝及環(huán)境配置過程

    這篇文章主要介紹了MySQL8.0.32安裝以及環(huán)境配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • MySQL從MyISAM轉(zhuǎn)換成InnoDB錯誤與常用解決辦法

    MySQL從MyISAM轉(zhuǎn)換成InnoDB錯誤與常用解決辦法

    由于一些程序的要求,需要MyISAM數(shù)據(jù)引擎或InnoDB,下面是具體的解決方法,經(jīng)測試偶爾會出現(xiàn)一些問題。
    2011-05-05
  • MySQL?5.7壓縮包安裝圖文教程(超詳細(xì))

    MySQL?5.7壓縮包安裝圖文教程(超詳細(xì))

    這篇文章主要介紹了MySQL?5.7壓縮包安裝圖文教程(超詳細(xì)),本文通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),感興趣的朋友跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評論

宜丰县| 新巴尔虎右旗| 衡水市| 平果县| 南华县| 宁乡县| 杭锦后旗| 潼南县| 丹棱县| 凤凰县| 通山县| 徐汇区| 隆尧县| 丹棱县| 长泰县| 北宁市| 文山县| 全州县| 绍兴市| 邛崃市| 乌兰浩特市| 镇沅| 喜德县| 屯留县| 来凤县| 怀安县| 洪湖市| 特克斯县| 弥渡县| 营口市| 原阳县| 瓮安县| 买车| 东辽县| 新野县| 沙雅县| 抚宁县| 丰城市| 荆门市| 重庆市| 潼关县|