optimize table的一个小问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了optimize table的一个小问题相关的知识,希望对你有一定的参考价值。

     今天看《高性能mysql》一书时,看到optimize table的命令可以重新组织表,就本地测试了下,执行结果如下:


mysql> optimize table psendohash;

+---------------------+----------+----------+-------------------------------------------------------------------+

| Table               | Op       | Msg_type | Msg_text                                                          |

+---------------------+----------+----------+-------------------------------------------------------------------+

| yangjing.psendohash | optimize | note     | Table does not support optimize, doing recreate + analyze instead |

| yangjing.psendohash | optimize | status   | OK                                                                |

+---------------------+----------+----------+-------------------------------------------------------------------+

2 rows in set (0.38 sec)


==============================

Table does not support optimize, doing recreate + analyze instead 


为什么我的这个表不支持优化呢?


百度了一下,原来我这个表是innodb表,如下

mysql> show create table psendohash\G

*************************** 1. row ***************************

       Table: psendohash

Create Table: CREATE TABLE `psendohash` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `url` varchar(255) NOT NULL,

  `url_crc` int(10) unsigned NOT NULL DEFAULT ‘0‘,

  `common` varchar(20) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `ind_crc` (`url_crc`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1


======================================================

innodb表如果想要重新组织一下表,可以使用下面的命令

mysql> alter table psendohash engine=‘InnoDB‘;  


这样就可以整理表的一些碎片信息了。

以上是关于optimize table的一个小问题的主要内容,如果未能解决你的问题,请参考以下文章

optimize table-2

不能创建Memory Optimized Table

微信小程序代码片段

mysql optimize table

OPTIMIZE TABLE 小解

OPTIMIZE TABLE