Table des matières
MySQL Suppression rapide de très grandes tables
Table crée un lien physique
Effectuer la suppression de la table
Effectuer la suppression de fichiers
MySQL efface rapidement les données d'une table volumineuse
Cinq façons d'effacer les données d'une table
tronquer le nom de la table (uniquement la table ; la structure est conservée, très rapide)
Maison base de données tutoriel mysql Comment supprimer rapidement une très grande table dans MySQL

Comment supprimer rapidement une très grande table dans MySQL

May 28, 2023 pm 04:55 PM
mysql

MySQL Suppression rapide de très grandes tables

Si vous supprimez une grande table directement dans MySQL, cela peut provoquer le blocage de MySQL, ce qui peut avoir un impact négatif sur votre entreprise. La condition préalable à la suppression d'une très grande table est que la table soit un espace table indépendant, afin que la suppression soit effective.

Table crée un lien physique

# du -sh pay_bills.ibd 
175G        pay_bills.ibd
# 创建硬链接
# ln pay_bills.ibd pay_bills.ibd_hdlk

Effectuer la suppression de la table

Sous Linux, chaque fichier de stockage aura un index Inode pointant vers le fichier, plusieurs les noms de fichiers peuvent pointer vers le même fichier de stockage via le même index Inode.

Si l'index Inode référencé par le nom de fichier est également référencé par d'autres noms de fichiers, seule la référence entre le nom de fichier et l'index Inode sera supprimée

Si le fichier références de nom Si l'index Inode n'est pas référencé par d'autres noms de fichiers, supprimez la référence entre le nom de fichier et l'index Inode et supprimez le fichier de stockage pointé par l'index Inode.

En fait, il supprime uniquement une référence de fichier à pay_bills.ibd. Notre référence pay_bills.ibd_hdlk au fichier physique existe toujours, donc aucune opération de suppression au niveau du système d'exploitation ne sera effectuée et la fluctuation des E/S sera effectuée. ne soit pas important. Réduisez l'impact sur MySQL.

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

Effectuer la suppression de fichiers

Installer l'outil de troncature

# yum install coreutils -y

Exécuter le script de suppression

#!/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 efface rapidement les données d'une table volumineuse

Lorsque le projet est lancé pour la première fois, une énorme quantité de données est générée pour les tests de performances. Ce sont toutes des données inutilisables, mais certaines d'entre elles doivent être conservées dans de nombreux cas. pour nettoyer systématiquement les données ou pour que les données utiles soient filtrées puis insérées dans le tableau ! Conservez la structure de la table ou reconstruisez la table (exportez la structure de la table dans la base de données) et réexécutez l'instruction SQL.

MySQL supprimer ou effacer les données d'une table

Cinq façons d'effacer les données d'une table

1, tronquer– les données conservent la structure de la table et ne peuvent pas être annulées et restaurées

2 La suppression est une suppression ligne par ligne qui est extrêmement lente et ne convient pas à la suppression de grandes quantités de données

#. 🎜🎜#3. déposez et supprimez la table. Supprimez les données et la structure de la table ensemble

4. Exportez la structure de la table et exécutez-la à nouveau ; structures de la base de données et exécutez-la à nouveau pour effacer toutes les tables (avec 4 cohérentes)

Effacer la syntaxe des données de la table

tronquer le nom de la table (uniquement la table ; la structure est conservée, très rapide)

# 🎜🎜#supprimer du nom de la table ;supprimer du nom de la table où nom de la colonne="valeur " ;

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 '产品类型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 '是否是标准功能的必选事件,0:可选,1:必选',
`custom` tinyint(2) NOT NULL COMMENT '0:模板导入,1:自定义',
`method` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '事件对应的方法名称(根据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 '被预发布或者已发布关联个数',
`copyright` tinyint(2) NULL DEFAULT 0 COMMENT '是否发布过, 1 发布过 0未发布',
`prerelease` tinyint(2) NULL DEFAULT 0 COMMENT '是否预发布过, 1 预发布过 0未预发布',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_product_id`(`product_id`) USING BTREE COMMENT '查询优化'
) ENGINE = InnoDB AUTO_INCREMENT = 497560 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '产品类型事件表' ROW_FORMAT = Compact;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser une instruction de cas dans MySQL? Comment utiliser une instruction de cas dans MySQL? Sep 20, 2025 am 02:00 AM

La réponse est: l'instruction de cas de MySQL est utilisée pour implémenter la logique conditionnelle dans la requête, et prend en charge deux formulaires: simple et recherche. Différentes valeurs peuvent être renvoyées dynamiquement dans des clauses telles que Select, Where et OrderBy; Par exemple, dans SELECT, la classification des scores par segments fractionnaires, combinant des fonctions agrégées pour compter le nombre d'états, ou hiérarchiser les rôles spécifiques dans OrderBy, il est nécessaire de toujours terminer avec fin et il est recommandé d'utiliser d'autre pour gérer la situation par défaut.

Comment automatiser les sauvegardes MySQL avec un script? Comment automatiser les sauvegardes MySQL avec un script? Sep 21, 2025 am 02:24 AM

Créez un script shell contenant la configuration de la base de données et la commande mysqldump et enregistrez-le sous Mysql_backup.sh; 2. Stockez les informations d'identification MySQL en créant un fichier ~ / .my.cnf et définissez 600 autorisations pour améliorer la sécurité, modifier le script pour utiliser l'authentification du fichier de configuration; 3. Utilisez Chmod X pour rendre l'exécutable de script et tester manuellement si la sauvegarde est réussie; 4. Ajouter des tâches chronométrées via Crontab-E, telles que 02 / path / vers / mysql_backup.sh >> / path / to / backup / backup.log2> & 1, réalisez la sauvegarde automatique et la journalisation à 2 heures du matin tous les jours; 5

Comment utiliser des sous-requêtes dans MySQL? Comment utiliser des sous-requêtes dans MySQL? Sep 20, 2025 am 01:07 AM

Les sous-questionnaires peuvent être utilisés dans d'où, de sélection, de sélection et d'avoir des clauses pour implémenter le filtrage ou le calcul en fonction du résultat d'une autre requête. Les opérateurs tels que dans, tous, tous sont couramment utilisés dans où; Les alias sont nécessaires comme des tables dérivées de; Les valeurs uniques doivent être renvoyées dans Select; Les sous-requêtes apparentées reposent sur la requête extérieure pour exécuter chaque ligne. Par exemple, consultez les employés dont le salaire moyen est plus élevé que le ministère ou ajoutez la liste de salaire moyenne de l'entreprise. Les sous-questionnaires améliorent la clarté logique, mais les performances peuvent être inférieures à la jointure, vous devez donc vous assurer de retourner les résultats attendus.

Comment mettre à jour une ligne s'il existe ou insérer si ce n'est dans MySQL Comment mettre à jour une ligne s'il existe ou insérer si ce n'est dans MySQL Sep 21, 2025 am 01:45 AM

INSERT ... L'implémentation OnDuplicateKeyupdate sera mise à jour si elle existe, sinon elle sera insérée et nécessite des contraintes de clé unique ou primaires; 2. Réinsert après la suppression de RemplaceInto, qui peut entraîner des modifications de l'ID d'incrémentation automatique; 3. L'insertion inserte uniquement et ne fait pas de données répétitives, et ne met pas à jour. Il est recommandé d'utiliser la première implémentation d'UPsert.

Comment utiliser la commande Explication dans MySQL? Comment utiliser la commande Explication dans MySQL? Sep 18, 2025 am 01:48 AM

ExpliquerInmysqlRevealSQueryExecutionPlans, montrant IndexUsage, TablereadOrder, androwfilteringTooptimePerFormance; useitBereelectoAnalyzesteps, checkkeycolumnsliketypeAndrow

Comment sélectionner des valeurs distinctes dans MySQL? Comment sélectionner des valeurs distinctes dans MySQL? Sep 16, 2025 am 12:52 AM

Utilisez le mot clé distinct pour supprimer les valeurs en double de la colonne spécifiée et renvoyez des valeurs uniques. 1. La syntaxe de base est SelectDistinctColumn_NameFromTable_name; 2. Interrogez la valeur unique d'une seule colonne, telle que SelectDistinctCityFromCustomesrs; 3. Interrogez la combinaison unique de plusieurs colonnes, telles que SelectDistinctCity, StateFromCustomesrs; 4. Filtrez avec la clause WHERE et obtenez la valeur unique, comme selectDistinctProduct_namefromorderswhereOrder_Date> '202

Comment calculer la distance entre deux points dans MySQL Comment calculer la distance entre deux points dans MySQL Sep 21, 2025 am 02:15 AM

MySQL peut calculer les distances géographiques à travers la formule Haversine ou la fonction ST_DISTANCE_SPHERE. Le premier convient à toutes les versions, et le second fournit des calculs de distance sphérique plus faciles et plus précis depuis 5.7.

Comment gérer les fuseaux horaires dans MySQL? Comment gérer les fuseaux horaires dans MySQL? Sep 20, 2025 am 04:37 AM

Utilisez UTC pour stocker le temps, définissez le fuseau horaire MySQL Server sur UTC, utilisez l'horodatage pour réaliser la conversion automatique du fuseau horaire, ajustez le fuseau horaire en fonction des besoins des utilisateurs dans la session, affichez le temps local via la fonction convert_tz et assurez-vous que le tableau de fuseau horaire est chargé.

See all articles