MySQL 清空分区表单个分区数据

1.单个分区清空

ALTER TABLE xxx TRUNCATE PARTITION p20220104;

2.编辑存储过程

功能:指定清空之前某一天的数据,直接调用存储过程实现

DELIMITER $$

USE `managerdb`$$

DROP PROCEDURE IF EXISTS `partition_trunc`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `partition_trunc`(p_schema_name VARCHAR(64), p_table_name VARCHAR(64), p_trunc_before_date INT)
BEGIN
/*
p_trunc_before_date 清空分区表第N天的数据
*/      
        DECLARE trunc_part_name VARCHAR(16);
		
        SET trunc_part_name = CONCAT('p',DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL p_trunc_before_date DAY),'%Y%m%d'));
        SET @trunc_partitions = CONCAT("ALTER TABLE ", p_schema_name, ".", p_table_name, " TRUNCATE PARTITION ",trunc_part_name); -- 拼执行语句
		
	SELECT @trunc_partitions; -- 打印删除详情
        
         PREPARE STMT FROM @trunc_partitions;
                
         EXECUTE STMT;
                
         DEALLOCATE PREPARE STMT;
                
        
        
END$$

DELIMITER ;

实例:

call managerdb.partition_trunc('test','t_001',1);

清空test.t_001一天前的单个分区数据

### MySQL 创建数据库和表时的常见问题及解决方案 #### 数据库连接配置错误 当使用新的IDEA版本创建MySQL数据库或表时报错,可能是因为IDEA中有两个不同的MySQL连接设置(MySQLMySQL for 5.1)。如果仅修改其中一个,在尝试建立数据库连接时不指定具体使用的连接,则可能导致失败。建议要么明确指明要使用的连接方式,或者为了简化管理,统一更新两者配置以保持一致[^1]。 ```sql -- 修改数据源配置示例 (假设为application.properties文件中的Spring Boot项目) spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password ``` #### SQL语句语法不兼容 不同版本间的SQL标准可能存在差异,某些特定于旧版的功能在新版中不再支持。例如`TRUNCATE`命令虽然快速清空表格内容,但如果涉及的是大型表单则会引发整个系统的性能瓶颈;而频繁地创建(`CREATE`)和删除(`DROP`)带有众多分区的大规模表也会带来显著的影响。因此对于这类操作应当谨慎处理,尽可能安排在维护窗口期内完成[^2]。 #### 性能优化不足 长时间运行且效率低下的查询(即所谓的“慢SQL”)会影响服务器的整体响应速度和服务质量。可以通过执行`SHOW PROCESSLIST;`来识别那些处于非休眠状态并且耗时较长的任务作为重点审查对象。此外还需注意远程客户端发起请求的速度明显低于本地的情况,这往往暗示着网络传输环节存在问题——比如较高的延迟或是带宽限制等因素所致。 #### 缺乏适当索引 缺乏必要的索引会导致检索过程变得异常缓慢,尤其是在面对海量级的数据集时尤为突出。合理设计并添加适合业务逻辑需求的索引能够极大地提升读写效能。不过需要注意过度依赖索引同样会造成负面影响,因为每次插入、更新都会触发额外开销用于维持索引结构的一致性。 ```sql -- 添加索引的例子 ALTER TABLE orders ADD INDEX idx_customer_id (customer_id); ``` #### 字符编码设定不当 字符集的选择不仅关系到能否正确显示多语言文字信息,同时也会影响到存储空间利用率以及排序规则等方面的表现。通常情况下推荐采用UTF-8通用字符集,并确保在整个应用程序栈里都遵循相同的标准,从而避免潜在乱码现象的发生。 ```sql -- 设置默认字符集为utf8mb4 CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值