首页
学习
活动
专区
圈层
工具
发布

MySQL之重建表

MySQL之重建表 在MySQL中,如果我们对大表频繁进行insert和delete操作,那么时间一长,这个表中会出现很多"空洞",也就是表碎片。...在这种情况下,往往需要对表进行重建,从而释放这些空余的空间,让数据变得"紧凑些",如下: ?...这个重建表的过程,在MySQL5.5之前,它的执行逻辑是下面这样的: 1、假设原表是A,新建一个表table B,和表A的表结构保持一致 2、按照主键顺序,将表A的数据一行一行的读出来,插入到表B里面...在MySQL5.5之前,我们使用临时表作为重建的中间介质,在MySQL5.6之后,我们使用临时文件作为重建的中间介质,这里说说这个临时表和临时文件的区别。...2、inplace方案进行的表重建操作,都是Online DDL么?

5K10

MySQL索引重建?如何操作?

两周没有更新文章了,最近一直在忙”人生大事”,毕竟人这一生,除了工作、上班还有其他几件重要的事情,而且也是每个人都必须要经历的,走完了,也就走完了…… 言归正传,在日常数据库管理中,经常会遇到索引重建的需求...,针对MySQL数据库,不像Oracle数据库中有支持索引重建的语法(ALTER INDEX … REBUILD),在MySQL数据库中,重建索引具体有哪些方案呢?..., OPTIMIZE TABLE也可以对索引进行重建,官方文档的介绍如下: OPTIMIZE TABLE uses online DDL for regular and partitioned InnoDB...-------+ 1 rows in set (0.00 sec) 从上述结果可以看到,表的创建时间变成了2021-11-09 13:53:53; 在网上有种说法说ANALYZE TABLE方法也可以重建索引...,经过测试,发现ANALYZE TABLE是不会对索引进行重建的,发现ibd文件没有变化,表的修改时间/状态更改时间也没有变化。

5.5K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux自动备份mysql数据库|mysql备份

    文章时间:2019年1月31日 08:49:46 作者:余伟同学 说明:利用crotab定时器,实现定时自动备份mysql数据库 更新人 更新时间 更新内容 余伟同学 2019年10月10日...12:30:57 增加复杂版本sh,7天自动删除 安装crotab 安装教程地址:https://wiki.nooss.cn/archives/84.html 编写备份mysql的shell脚本 #简单版本...).sql.gz #复杂版本 ########文件名称为当天时间############# time=`date '+%y-%m-%d %H:%M:%S'` echo $time echo '开始备份数据库...###################数据库配置信息####################### user=root passwd=root dbname=databases mysql_back_path...-p$passwd $dbname > $mysql_back_path/$time.sql.gz echo '数据库备份完成' find /home/dbback/ -mtime +3 -name

    27.7K21

    Discourse 数据库重建索引

    在 Discourse 数据库进行升级后的主要特性就是对 Discourse 数据库中使用的索引进行优化。Discourse 中的索引主要使用的是post_timings 表和数据库的索引。...当对数据库升级完成后,需要针对数据库运行下面的命令来对数据库的索引进行优化和重建。cd /var/discourse....postgrespsql\connect discourseREINDEX SCHEMA CONCURRENTLY public;\qexitexit当完成上面的命令后,可以检查下 post_timings 的大小来查看数据库重构索引后的数据库数据大小变化...也可以使用下面的命令来对数据库进行查询,下面的 SQL 查询将会返回你当前运行 Discourse 实例中 20 个最大的数据对象。可以在索引重建之前和之后都运行下来比较大小。

    61500

    Linux 搭建远程MySQL数据库

    最近需要用到数据库,又不想在自己电脑上折腾,所以弄个云服务器太好不过了,哈O(∩_∩)O哈! linux系统基本上分两大类: RedHat系列:Redhat、Centos、Fedora等。...mysql数据库 有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉 [root@zkm ~]# rpm -e mysql  // 普通删除模式...我是通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本: [root@zkm ~]# yum...list | grep mysql 就可以得到yum服务器上mysql数据库的可下载版本信息: wget http://repo.mysql.com/mysql-community-release-el6...登录 mysql -uroot -proot 说明: mysql -hlocalhost -uroot -p -h数据库主机 -u用户 -p密码 -P端口号(大写P) 例如mysql -hlocalhost

    7.3K30

    如何使用 MyDumper 重建 MySQL 副本?

    当副本因损坏或漂移而失效时,如果无法使用 pt-table-sync,标准解决方案是从主数据库的全新副本重建副本。传统上,为了快速重建副本,我们会使用 物理备份,但在某些情况下,逻辑备份仍然必不可少。...例如,当您迁移到特定供应商(例如:从 MariaDB 迁移到 MySQL)或存储引擎(过去是从 MyISAM 迁移到 InnoDB,现在是从 InnoDB 迁移到 RocksDB)、升级到新的数据库版本或迁移到云端解决方案时...(mysql.|sys.))'...对故障副本进行重建有一个有趣的用例,我们可以使用 START REPLICA UNTIL 来修复某些表的偏移,而 pt-table-sync 或重建整个副本是不可能的。...假设我们有一个源数据库和一个副本数据库,我们发现副本数据库上的数据发生了,并且复制过程停止并出现如下错误:LAST_ERROR_MESSAGE: Worker 1 failed executing transaction

    34410

    linux系统定时备份MySQL数据库

    一个项目的基础便是数据库,但是可能因为某些原因会导致数据丢失,或数据库结构变化,严重一点的或造成数据库删除。...为了以防万一,这时候就需要我们定时进行数据库备份,但是如果人来操作的话会是一个比较麻烦的工程,这时我们可以使用mysqldump写个脚本,由Linux的crontab来定时执行。...假如在我的数据库中有一个emp的数据库。...1.在linux系统中自定义一个文件夹,在我的服务器上我放在了/zhb/backup 2.在/zhb/backup下面建一个bkemp.sh的脚本文件 3.使用vi命令 vi ....[在这里插入图片描述]大功告成,当然我们实际应用中不需要每分钟进行数据库的备份,具体的crontab表达式可根据实际进行编写。

    7.6K50

    【Linux】在Linux上安装MySQL数据库的步骤

    MySQL是一种流行的开源关系型数据库管理系统,广泛用于Web应用程序和其他各种用途。在本篇博客中,我们将介绍如何在Linux操作系统上安装MySQL数据库。...请确保选择一个强密码,并记住它,因为这将是管理MySQL数据库的主要密码。...输入密码后,如果一切正常,您将进入MySQL命令行界面,表示MySQL安装并配置成功。 总结: 通过按照以上步骤,在Linux上成功安装了MySQL数据库。...MySQL是一个功能强大的数据库管理系统,您现在可以开始使用它来存储和管理数据。如果您在安装过程中遇到问题,可以查阅MySQL官方文档或在相关社区寻求帮助。...希望这篇博客对您在Linux上安装MySQL数据库时有所帮助!

    2.3K10
    领券