optimize table的一个小问题
2016-02-04 17:41
465 查看
今天看《高性能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';
这样就可以整理表的一些碎片信息了。
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';
这样就可以整理表的一些碎片信息了。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复