博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql学习笔记(八)- 两个简单实用的优化方法
阅读量:4209 次
发布时间:2019-05-26

本文共 958 字,大约阅读时间需要 3 分钟。

对于大多数和我一样的开发人员来说,只希望掌握一些简单并且实用的优化方法,对于那些非常复杂的优化方法,可能更倾向于让专业人士来做,那么这里就抄一些简单的优化方法。

1.定期分析表和检查表

分析表的mysql关键词为analyze,该分析结果将可以是的系统得到准确的统计信息,使得sql能够生成正确的执行计划,如果用户感觉实际执行计划并不是预期的执行计划,执行一次分析表可能会解决问题。在分析期间,使用一个读取锁对表进行锁定。这对于myisam、bdb和innodb类型的表来说有一定影响。对于myisam表,本语句与使用myisamchk -a相当。

Analyze table payment;

检查表使用的mysql关键字为check,检测表的作用是检查一个或多个表是否有错误。Checkt对myisam和innodb类型的表有作用。

Check table payment;

Check也可以检查视图是否有错误,比如在试图定义中被引用的表已不存在;

Create view my_view as select * from payment;

2.定期优化表

如果您的表已经删除了一部分,或者如果已经对含有可变长度的行的表(比如含有varchar、blob或者text列的表)进行了多次修改,择应该使用optimize table命令来进行表优化。这个命令可将表中的空间碎片进行合并。并且可以消除由于删除或者更新造成的空间浪费。但optimize指令只对myisam、bdb和innoDb有作用。

Optimize table payment;

对于innodb引擎来说,通过设置innodb_file_per_table参数,设置innodb为独立表空间模式,这样每个数据库的每个表都会生成一个独立的ibd文件,用来存储表的数据和索引,这样可以一定程度上减轻innodb表的空间回收问题。另外,在删除大量数据后,innodb表可以通过alter table但是不修改引擎的方式来回收不可用的空间。

Alter table payment engin=innodb;

注意:analyze、check、optimize、alter table执行期间对表进行锁定,因此一定注意要在用户不注意的的时候进行相关的操作。

转载地址:http://slkmi.baihongyu.com/

你可能感兴趣的文章
Linux文件和设备编程
查看>>
文件描述符
查看>>
终端驱动程序:几个简单例子
查看>>
登录linux密码验证很慢的解决办法
查看>>
fcntl函数总结
查看>>
HTML条件注释
查看>>
Putty远程服务器的SSH经验
查看>>
内核态与用户态
查看>>
使用mingw(fedora)移植virt-viewer
查看>>
趣链 BitXHub跨链平台 (4)跨链网关“初介绍”
查看>>
C++ 字符串string操作
查看>>
MySQL必知必会 -- 了解SQL和MySQL
查看>>
MySQL必知必会 -- 使用MySQL
查看>>
MySQL必知必会 -- 数据检索
查看>>
MySQL必知必会 -- 排序检索数据 ORDER BY
查看>>
MySQL必知必会 -- 数据过滤
查看>>
POJ 3087 解题报告
查看>>
POJ 2536 解题报告
查看>>
POJ 1154 解题报告
查看>>
POJ 1661 解题报告
查看>>