MySQL 表被覆盖怎么恢复

MySQL 表被覆盖怎么恢复,第1张

1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下): 拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧 2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息

在innoDB中,有两大索引类,分别是

执行上述语句,执行过程如下图

从图中,我们可以看出,扫了两个索引树

(1)先从普通索引name找到lisi

(2)再根据主键值9,再在聚集索引中找到行记录。

这就是回表查询,先在普通索引中找到主键值,再在聚集索引中找到行记录。

很显然,在一棵索引树上就能获取SQL所需的所有列数据的,就是索引覆盖。

如下语句

很显然,我们可以直接在name索引上直接找到id,name,不用再去回表。

而且我们通过explain的extra属性也能观察到

像我们开头的SQL语句

我们只需要在name索引中再加个sex,name(name,sex),这样变成了联合索引,也是索引覆盖。

有多种方法.请参考以下方法.方法一:安装一个mysql的客户端,比如navicat,建好连接,打开要导入的数据库,点击导入向导,选择要导入的 数据,选择要导入的目标表,在最后的选项中选择附加到已有数据.方法二:先使用mysq命令行导入新数据到一张新表,新表结构与之前表一样.然后执行以下插入语句.假定新表名为new_tb,原表名为old_tb,则insert into old_tb select * from new_tb


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6144996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存