一门从业4年都没能用上的优化技术

 

背景

  对于一个oltp系统,一段时候之后页面(page)上就会出现“空穴”;通俗点来讲,比如一个页面本来可以保存600行记录了,但是由于行与行

  之间出现了“空穴”(一种出现空穴的可能是:之前这个位置上存在的行被删除掉了,这个空间被标记成可复用),也就是说行与行不再是紧密

  的排列在一起;这样的话,一来这会占用过多的磁盘空间,二来会对查询性能有一点的影响。

 

怎么办

  按官方的说法DBA有三种方式可以让行重新排一下 

  方法一:

alter table t engine=innodb;

  方法二:

alter table t force;

  方法三:

  1):把表的数据dump出来、2):删除表 3):把数据import进去

 

 

为什么这么点小事还要记一下

  在这之前我知道的就是方法一 和 方法三,还是第一次看到"alter table t force"这样的写法!这里还是记一下要不然哪天看到了吓到自己。

  工作这么久还没有遇到过哪个问题是通过上面的方式解决的,我感觉主要原因有两个 a): 在面对一个问题时“原因”是不是由“页面空穴”引

  起的,这个比较难回答;没有好的方式去量化这个原因的影响。 a): 还没有被逼到这一步问题就已经解决了,也就是说就算这个问题有影响

  通常也不是主要矛盾!

 

 

 

---

posted on   蒋乐兴的技术随笔  阅读(523)  评论(5编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2016-12-14 SQL建模错误--逗号分隔值
2014-12-14 Linux 查看文件
2014-12-14 Linux cd命令

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示