我用delete语句误操作删除了40万条数据,结果发现数据表对应的MYD文件还是原来那么大(1G多)
这是怎么回事,难道被我误删的数据藏在了什么地方?
我很想把误删的数据找回来。请多指教,谢谢。

解决方案 »

  1.   

    InnoDB吗?删除后要optimize table好像才会收缩空间可通过binlog来进行恢复、不过binlog_format要是Row格式
      

  2.   

    对的  mysql没有自动回收空间的功能
      

  3.   

    如果有备份 则可以恢复
    如果没有备份 有binlog也行 前提是binlog没有删除过
      

  4.   

    记录删除后,这些记录所占用的磁盘位置并不会被释放。 需要用 optimize table 来压缩文件。这些记录仅是被打上已删除标记了。 如果深入研究一下MYISAM的存储格式,则可以恢复。不过研究这个的人肯定不多。
      

  5.   

    delete只是做标记了,并没有真正删除,而且ls 讲的都是错的。
      

  6.   

    是MYISAM的吧,除非对MYD的存储方式比较了解,才能恢复,否则用备份吧