Products
GG网络技术分享 2025-12-03 07:33 13
假删除, 听起来好奇怪啊,其实就是说你kan起来像是删除了数据,但其实吧,数据还在那里只是被标记为“Yi删除”啦。就像你在书上画了个圈圈,kan起来像是删掉了但其实字还在那里呢,试着...。

是个狼人。 哦,这个嘛,主要是为了平安考虑。就像你不想直接把东西扔掉,而是想找个地方先放着,万一以后要用呢。在数据库里也是这样,你不想真的删除数据,但是又怕以后找不到,所以就用假删除的方式来处理。
Ke以通过直接删除log文件和清空日志在清除数据库日志。但是第四步不太平安,有可Neng损坏数据库或丢失数据。 小丑竟是我自己。 删除数据库信息的ldf文件,哦,这个有点复杂,我不是hen懂。
再说一个, 下面这个命令也Ke以实现重建表,Ke以达到跟上面一样的效果,而且推荐大家使用下面这个命令,大家Ke以试试。沿用前面文章中的例子吧,先创建一个存储过程,插入10w条数据,然后kan下这10w条数据占了多大的空间。
对,就这个意思。 从后来啊Ke以发现, 表数据被清空后表所占空间大小并没有变化,这就验证了上面的结论,delete操作并没有真正删除数据,表的空间并没有被释放。
主要原因是你要知道, MySQL在底层是以数据页为单位来存储和读取数据的,每次向磁盘读一次数据就是读一个数据页, 换言之... 只是每访问一个数据页就对应一次磁盘IO操作,磁盘IO相对内存访问速度是相当慢的。
绝绝子! 所以呢, 一个数据表在经过大量频繁的增删改之后难免会产生数据空洞,浪费空间并影响查询效率,通常在生产环境中会直接表现为原本hen快的查询会变得越来越慢。
优化表这个命令的原理就是重建表, 就是建立一个临时表B,然后把表A中的所有数据查询出来接着把数据全部重新插入到临时表B中,再说说再用临时表B替换表A即可,这就是重建表的过程。
所以 你想想,Ru果一个表上存在大量的数据空洞,原本只需一个数据页就保存的数据,由于被hen多空洞占用了空间,不得不需要增加其他的数据页来保存数据,相应的,MySQL在查询相同数据的时候,就不得不增加磁盘IO操作,从而影响查询速度。
栓Q! 其实不仅仅是删除操作会造成数据空洞, 插入和geng新同样也会造成空洞,这里就不细说了你知道就行。
哦, 对了Ru果你不小心误删了数据,也不要太担心,主要原因是这些dou是Ke以恢复的,只要你有一个好的备份策略,你看啊...。
Demand feedback