首页 > 数据库 >mysql 分区表

mysql 分区表

时间:2023-10-13 17:56:09浏览次数:33  
标签:p2 less 分区 PARTITION 分区表 mysql 磁盘

场景:数据库磁盘爆满,使用delete 无法清理磁盘 ,清理会有binlog,redolog ,磁盘无法释放。

个人遇到的真实场景:数据库数据上千万,要清理历史数据,但是delete 删除数据无法释放磁盘,运维老大哥给的方案,先分区表,然后再truncate 这样就能清理历史数据,磁盘也能释放。

 

操作步骤 :

1,查看数据库是否支持分区:partition   状态是active说明支持分区表。                                                                                      

show plugins;

2,将已存在的表进行分区域:(也可以在建表的时候就分区)分区时会将同一个分区的数据存储到一起,所以对已存在的表进行分域是需要很多额外的磁盘的。

alter table users partition by RANGE(id) 
(PARTITION p1 VALUES less than (5), 
PARTITION p2 VALUES less than (10), 
PARTITION p3 VALUES less than MAXVALUE);

我自己使用的是 range方式(还有其他多种方式)进行分区域,p1,p2,p3分别是分域名称,指定id为分区字段,最后要有一个默认的分区域p3,如果没有这个,当插入id不在这个范围时会报错。

3,查看分区情况;

select * from INFORMATION_SCHEMA.PARTITIONS where table_name='users'; 

4,truncate 分区

ALTER TABLE users truncate PARTITION p2;

 这样就将分p2 的数据清除掉了,磁盘也 能释放掉。再次查看分区情况,分区p2 还存在,但是里面的数据行数是0了。

 

 

 

              

 

标签:p2,less,分区,PARTITION,分区表,mysql,磁盘
From: https://www.cnblogs.com/wjun0/p/17762756.html

相关文章

  • mysql 自带的数据库下载地址
    https://dev.mysql.com/doc/index-other.html  ......
  • Sqoop不能正常导出文件到Mysql数据库的问题解决
    之前在使用sqoop输入以下命令时bin/sqoopexport\--connectjdbc:mysql://node1:3306/journal\--usernameroot\--password123456\--tabletop_courses_by_traffic\--export-dir/user/hive/warehouse/journal.db/top_courses_by_traffic--input-fields-terminated-......
  • 编译安装CENTOS7.6+NGINX1.8+MYSQL5.7+PHP7.9+ZABBIX5.0
    LNMP系统安装环境准备:系统版本:CentOSLinuxrelease7.6.1810(Core)PHP版本:php-7.4.9NGINX版本:nginx-1.19.2MYSQL版本:MySQL5.7.43zabbix版本:zabbix-5.0.3以下为下载地址PHPNginxMYSQLzabbixPHP依赖包 把下载的源码包都上传到服务器上,并解压[root@zabbixserver......
  • lower_case_table_names=1 mysql启动失败问题
    1先停掉mysql数据库2删除mysql数据,在初始话时,数据所在的位置3修改/etc/my.cnf配置,添加lower_case_table_names=14重新初始化./mysqld--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data--initialize-insecure--lower-case-table-names=1;注意初始化......
  • MySQL5.5安装教程
    MySQL5.5是MySQL数据库的一个重要版本,它于2010年12月发布,这个版本的特点是性能稳定、功能完善、使用广泛,是目前很多企业和开发者使用的版本之一。随着技术的不断发展和进步,MySQL也在不断更新和升级,推出了更多的版本,例如MySQL5.6、MySQL5.7和MySQL8.0等。这些新版本在功能、性能......
  • PHP+MySQL制作简单动态网站(附详细注释+源码)
    项目介绍项目名称:图书管理系统项目实现的内容:1.用户登录、用户注册、登录界面验证码功能。2.退出登录功能、内容查看、内容添加、内容修改。前端页面设计得有点可能不太专业,将就着用。主要专注在功能的实现。具体实现步骤根目录布置: 1.登录界面实现具体步骤参照文章:PH......
  • 深入解析MySQL双写缓冲区
    本文已收录至GitHub,推荐阅读......
  • mysql多表对比查询
    select'est',count(AC_NO)asgenerated_ac_nofromt_advice_indexwhereBACKET_PATH='e-statement.20230930'unionallselect't24',count(distinctACC_NO)asT24_ac_nofromt_statementwhereFILE_NAME='e-statement.20230930......
  • Jmeter连接Mysql数据库
    一.下载mysql数据驱动https://dev.mysql.com/downloads/connector/j/二、在Jmeter测试计划中添加驱动包三、jmeter添加配置元件:JDBCConnectionConfiguration四、Jmeter发送JDBC请求......
  • MYSQL表信息查询
    统计某个DB里的表占用空间和行数dbname参数请用实际数据库名替换。SELECTtable_nameAS`Table`,ROUND(((data_length+index_length)/1024/1024),2)`SizeinMB`,TABLE_ROWSFROMinformation_schema.tablesWHEREtable_schema="dbname"#ANDtable_namelike'%t......