社区
MySQL
帖子详情
OPTIMIZE TABLE优化的问题
rczjp
2011-06-07 01:54:15
OPTIMIZE TABLE A,B,C的时候,有的时候就一直卡住不动,没有相应了,我退出来,这个表就坏了
请问是怎么回事?
...全文
671
7
打赏
收藏
OPTIMIZE TABLE优化的问题
OPTIMIZE TABLE A,B,C的时候,有的时候就一直卡住不动,没有相应了,我退出来,这个表就坏了 请问是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rucypli
2011-06-07
打赏
举报
回复
对于MyISAM表,OPTIMIZE TABLE按如下方式操作:
1. 如果表已经删除或分解了行,则修复表。
2. 如果未对索引页进行分类,则进行分类。
3. 如果表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新。
对于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上。对于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上,这会重建表。重建操作能更新索引统计数据并释放成簇索引中的未使用的空间。请参见13.5.2.1节,“ANALYZE TABLE语法”。
rucypli
2011-06-07
打赏
举报
回复
[Quote=引用 1 楼 rczjp 的回复:]
另外客服端在运行远程的优化,客户端突然停电了,服务器端没有停电,请问优化还在继续执行吗?
[/Quote]
取消
ACMAIN_CHM
2011-06-07
打赏
举报
回复
没什么其它好办法。 总是要锁表的。
你可以另外创建一张新表,然后复制原表中数据到新表,之后再删除原表,并将新表改名为原表。 但这个之间的一些操作肯定要锁表以保证数据的一致性。
rczjp
2011-06-07
打赏
举报
回复
[Quote=引用 2 楼 wwwwb 的回复:]
日志中有无信息
[/Quote]日志没有注意看了,正常情况是10多秒就可以优化完全,有时如果卡住,那么就会一直不响应,没有办法只能退出,而一旦退出就必须要修复表了,很麻烦
[Quote=引用 3 楼 acmain_chm 的回复:]
OPTIMIZE是重构整个表,如果这个表很大的话,的确会需要比较长的时间。 中途如果断电,或者其它异常则会导至整文件结构的异常从而导致表无法正常使用。 无法继续再OPTIMIZE,需要CHECK或者REPAIR一下。
[/Quote]嗯,数据多有时时间长点,不过有时是卡死在那没有反应了
由于更新操作很频繁,所以想优化下索引,有其他方法解决吗?另外 OPTIMIZE会锁表,感觉也不好
ACMAIN_CHM
2011-06-07
打赏
举报
回复
OPTIMIZE是重构整个表,如果这个表很大的话,的确会需要比较长的时间。 中途如果断电,或者其它异常则会导至整文件结构的异常从而导致表无法正常使用。 无法继续再OPTIMIZE,需要CHECK或者REPAIR一下。
wwwwb
2011-06-07
打赏
举报
回复
日志中有无信息
rczjp
2011-06-07
打赏
举报
回复
另外客服端在运行远程的优化,客户端突然停电了,服务器端没有停电,请问优化还在继续执行吗?
mysql下
优化
表和修复表命令使用说明(REPAIR
TABLE
和
OPTIMIZE
TABLE
)
查询mysql表是否被损坏命令,如下: # CHECK
TABLE
表名 mysql的长期使用,肯定会出现一些
问题
,一般情况下mysql表无法访问,就可以修复表了,
优化
时减少磁盘占用空间。方便备份。 表修复和
优化
命令,如下: #REPAIR
TABLE
`
table
_name` 修复表 #
OPTIMIZE
TABLE
`
table
_name`
优化
表 REPAIR
TABLE
用于修复被破坏的表。
OPTIMIZE
TABLE
用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了
OPTIMIZE
TABLE
命令后这些空间将被回收,并且对磁盘上的数据行
探讨Mysql中
OPTIMIZE
TABLE
的作用详解
本篇文章是对Mysql中
OPTIMIZE
TABLE
的作用进行了详细的分析介绍,需要的朋友参考下
实现MySQL定时批量检查表repair和
优化
表
optimize
table
的shell脚本
本文介绍mysql定时批量检查表repair和
优化
表
optimize
table
的shell脚本,对于MySQL数据库的定期维护相当有用!如下所示: #!/bin/bash host_name=192.168.0.123 user_name=jincon.com user_pwd=jincon.com database=my_db_name need_optmize_
table
=true
table
s=$(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse show
table
s) for
table
_name in
mysql
optimize
table
,MySQL中使用
OPTIMIZE
TABLE
优化
表
OPTIMIZE
TABLE
语句可以重新组织表、索引的物理存储,减少存储空间,提高访问的I/O效率。类似于碎片整理功能。
OPTIMIZE
TABLE
语法如下:
OPTIMIZE
[NO_WRITE_TO_BINLOG | LOCAL]
TABLE
tbl_name [, tbl_name] …默认情况下,MySQL将
OPTIMIZE
TABLE
语句写入二进制日志,以便它们复制到slave服务器。如果不...
使用
OPTIMIZE
TABLE
优化
MySQL表空间
是MySQL中用于
优化
表空间的重要命令。通过重新组织表的物理存储结构,它可以减少碎片并回收未使用的空间,从而提高查询性能和表空间利用率。然而,在使用时需要注意其对系统性能的影响以及InnoDB的特殊性。因此,建议在进行
优化
之前充分评估其必要性并备份数据库以防万一。新时代农民工(QQ:277718357) 点击关注下方↓微信公众号:程序进阶之路,了解更多技术知识。
MySQL
57,062
社区成员
56,762
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章