当前位置: 首页 > 面试题库 >

如何在MySQL innoDB中重建索引并更新统计信息?

何峰
2023-03-14
问题内容

我在MS SQL Server方面经验丰富,可以更新统计信息并重建索引。我在MySQL
innoDB中找不到这样的选项,有这样的选项吗?如果没有,MySQL数据库如何创建执行计划?MySQL是否通过每个UPDATE和INSERT更新索引和统计信息?


问题答案:

这是用

ANALYZE TABLE table_name;

在此处了解更多信息。

ANALYZE
TABLE分析并存储表的密钥分布。在分析过程中,该表被MyISAM,BDB和InnoDB的读锁所锁定。该语句适用于MyISAM,BDB,InnoDB和NDB表。



 类似资料:
  • 我想更新Sybase ASE 15.7中所有表的统计数据。我的问题是,是否有一种自动方式来更新,尤其是在没有运行进程的情况下,尤其是在夜间? 谢谢, 阿里

  • 问题内容: 删除和重新创建索引是否与使用dbms.gather_index_stats具有相同的效果?(是否具有与重建/更新索引相同的效果) 还是这两个完全不同的东西不应该相互比较? 问题答案: 区别在于,收集统计信息会刷新有关当前索引的元数据,而删除和重新创建索引则是删除和重新创建索引。 也许通过一个实例可以很容易地理解它们之间的区别。因此,让我们创建一个表和一个索引: 由于11g,Oracle

  • 问题内容: 我已经设置了索引。我不时向其推送新文档。 我只想在所有文档都编入索引后回答我的查询。我怎样才能做到这一点? 问题答案: 在ES 2中,您可以在为新文档建立索引后立即调用API,但是不建议在生产环境中使用它,因为这可能会降低群集的性能。 在ES5中,您将能够使用发送索引查询,并且ES仅在准备好搜索新文档时才响应。

  • 这里一个非常常见的问题是如何执行upsert,MySQL称之为,标准支持将其作为操作的一部分。 鉴于PostgreSQL不直接支持它(在PG9.5之前),您如何做到这一点?考虑以下几点: 现在假设您要“upsert”元组,,那么新的表内容将是: 在Insert中,关于PostgreSQL中的重复更新?详细讨论了这个主题,但这是关于MySQL语法的替代方法,随着时间的推移,它增加了一些无关的细节。我

  • 问题内容: 我有以下数组,我想对其重新索引,以使键反向(理想情况下从1开始): 当前数组( 编辑: 该数组实际上看起来像这样): 应该如何: 问题答案: 如果要重新索引从零开始,只需执行以下操作: 如果您需要从头开始,请使用以下命令: 以下是所用功能的手册页:

  • 这里一个非常常见的问题是如何执行upsert,MySQL称之为,标准支持将其作为操作的一部分。 鉴于PostgreSQL不直接支持它(在PG9.5之前),您如何做到这一点?考虑以下几点: 现在假设您要“upsert”元组,,那么新的表内容将是: 这就是人们在讨论时所谈论的。至关重要的是,在同一表上存在多个事务的情况下,任何方法都必须是安全的--要么使用显式锁定,要么以其他方式防止产生的竞争条件。