mysql optimize 用法_optimize在mysql中的用法
optimize命令是mysql的常用优化表碎片的命令,但是在InnoDB与MyISAM这两个存储引擎中却有很大的分别。本文将对这两个常用的存储引擎进行讨论 方法/步骤 1 当对表有大量的增删改操作时,需要用optimize对表进行优化。可以减少空间与提高I/O性能,命令optimize table tablename;假如有foo表且存储引擎为MyISAM。 mysql>optimize table foo; +------------+----------+----------+----------+ | Table | Op | Msg_type | Msg_text | +------------+----------+----------+----------+ | test.foo| optimize | status | OK | +------------+----------+----------+----------+ 2 如果是InnoDB引擎,首先查看innodb_file_per_table(是否独享表空间)。 mysql>show variables like 'innodb_file_per_table'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | OFF | +-----------------------+-------+ OFF代表开启独享表空间没有打开,即采用的是默认的共享表空间。这个时候可以在mysql的datadir路径下看到一个非常大的文件ibdata1,这个文件存储了所有InnoDB表的数据与索引。 3 如果foo是InnoDB,执行如下命令 mysql>optimeze table foo; 会返回如图信息,最后的一条Table does not support optimize, doing recreate + analyze instead,即代表optimize无法优化表。 这个时候使用如下命令优化表 mysql>alter table foo ENGINE = 'InnoDB'; mysql>analyze table foo; 返回如下信息 +------------------------+---------+----------+----------+ | Table | Op | Msg_type | Msg_text | +------------------------+---------+----------+----------+ | test.foo | analyze | status | OK | +------------------------+---------+----------+----------+ 即可优化该表 optimize在mysql中的用法 4 如果开启了独享表空间,即每张表都有ibdfile。这个时候如果删除了大量的行,索引会重组并且会释放相应的空间因此不必优化 5 由于共享表空间所有表的数据与索引都存放于ibddata1文件中,随着数据量的增长会导致该文件越来越大。超过10G的时候查询速度就非常慢,因此在编译的时候最好开启独享表空间。因为mysql默认是关闭了独享表空间,下面有两个解决方案 6 方案一:先逻辑备份所有的数据库,将配置文件中innodb_file_per_table参数=1,再将备份导入 7 方案二:只要修改innodb_file_per_table参数,然后将需要修改的所有innodb的表都运行一遍 alter table table_name engine=innodb;即可使用第二种方式修改后,原来库中的表中的数据会继续存放于ibdata1中,新建的表才会使用独立表空间
mysql optimize 用法_optimize在mysql中的用法相关推荐
- mysql的explain怎么看_mysql中explain用法详解
如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序. explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1 ...
- mysql查询重复的名字_Mysql中like用法:查询名字中含有风字的学生信息
一.表名和字段 –1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别 –2. 课程表 course (c_id,c_name ...
- mysql raiserror_RAISERROR在SQL Server数据库中的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- return在php中用法,细致解读PHP中return用法(附代码)_后端开发
在大部分编程言语中,return关键字能够将函数的实行效果返回,PHP中return的用法也迥然不同,对初学者来讲,控制PHP中return的用法也是进修PHP的一个入手下手. 起首,它的意义就是返回 ...
- java中switch用法举例范围_Java中Switch用法代码示例
一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样), 在java1.7后 ...
- python中print的用法_Python2与Python3中print用法总结
Python2中的print用法 在Python2 中 print 是一种输出语句 strHello = 'Hello Python' print strHello # Hello Python 1. ...
- python的继承用法_python之继承中组合用法与菱形继承关系查找法
1.什么是组合 组合就是一个类的对象具备某一属性,该属性的值是指向另外外一个类的对象 2.为什么用组合 组合也是用来解决类与类之间代码冗余问题 3.用法 class Course: ...
- python生成器用法_理解python中生成器用法
生成器(generator)概念 生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束. 生成器语法 生成器表达式: 通列表解 ...
最新文章
- Linux内核跟踪之trace框架分析【转】
- 剑指offer_第7题_斐波那契数列
- 【每日一算法】相交链表
- Scrum Mastery:有效利用组织的5个步骤
- 调整体态的最佳瑜珈调息法
- 深入浅出:移动端(Android 和 iOS)数据采集埋点 SDK
- factorybean 声明_阿里面试题:BeanFactory与FactoryBean的区别
- MONGODB 集群 配置及 客户端PHP 连接
- 重复运行JUnit测试而没有循环
- arccatalog点要素显示不完,shp数据全图显示正常,放大要素不能显示的问题
- C#与Matlab混合编程中遇到的“MathWorks.MATLAB.NET.Arrays.MWNumericArray”的类型初始值设定项引发异常。
- 从VC++ 6.0 MSDEV到Visual Studio 2017的过渡阶段
- java ftp下载文件夹下的所有文件_ftp下载文件夹下的文件,从ftp下载某一文件夹下的所有文件...
- Apache ShenYu源码阅读系列-基于Http长轮询的数据同步
- 不支持android浏览器下载工具,android 默认浏览器 无法下载,此手机不支持此内容(自定义文件or APK文件看过了)...
- 斗牛(牛牛)概率计算器
- php 清除word标签,word如何取消修改标注
- java编程之拼图_Java编程制作拼图游戏
- 文创样机大合集100套,设计师必备
- 分部积分出现积回去的情况