首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

查看mysql几天前的缩表记录

基础概念

MySQL的缩表(Shrink Table)是指减少表所占用的磁盘空间,通常是通过重建表来实现的。MySQL提供了ALTER TABLE ... ENGINE=InnoDB命令来重建表,从而释放空间。

相关优势

  1. 空间优化:缩表可以释放不再使用的磁盘空间,提高磁盘利用率。
  2. 性能提升:重建表可以优化表的存储结构,提高查询性能。

类型

MySQL的缩表主要通过以下几种方式实现:

  1. 重建表:使用ALTER TABLE ... ENGINE=InnoDB命令重建表。
  2. 在线DDL:MySQL 5.6及以上版本支持在线DDL操作,可以在不阻塞DML操作的情况下重建表。

应用场景

  1. 磁盘空间不足:当数据库磁盘空间不足时,可以通过缩表释放空间。
  2. 表结构优化:在表结构发生变化后,可以通过缩表优化表的存储结构。

查看几天前的缩表记录

要查看MySQL几天前的缩表记录,可以通过查询MySQL的日志文件来实现。MySQL的日志文件包括二进制日志(Binary Log)和慢查询日志(Slow Query Log)。

二进制日志

二进制日志记录了所有的DDL和DML操作,可以通过以下步骤查看:

  1. 找到二进制日志文件
  2. 找到二进制日志文件
  3. 使用mysqlbinlog工具查看日志
  4. 使用mysqlbinlog工具查看日志
  5. 例如,查看2023年10月1日到2023年10月5日的缩表记录:
  6. 例如,查看2023年10月1日到2023年10月5日的缩表记录:
  7. 搜索缩表记录
  8. 搜索缩表记录

慢查询日志

慢查询日志记录了执行时间较长的SQL语句,可以通过以下步骤查看:

  1. 找到慢查询日志文件
  2. 找到慢查询日志文件
  3. 搜索缩表记录
  4. 搜索缩表记录

遇到的问题及解决方法

问题:为什么无法查看缩表记录?

原因

  1. 日志未开启:MySQL的二进制日志或慢查询日志未开启。
  2. 日志文件被删除或移动:日志文件被删除或移动,导致无法查看。

解决方法

  1. 开启日志
  2. 开启日志
  3. 检查日志文件路径
  4. 检查日志文件路径
  5. 恢复日志文件:如果日志文件被删除或移动,可以尝试从备份中恢复。

参考链接

希望这些信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL查看数据库表中的重复记录并删除

表数据如下 查看用户名相同的记录 select * from user where username in (select username from user group by username...HAVING count(*) >1); 查看用户名和手机号都相同的重复记录 select * from user where (username,phone) in (select username...删除用户名和手机号都相同的重复记录 DELETE from user where (username,phone) -- 注意:此处一定要加括号,当成联合字段来处理 IN ( --...HAVING COUNT(1) > 1 ); 上述语句看着是不是应该正常能执行删除掉用户名和手机号都相同的重复记录只保留id最小的那一条。...实际执行会报如下错误: 1093 - You can’t specify target table ‘user’ for update in FROM clause 含义:不能在同一表中查询的数据作为同一表的更新数据

10.9K30
  • mysql查询表的索引_MySQL查看表索引

    大家好,又见面了,我是你们的朋友全栈君。 mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称。...· Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。 · Column_name 列名称。 · Collation 列以什么方式存储在索引中。...在MySQL中,有值‘A’(升序)或NULL(无分类)。 · Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。...基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。...· Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL。

    6.8K40

    mysql查看表的数据结构_mysql查找表结构

    table 表名; MySQL查看表占用空间大小(转) MySQL查看表占用空间大小(转) //先进去MySQL自带管理库:information_schema //自己的数据库:...dbwww58com_kuchecarlib //自己的表:t_carmod … mysql查看表大小 mysql查看表大小 一:命令 show table status like ‘table_name...’\G; mysql> show table status like ‘x’\G; . row … mysql 查看表结构方法 留给自己备查: mysql 导出为 csv 文件时如果直接使用导出命令是无法导出表结构的..., 因此我们需要能够查询表结构的方法: 方法如下: 1.desc(描述)命令 desc tablename;de … MySQL查看表结构及查看建表语句 查看表结构:desc 表名 mysql> use...####sample 1 mysql中去重 distinct 用法 在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重 … MySQL

    5.7K20

    20亿条记录的MySQL大表迁移实战

    我们的一个客户遇到了一个 MySQL 问题,他们有一张大表,这张表有 20 多亿条记录,而且还在不断增加。如果不更换基础设施,就有磁盘空间被耗尽的风险,最终可能会破坏整个应用程序。...而且,这么大的表还存在其他问题:糟糕的查询性能、糟糕的模式设计,因为记录太多而找不到简单的方法来进行数据分析。...这两种解决方案都是很好的选择,但在我们的案例中,我们没有办法使用它们。MySQL 服务器版本太老了,Debezium 不支持,升级 MySQL 升级也不是办法。...在迁移了所有记录之后,我们部署了新版本的应用程序,它向新表进行插入,并删除了旧表,以便回收空间。当然,为了将旧数据迁移到新表中,你需要有足够的空闲可用空间。...我开发了一个新的 Kafka 消费者,它将过滤掉不需要的记录,并将需要留下的记录插入到另一张表。我们把它叫作整理表,如下所示。

    4.7K10

    MYSQL 表的手动更新统计分析记录

    从MYSQL 5.6 开始,统计分析的信息会固化在系统的存储中,通过下面的语句可以查看我们相隔的开关是否打开。...但通常一般都是通过自动触发的方式来完成这样的工作。 而我们可以进行一个测试,关于MYSQL的索引和真是的表信息之间是否有差距。...其实我们已经操作了analyze table 但是我们依然没有得到准确的数字,在平时这可能不会有什么问题,但如果是较大的表例如上千万的表,如果这方面错的比较错,会对执行计划产生问题,这时候可能就需要我们通过手动的方式来更新某些表的记录...update mysql.innodb_table_stats set n_rows = 300024 where database_name = 'employees' and table_name..., 你的表不会频繁更新的操作,并且你要找好自己更新数值的时间点。

    3.9K30

    MySQL数据库学习·数据表的创建,查看,修改

    : 关键字 说明 TEMPORARY 如果使用该关键字,表示创建一个临时表 IF NOT EXISTS 该关键字用于避免表存在时MySQL报告的错误 create_definition 这是表的列属性部分...MySQL要求在创建表时,表要至少包含一列 table_options 表的一些特殊参数其中大多数选项涉及的是表数据如何存储及存储在何处,如ENGINE选项用于定义表的存储引擎,多数情况下,用户不必指定表选项...表示是否为主键,一个表只能有一个PRIMARY KEY,如表中没有一个PRIMARY KETY,而某些应用程序需要PRIMARY KEY,MySQL将返回第一个没有任何NULL列的UNIQUE键,作为...PRIMARY KEY reference_definition 为字段添加注释 二.查看表结构 使用SHOW COLUMNS 语句查看 SHOW [FULL]COLUMNS FROM 数据表名 [...FROM 数据库名]; --或 SHOW [FULL]COLUMNS FROM 数据表名.数据库名; 使用DESCRIBE 语句查看 DESCRIBE|DESC 数据表名; -- 只显示一列的信息 DESCRIBE

    5.1K21

    小白学习MySQL - “投机取巧”统计表的记录数

    同事提了个统计需求,MySQL某个库60%的表都有个isdel字段(char(1)),值是0或1,现在要检索该数据库所有存在isdel字段且isdel=‘0’的表的记录数,举个例子,执行如下的count...的量就通过dba_tab_modifications(数据字典基表是mon_mods、mon_mods_all,DML操作记录到mon_mods,然后merge到mon_mods_all)来统计的,他会记录数据库表的...(2) 依次执行count(*),统计每张表的记录数。 (3) 将(2)中得到的表名和记录数,存储到另外一张表中,作为检索用途。 我们按照倒序,依次操作下, 1....(2) 如果(1)的num>0,则将表名、记录数、插入时间,存入table_count表。...检索table_count,此时表中记录,就是所有isdel='0',且count(*)>0的表名和对应的记录数了, select * from table_count; 其实整个过程,就是我们惯性思维能考虑到的

    4.3K40

    MySQL的分库分表1分库分表的几种形式2分片前的准备

    1分库分表的几种形式 把一个实例中的多个数据库拆分到不同的实例 一后有的节点还是无法负担写负载 把一个库中的表分离到不同的数据库中 终极大招水平拆分!...即分片处理(通常所说的分库分表即此) 不同于MySQL的分区表是在同一个节点中的同一个数据库建立的 而分片后通常是存在不同的物理节点上 由于技术难度极高,难以维护,情非得已,谨慎操作 2分片前的准备...对一个库中的相关表进行水平拆分到不同实例的数据库中 选择分区键 尽量避免跨分区查询的发生(无法完全避免) 尽量使各个分片中的数据平均 存储无需分片的表 每个分片中存储一份相同的数据 对于数据量不大且并不经常被更新的字典类表...使用auto_increment_increment和auto_increment_offset服务器变量让MySQL以期望的值和偏移量来增加auto_increment列的值 方法简单,不依赖于某节点...但该表易成为系统瓶颈 在Redis等缓存nosql服务器中创建全局ID 避免了MySQL性能低的问题

    1.4K71

    关于使用MySQL innoDB引擎中事务和锁的信息记录表

    背景 在INNODB 1.0之前查看数据库线程的方式是通过命令行: show full processlist 查看inodb的所有进程 列表信息 字段名 说明 id 一个标识...库里面添加三张表分别是 innodb_trx,innodb_locks, innodb_lock_waits 通过这三张表用户可以更简单的去查看数据库中的锁问题。...1. information_schemma.INNODB_TRX 此表是查看当前运行的事务 表中对应的字段说明见下图 ?...2. information_schema.INNODB_LOCKS innodb_trx可以查看到事务大概运行情况但是不能查看他具体的锁详情,那么我们就可以通过他trx表中的等待事务锁id去locks...表查找当前被锁住的id 或者 根据事务来查看当前事务的锁的状态详情 ?

    1.8K20

    【JavaP6大纲】MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

    如何设计可以动态扩容缩容的分库分表方案?...对于分库分表来说,主要是面对以下问题: 选择一个数据库中间件,调研、学习、测试; 设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表; 基于选择好的数据库中间件...,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写; 完成单库单表到分库分表的迁移,双写方案; 线上系统开始基于分库分表对外提供服务; 扩容了,扩容成 6 个库,每个库需要...这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都 ok 了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统...这都是玩儿分库分表线上必须经历的事儿。 停机扩容(不推荐) 这个方案就跟停机迁移一样,步骤几乎一致,唯一的一点就是那个导数的工具,是把现有库表的数据抽出来慢慢倒入到新的库和表里去。

    60040

    mysql 5.7.x版本查看某张表、库的大小 思路方案说明

    本文MYSQL版本==5.7.x==,本文提供两种解决方案查询某张表大小,并对每种方案使用限制条件及场景进行解析说明如果MYSQL版本为==8.x==版本,则查看解决方案(本人没验证过,不清楚是否可行,...DATA_LENGTHinformation_schema为系统表,其中TABLES表作为视图可以查看库表字段等等信息,但是它是只读的,不能进行更新、删除和插入等操作,也不能加触发器,因为它们实际只是一个视图...具体可查看官网:https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.7/en/information-schema-tables-table.html...使用场景网上说该方案是针对表引擎为INNODB情况下实时更新并获取表大小,该方案弥补了第一种方案表大小无法做到实时更新的场景,但是FILE_SIZE字段记录的是==未经压缩==的表大小,上面的DATA_LENGTH...具体可查看官网:https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.7/en/information-schema-innodb-sys-tablespaces-table.html

    11610

    【MySQL学习笔记】数据库数据表的创建、查看、选择与修改

    MySQL数据库原理 哈喽大家好~ 这里是MYSQL数据库原理学习笔记专栏第二期 本期内容——数据库/数据表的创建、查看、选择与修改 上期内容——数据库基础知识 欢迎大佬指正,一起学习,一起加油...~ ---- 文章目录 MySQL数据库原理 前言 一、数据库操作 1、创建数据库 2、查看数据库 查看MySQL服务器下所有数据库 查看指定数据库的创建信息 3、选择数据库 4、删除数据库 二、...数据库的创建、查看、选择与删除 数据表的创建、查看、选择与删除 ---- 一、数据库操作 1、创建数据库 MySQL服务器中的数据库可以有多个,分别存储不同的数据。...2、查看数据库 数据库创建完成后,我们可以查看数据库,查看数据库有以下两种方法: 查看MySQL服务器下所有数据库 查看MySQL服务器中已经存在的数据库时,语法如下: show databases;...修改字段名 仅修改数据表中的字段名称,使用change实现,语法如下: alter table 数据表名 change [column] 旧字段名 新字段名 字段类型 [字段属性]; 旧字段名:字段修改前的名称

    3.2K20

    sql INNER JOIN 取得两个表中存在连接匹配关系的记录(mysql)

    在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。...table2.age1; 在这里使用inner join 来联合table1和table2 在使用INNER jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件...,它不管on中的条件是否为真,都会返回左边表中的记录。...2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。...是否输出的结果把两表给结合起来了,你们发现,age1不同的数据并没有输出出来,其实这样的结果比较像数学中的交集呢?这个就是 INNER jion

    6K10
    领券