Mysql中的Optimize table命令

这篇具有很好参考价值的文章主要介绍了Mysql中的Optimize table命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是optimizetable

在MySQL中,optimizetable命令用来重新整理(InnoDB & MyISAM)表格并优化空间利用。优化后的表更容易被访问,节省了磁盘空间,同时可以加速查询,以达到更好的性能。

手册中的相关描述

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] …

如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用
OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片。
在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次
即可,只对特定的表运行。

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。

注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

换句话说,MySQL数据库的表格在不停的操作时间内产生的page分布是不均匀的,这就导致有的页变满就不能继续插入了,导致了表的碎片化以及空间的浪费。在进行大量数据的插入和删除时,会进一步加剧这种现象,使表格的性能下降。

通俗理解

当你删除数据时,mysql并不会回收被已删除数据的占据的存储空间以及索引位。而是空在那里,等待新的数据来弥补这个空缺,这样就有一个缺少,如果一时半会,没有数据来填补这个空缺,那这样就太浪费资源了。所以对于写比较频烦的表,要定期进行optimize,一个月一次,看实际情况而定了。

这时,就需要使用optimizetable重新压缩表格来回收空间和达到优化性能。

使用

mysql里输入以下命令:

OPTIMIZE TABLE table_name;

优化多个表:

OPTIMIZE TABLE [table1],[table2],......[tablen]; 

注意点

① 优化表格之前,最好备份一下表格的数据。如果数据非常庞大,优化时间可能需要很长时间。
② 在OPTIMIZE TABLE运行过程中,MySQL会锁定表。如果涉及海量的数据表,应该考虑使用一些运维手段避免现网的服务受到影响。
③ 使用alter table table_name engine=innodb 命令也可以同样达到释放空洞的效果。这是由于在转换数据引擎(即便没有真正转换)的时候,mysql也会将表中的数据读取出来,再重新写入,在这个过程中,空洞自然就没有了文章来源地址https://www.toymoban.com/news/detail-849296.html

到了这里,关于Mysql中的Optimize table命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySql中执行计划如何来的——Optimizer Trace | 京东云技术团队

    作者:京东物流 籍磊 当谈到MySQL的执行计划时,会有很多同学想:“我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强,凭什么优化器做的决定与我得不一样?”。这个问题在MySQL 5.6之前或许自己很难解决,但是现在MySQL5.6及更高的版本中引入了Optimizer Trace。 当下面这

    2024年02月01日
    浏览(31)
  • 【Unity Optimize】使用图集(Sprite Atlas)优化项目

    Unity中的图集(Sprite Atlas)是一种用于优化游戏性能和内存的纹理集。Sprite Atlas 可以应用于 2D 和 3D 项目中的 UI、粒子系统、贴图等等。 使用Unity可以很方便地创建Sprite Atlas,只需要创建一个Sprite Atlas GameObject,然后将纹理分配给它。在创建Sprite Atlas时,需要将纹理名称按角色

    2024年02月14日
    浏览(28)
  • python scipy.optimize.minimize多变量多参数优化

    自己在用python求解多变量带多超参数输入的最小化问题时,遇到一些问题,在网上找了一下发现也没有特别详细的教程,自己试错之后整理了下minimize的使用说明。话不多说,直接上代码。 y为优化目标函数,x为待优化的变量。优化前给定x的初始值x_ini,因为现在只有一个待

    2024年02月12日
    浏览(32)
  • 【Unity Optimize】使用对象池(Object Pooling)优化项目

    Unity中的对象池(Object Pooling)是一种用于提高游戏性能和减少资源浪费的优化方案。尤其是在需要快速创建和销毁游戏对象时,比如在一些射击游戏中发射子弹时。 对象池在游戏运行前 预先创建一定数量的对象,将它们存储在一个重用字典(或者数组)中,在需要时只是激

    2024年02月11日
    浏览(32)
  • MySQL 8.0 Reference Manual(读书笔记76节--Optimizer Statistics for InnoDB (2))

    开始讲解 非固化的统计数据 This section describes how to configure non-persistent optimizer statistics. Optimizer statistics are not persisted to disk when innodb_stats_persistent=OFF or when individual tables are created or altered with STATS_PERSISTENT=0. Instead, statistics are stored in memory, and are lost when the server is shut down. Statis

    2024年03月27日
    浏览(34)
  • MySQL 8.0 Reference Manual(读书笔记75节--Optimizer Statistics for InnoDB (1))

    This section describes how to configure persistent and non-persistent optimizer statistics for InnoDB tables. Persistent optimizer statistics are persisted across server restarts【意思是重启操作,对这些数据没有影响】, allowing for greater plan stability and more consistent query performance. Persistent optimizer statistics also provide con

    2024年03月27日
    浏览(33)
  • python scipy.optimize.least_squares用法,各个参数详细介绍

    最优化作业,要用一个老师给出的一个线性加非线性的模型 来拟合 太菜了,手搓不了,只能直接用scipy.optimize.least_squares,充分利用到least_squares各个参数,之后拟合效果还是挺好的。         fun, x0, jac=\\\'2-point\\\', bounds=(-np.inf, np.inf), method=\\\'trf\\\',         ftol=1e-8, xtol=1e-8, gtol=1e-8,

    2024年03月17日
    浏览(33)
  • Python中scipy.optimize求解有无约束的最优化算法举例(附代码)

    目录 算法需要输入的参数 算法输出的优化结果 优化算法应用举例 优化算法举例代码  优化算法输出结果  其他优化问题举例 最优化求解问题标准格式如下:  Python中scipy库有很多包,其中一个就是scipy.optimize.minimize求解有无约束的最小化问题。 原文请参考: scipy.optimize.m

    2024年02月09日
    浏览(37)
  • mysql临时表(temporary table)详解

    提示:mysql临时表的创建、使用、作用:1.临时表是一张表,用来临时保存一些数据。它只对创建它的会话可见。当会话结束时,MySQL自动删除临时表(表结构和表数据库),并且临时表不会存进mysql中。2.会话可以创建一个和已有的普通表名字相同的临时表。在这种情况下,该会

    2024年02月13日
    浏览(25)
  • MySQL JSON_TABLE() 函数

    介绍:JSON_TABLE()函数从一个指定的JSON文档中提取数据并返回一个具有指定列的关系表。 应用:数据库字段以JSON 存储后,实际应用需要对其中一个字段进行查询 语法:JSON_TABLE(json,path COLUMNS(column[,column[,...]]))column:name 实例: 数组分别取值 JSON 数组中有两个对象。 路径表达式

    2024年02月13日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包