[转帖]MySQL如何在InnoDB中重建索引并更新统计数据?
https://geek-docs.com/mysql/mysql-ask-answer/356_mysql_how_can_i_rebuild_indexes_and_update_stats_in_mysql_innodb.html
MySQL如何在InnoDB中重建索引并更新统计数据?
在MySQL中,索引是非常重要的。索引可以加速查询,并且还可以检查唯一性。但是,索引的优化是需要花费一些时间和精力的。在InnoDB引擎中,索引是以B-Tree结构组织的,也就是说,索引在存储的时候是分离存储的。
InnoDB引擎会自动维护索引和统计数据,但是在一些特殊情况下,需要手动重建索引和更新统计数据。下面是一些常见的情况:
阅读更多:MySQL 教程
1.数据库重建
当你在一个新的服务器上安装了MySQL,并且需要将原来的数据库转移到新服务器时,需要将数据还原到新服务器,并且需要重建索引和更新统计数据。
2.表结构变更
当你在一个已有的表上进行结构变更时,例如增加或删除列,你需要重建索引和更新统计数据来保证查询的性能和正确性。
3.长时间未使用
如果你有一些长时间未使用的表,不妨定期对其进行重建索引和更新统计数据。
现在,我们来看看如何重建索引和更新统计数据:
重建索引
在InnoDB中,你可以使用ALTER TABLE语句来重建索引。这里有几种方法可供选择:
1.使用ALTER TABLE语句
ALTER TABLE table_name ENGINE=InnoDB;
2.使用pt-online-schema-change工具
pt-online-schema-change是Percona Toolkit中的一个实用工具,可以在不影响应用程序的情况下进行表结构变更。
使用pt-online-schema-change可以避免重建索引引起的锁定表的操作。对于一些大型的表,pt-online-schema-change可以节省大量的时间。
3.使用mysqldump和mysql命令行实用程序
可以将表导出为SQL文件,然后重新导入,从而重建索引。
更新统计信息
在MySQL中,你可以使用ANALYZE TABLE语句或opt-in的InnoDB系统统计数据来更新索引统计数据。
使用ANALYZE TABLE语句
ANALYZE TABLE table_name;
使用OPTIMIZE TABLE语句
OPTIMIZE TABLE table_name;
可以在InnoDB中是重新创建表的副产品,它将重建表索引并更新统计数据。
总结
重建索引和更新统计信息是保证InnoDB引擎中索引性能和正确性的一种方法。在重建索引和更新统计信息之前,一定要充分备份你的数据库,以防万一。通过合适的方式和手段,时刻保持你的数据库健康和稳定。
[转帖]MySQL如何在InnoDB中重建索引并更新统计数据?的更多相关文章
- SQL Server重建索引与重组索引会更新统计信息吗?
在SQL Server中重建索引(Rebuild Index)与重组索引(Reorganize Index)会触发统计信息更新吗? 那么我们先来测试.验证一下: 我们以AdventureWorks20 ...
- MySQL(四)InnoDB中一棵B+树能存多少行数据
一.InnoDB一棵B+树可以存放多少行数据?(约2千万) 我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛.在计算机中磁盘存储数据最小单元是扇区,一个扇 ...
- mysql提取.sql备份文件中的单个表以及表数据
背景:随着业务模块的不断在增多,数据库mysql容量也是越来越大,做测试时,整个备份还原比较耗费时间,由于有时候仅仅需要单个表或者少数几个表,要想从整个备份文件中提取指定的表以及数据,需要以下方法. ...
- MySQL之LEFT JOIN中使用ON和WHRERE对表数据
背景 left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论.商城里一个货物有多少评论.一条评论有多少个赞等等.但是由于对join.on.where等关键字的不 ...
- mysql在建表语句中添加索引
普通索引创建 创建普通索引,即不添加 UNIQUE.FULLTEXT 等任何参数. [例]创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下: CREATE tabl ...
- pandas | 如何在DataFrame中通过索引高效获取数据?
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当 ...
- 「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?
背景 众所周知,Elasticsearch是⼀个实时的分布式搜索引擎,为⽤户提供搜索服务.当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固 ...
- 【mysql】关于innodb中MVCC的一些理解
一.MVCC简介 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代 ...
- 如何在Anaconda中把python环境更新更高版本
把Anaconda中的python从3.5.5更新到3.6版本,不想卸载重新安装.办法如下: 开始->Anaconda Promot 在Anaconda Promot中,输入: conda up ...
- MySQL 查询某个列中同样值的数量统计
数据如今是这种,我想确定出type列中的news和image....甚至以后有其它值,他们分别有多少个. SELECT type, count(1) AS counts FROM material G ...
随机推荐
- 字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠讲16国语言(Python3.10)
按照固有的思维方式,如果想要语音克隆首先得有克隆对象具体的语言语音样本,换句话说,克隆对象必须说过某一种语言的话才行,但现在,coqui-ai TTS V2.0版本做到了,真正的跨语种无需训练的语音克 ...
- Win10笔记本开启热点让手机上网
Win10开启热点让手机上网,笔记本电脑开启热点,笔记本电脑开启WiFi,手机连接笔记本电脑热点上网. 1.前提条件:笔记本电脑网线联网,笔记本电脑支持热点 2.胆子要大,不怕公司网管统计发现你的电脑 ...
- Terraform 的开源替代:OpenTofu 宣布 GA!
OpenTofu 社区于1月10日宣布 OpenTofu 项目 GA,这是 OpenTofu 的首个稳定版本(https://github.com/opentofu/opentofu/releases ...
- 云小课|基于华为云WAF的日志运维分析,构筑设备安全的城墙
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:云日志服务用于收集 ...
- 从相识到相惜:Redis与计算存储分离四部曲
摘要:协议兼容问题.性能问题.数据备份问题.数据容量问题--这些都是数据库在使用过程中必然会遇见的问题.就好比选择结婚对象,你需要去对比不同的方面,最后选出最好的.最合适的. 近期全国两会正在轰轰烈烈 ...
- Angular:都2021年了,你为啥还没用Angular
摘要:数据绑定是将应用程序UI或用户界面绑定到模型的机制.使用数据绑定,用户将能够使用浏览器来操纵网站上存在的元素. Web开发需要模型和视图之间的数据同步.这些模型基本上包含数据值,而视图则处理用户 ...
- 登录appuploader
转载:登录appuploader 常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录,弹出登录框 在登录框内输入apple开发者账号 如果没有app ...
- Walrus 入门教程:如何创建模板以沉淀可复用的团队最佳实践
模板是 Walrus 的核心功能之一,模板创建完成后用户可以重复使用,并在使用过程中逐渐沉淀研发和运维团队的最佳实践,进一步简化服务及资源的部署.用户可以使用 HCL 语言自定义创建模板,也可以一键复 ...
- Pytest -初识
Pytest Pytest是一个基于Python的测试框架,用于编写和执行测试代码. Pytest的优点 Pytest可以并行运行多个测试,这减少了测试套件的执行时间 Pytest有自己的方法来自动监 ...
- 【mongodb】pymongo使用
pymongo基本使用 import pymongo from bson.objectid import ObjectId # 连接方式1 client = pymongo.MongoClient(h ...