mysql optimize原理_MySQL数据库入门:表的Optimize 优化

一、optimize优化原理

对mysql进行大量增删改操作,磁盘上的空间没有被立即收回(数据空间、索引位),而是等待新的数据来填充空缺

-- 这些空间可以被后续的insert操作利用,但如果记录是变长的,那么不是所有的空间都能被充分利用

-- 形成碎片,影响磁盘IO

optimize可以把分散(fragmented)存储的数据重新挪到一起(defragmentation),清除碎片,回收闲置的数据库空间

对于MyISAM表,OPTIMIZE TABLE按如下方式操作:

1. 如果表已经删除或分解了行,则修复表。

2. 如果未对索引页进行分类,则进行分类。

3. 如果表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新。

对于BDB表,OPTIMIZE TABLE目前被映射到ANALYZE TABLE上

对于InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE上,这会重建表。重建操作能更新索引统计数据并释放成簇索引中的未使用的空间。请参见13.5.2.1节,“ANALYZE TABLE语法”。使用?skip-new或?safe-mode选项可以启动mysqld。

二、限制

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用

这个操作会使MySql锁定表

InnoDB引擎的表分为共享表空间和独享表空间表,可以通过show variables like 'innodb_file_per_table'来查看是否开启独享表空间。 独享表空间的表是无法进行optimize操作的, 因为独享表空间的表当数据删除时会重组索引并释放对应的空间

三、实践

不需要经常运行,删除大量数据、更新大量变长数据时也仅仅需要每周后者一月运行一次

本文由职坐标整理发布,更多相关知识,请关注职坐标数据库MySQL频道!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive的并行执行原理涉及到Hive的优化和作业调度机制。在Hive中,可以通过设置参数来启用并行执行。其中,设置hive.optimize.skewjoin为true可以启用倾斜数据的并行处理,而设置hive.skewjoin.key为skew_key_threshold(默认值为100000)可以指定倾斜数据的阈值。\[1\] Hive的核心是Driver,而Driver的核心是SemanticAnalyzer。Hive实际上是一个SQL到Hadoop作业的编译器。在Hadoop上,最常见的作业是MapReduce,但Hive也支持其他作业引擎,如Tez和Spark。Hive的并行执行原理与MapReduce类似,但在执行优化上有所区别。\[3\] 总的来说,Hive通过将SQL语句转换为Hadoop作业来实现并行执行。通过优化和作业调度机制,Hive可以提高查询的执行效率和并行处理能力。\[2\] #### 引用[.reference_title] - *1* *3* [hive实现原理介绍](https://blog.csdn.net/breakout_alex/article/details/106938809)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Hive体系结构(二)Hive的执行原理、与关系型数据库的比较](https://blog.csdn.net/Lnho2015/article/details/51417880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值