OPTIMIZE TABLE

INNODB 不支持


mysql> OPTIMIZE TABLE t; +--------+----------+----------+-------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +--------+----------+----------+-------------------------------------------------------------------+ | test.t | optimize | note | Table does not support optimize, doing recreate + analyze instead | //INNODB | test.t | optimize | status | OK | +--------+----------+----------+-------------------------------------------------------------------+ 2 rows in set (0.24 sec)
mysql> show create table t;
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                        |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (`a` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`a`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.18 sec)

 

使 OPTIMIZE  table 对 innodb 支持

 mysqld --datadir=/data --basedir=/usr/local/mysql56 --user=mysql --gdb --skip-new

 

mysql> OPTIMIZE TABLE t;
Query OK, 0 rows affected (0.27 sec)
Records: 0  Duplicates: 0  Warnings: 0

原理:映射为 alter table

By default, OPTIMIZE TABLE does not work for tables created using any other storage engine and returns a result indicating this lack of support.

You can make OPTIMIZTABLE work for other storage engines by starting mysqld with the --skip-new option.

In this case, OPTIMIZE TABLE is just mapped to ALTER TABLE.

 

 

OPTIMIZE TABLE continues to use ALGORITHM=COPY under the following conditions:When the old_alter_table system variable is turned ON.

set old_alter_table=on; //alter table 修改表采用 algorithm=copy 方式
When the mysqld --skip-new option is enabled.

 

 

 

 

google:

Everytime you do optimize MySQL, by using mysqlcheck -A -o or using ./mysql_optimize from here.
You may see the output
Table does not support optimize, doing recreate + analyze instead.It is because the table that you are using is InnoDB.You can optimize the InnoDB tables by using this.ALTER TABLE table.name ENGINE='InnoDB';This will create a copy of the original table, and drop the original table, and replace to the original place.Although this is safe, but I suggest you do backup and test first before doing this.

 

mysql> ALTER TABLE t ENGINE='InnoDB';          
Query OK, 0 rows affected (0.29 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> select * from t;
+---+
| a |
+---+
| 7 |
+---+
1 row in set (0.01 sec)

 

innodb的数据库不支持optimize,可以用ALTER TABLE table.name ENGINE='InnoDB';
该方法会对旧表以复制的方式新建一个新表,然后删除旧表。虽然这个过程是安全的,
但是在进行操作时还是先进行备份为好

 


MyISAM:正常
mysql> show create table t;
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                        |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (`a` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`a`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql> OPTIMIZE TABLE t;
+--------+----------+----------+----------+
| Table  | Op       | Msg_type | Msg_text |
+--------+----------+----------+----------+
| test.t | optimize | status   | OK       |
+--------+----------+----------+----------+
1 row in set (0.00 sec)

 

转载于:https://www.cnblogs.com/zengkefu/p/5636220.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

r语言 面板数据回归_R语言_018回归

回归分析是统计学的核心。它其实是一个广义的概念,指那些用一个或多个预测变量来预测响应变量的方法。通常,回归分析可以用来挑选与响应变量相关的解释变量,可以描述两者的关系,也可以生成一个等式,通过解释变量来预测…

Integer对象范围(-128-127)之间(Integer. valueOf()方法)

1.Integer. valueOf()方法的作用 Integer. valueOf()可以将基本类型int转换为包装类型Integer,或者将String转换成Integer,String如果为Null或“”都会报错 看下面代码示例 取值为127时 取值为128时 为什么会是这样呢? 首先,我们…

操作系统基础:进程知识笔记(三)

1、死锁概念知识 计算机中存在许多互斥资源(打印机)、软件资源(进程表、临界区)如果两个进程同时调用打印机,或同时进入临界区必然会出现问题。 死锁:指两个以上的进程互相要求对方已经占有的资源导致无法继…

垂直梯形校正画质损失多少_梯形校正功能是怎么实现的?其中可大有学问

梯形校正这个概念,想必大部分投影仪用户早已耳熟能详。所谓的梯形校正,指的是当我们的投影仪位置摆放不正时,投射出来的画面会是一个梯形,这时候需要通过投影仪的梯形校正功能将画面调整为可以正常观看的矩形。虽然目前市场上的大…

操作系统基础:存储管理知识笔记(一)

1、存储器基础知识 存储器管理的对象是主存或内存,存储器是计算机系统中非常关键的资源,用来存放各种信息的主要场所。存 储器管理功能主要包括:主存空间的分配和回收、提供主存利用率、扩充主存、主存信息的保护。 2、存储器结构 存储器结构…

asp点击按钮sql列求和_助你2020晋级互联网大数据阵营(一):轻轻松松学SQL

毫不负责任的说,你和数据科学家最大的鸿沟,就差一个SQL语言:)入门后,后面的事情就简单了为了帮大家尽快入门Hive SQL、学会提数和分析,实现在大数据领域大干一场的愿望,帮你准备好了数据,准备好…

幂等和高并发在电商系统中的使用

在Java web项目开发中,经常会听到在做订单系统中生成订单的时候,要做幂等性控制和并发控制,特对此部分内容作出总结,在高并发场景下,代码层面需要实现并发控制;但是幂等性,其实更多的是系统的接…

@transactional注解失效情况

先来了解一下Transactional注解事务的特性吧,可以更好排查问题 1、service类标签(一般不建议在接口上)上添加Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这些事务采用相同的管理方…

计算机c盘隐藏了怎么办,win7怎么隐藏c盘 win7c盘被隐藏了怎么解除

很多的电脑用户担心其他用户在使用电脑时修改c盘中的重要文件,所以会将c盘设置为隐藏,那么大家知道在win7系统中怎么隐藏c盘吗?方法很简单,下面小编为大家带来win7隐藏c盘的详细教程,不知道怎么隐藏的朋友可以查看下面的教程学习…

操作系统基础:存储管理知识笔记(二)

一、分页存储管理 1、分页存储管理介绍 1.1 分页原理 页:将一个进程的地址空间划分为若干个大小相等的区域称为页。 块、页框:主存空间划分成与页相同的若干个物理块。 1.2 地址结构 分页系统地址结构:前一部分为页号;后一部分为页…

人工智能 信道估计 深度学习_DEMO演示|基于IVP02D 人工智能工作站的深度学习引擎,实现人群热力估计...

近年来,随着深度学习在计算机视觉领域获得广泛应用,算法框架也日渐成熟,例如基于深度神经网络的人群密度分析,通过自动学习能获得更有效的人群特征,相较于传统方法取得了一定的提高。AI小知识人群密度分析(…

SPSS学习中涉及的统计知识

1、独立性检验 2、方差分析中方差齐性检验 3、非参数检验 4、p-p图 5、卡方检验:研究分类因变量与分类自变量的关系。独立性检验 6、t检验:研究连续因变量与分类自变量的关系。 7、哑变量 总结: 因变量连续,自变量连续&#xff0c…

vscode kite插件_微软发布 VS Code Python 插件 7 月更新

微软发布了 7 月的 Visual Studio Code Python 扩展更新,此版本总共修复了 51 个问题,其中包括:支持新的语言服务器:PylanceGather 扩展将 Notebook 导出为 HTML 和 PDF调试器的反向连接支持新的语言服务器:PylancePyl…

360浏览器打不开微信的连接服务器,上午还能打开,下午360浏览器打不开微信公 – 手机爱问...

2011-08-27ie,搜狗,谷歌浏览器都打不开,说打不开ipad说服务器超时是新浪在更新设备吗?一般你能进入爱问就可以进入邮箱,下面的方法看看(如果你是铁通的可能是铁通的问题)。可能是服务器故障引起的,请不要着…

域名还能绑定动态IP?看完又涨知识了!!

点击上方蓝色“冰河技术”,关注并选择“设为星标”持之以恒,贵在坚持,每天进步一点点!作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。…

java 及时释放内存_JMM(一):初识Java内存模型

在并发编程中,线程之间的通信是一个很关键的问题,而该问题解决方案主要可分为两大类:消息传递、共享内存。前者有以Erlang语言为代表的Actor模型,而后者中典型的则是Java语言。对于消息传递机制而言,线程之间必须通过发…

php 复习

对所学知识的依次基础的总结 <?php一.php基础语法 1.输出语句&#xff1a;**echo(可以输出多个字符串); print&#xff08;输出一个字符串&#xff09;; print_r&#xff08;输出数组&#xff09;; **var_dump()&#xff08;具体 的数据 还有它的类型&#xff09;;2.php是弱…

mac新建文件夹快捷键

mac新建文件夹快捷键 COMMAND SHIFT N

python382怎么用_用python做UDP连接

写个客户端 #!/usr/bin/env python from socket import * HOST 10.2.167.115 PORT 20001 BUFSIZE 1024 ADDR (HOST, PORT) udpClientSock socket(AF_INET, SOCK_DGRAM) while True: data raw_input(Enter the message you want to send >) if not data: break udpClie…

更新系统后魔兽世界无法连接至服务器,《魔兽世界:熊猫人之谜》5.0launcher更新无法连接服务器解决方法...

早上launcher一半的时候&#xff0c;出现无法链接服务器&#xff0c;并且自动关闭。测试多种办法&#xff0c;已经解决。1、打开目录x:/world of warcraft/temp2、运行目录下&#xff1a;wow-4.3-5.0.15890-zhcn-downloader.exe (一个英文下载器)3、报错could not connect to t…