MySQL什么时候更新索引

2024-01-07

更新/插入后索引到底什么时候更新?是在更新/插入查询返回之前,是在查询返回之后的某个时间,还是在执行使用索引的查询时。


索引更新有两个方面。

第一部分是在索引中插入/更新/删除条目。一旦记录发生更改,索引就会更新,并且此过程会阻塞查询直到完成。

这允许根据索引列上的条件更快地检索记录,这是索引最容易理解的用途。

第二部分是更新索引的统计数据。这允许优化器确定对于给定的查询是否值得使用索引。想象一下这样的查询SELECT * FROM users WHERE disabled = 0。假设大多数用户实际上都是活跃的。如果索引统计信息是最新的,优化器将意识到表中的大多数记录将由查询返回,几乎整个表都需要扫描。它可能会决定不使用索引并立即扫描表。

此更新不会自动进行除非在非常特殊的情况下 http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_stats_on_metadata。这些统计数据应定期手动更新ANALYZE TABLE [table_name] http://dev.mysql.com/doc/refman/5.6/en/analyze-table.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL什么时候更新索引 的相关文章

  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 如何在动态查询中将行值连接到列名

    我正在开发一个允许配置问题和答案的应用程序 目前最多可以有 20 个答案 但也可能更少 我的结构如下 问题 ID FormId QuestionText AnswerField 1 1 Name Answer01 2 1 Address A
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B
  • 通过将行旋转为动态数量的列来在 MySQL 中创建摘要视图

    我在 MySQL 中有一个表 其中包含以下字段 id company name year state 同一客户和年份有多行 以下是数据示例 id company name year state 1 companyA 2008 1 2 com
  • T-sql、刻度、时间戳

    是否有可能在 t sql 中获得像 DateTime Ticks 这样的 C 内容 感谢帮助 您不太可能从 SQL 中获得与 DateTime Ticks 相同的精度 因为 SQL 不能以那么高的精度表达时间 SQL Server 只存储大
  • 使用包含空值列的 WHERE 子句的更新语句

    我正在使用另一个表中的数据更新一个表上的列 这WHERE子句基于多个列 并且某些列为空 根据我的想法 这个空值是什么throwing off你的标准UPDATE TABLE SET X Y WHERE A B陈述 See 这个 SQL 小提
  • 不是 select 中带有 MAX 的单组组函数

    Select sg gameno Max sg Year sg end sg hostcity country olympic name from Summergames s Country co where s country isoco
  • 什么是粗网格搜索和细网格搜索?

    我正在读这个答案 用于 2D 碰撞检测的四叉树的高效 且解释良好 实现 https stackoverflow com questions 41946007 efficient and well explained implementati
  • 如何在 SQLite 中获取最后插入的 ID?

    SQLite 中是否有任何内置函数可以获取最后插入的行 ID 例如 在 mysql 中我们有LAST INSERT ID 这种功能 对于 sqlite 任何可用于执行相同过程的函数 请帮我 Thanks SQLite 这可以使用SQLite
  • 使用 Powershell SQL 将数据提取到 Excel

    我想使用 powershell 将数据从 SQL Server 提取到新的 excel 文件 对于小型数据集 我的代码可以工作 但某些表的行数超过 100 000 行 这将需要很长时间 我不在 SQl 服务器中使用该实用程序的原因是因为我想
  • SQL 插入失败 - 违反主键约束

    我在 SQL Insert 语句中看到一个非常奇怪的问题 我有一个简单的表 带有一个 ID 和 2 个日期时间 请参阅下面的创建脚本 CREATE TABLE dbo DATA POPULATION LOGS ID int IDENTITY
  • 如何在 MacOS 上卸载 Mysql Shell

    我错误地安装了 MySql Shellhttps dev mysql com doc mysql shell 8 0 en https dev mysql com doc mysql shell 8 0 en 在我的 MacBook Pro
  • SQL Server递归查询显示父级路径

    我正在使用 SQL Server 语句并有一张表 例如 item value parentItem 1 2test 2 2 3test 3 3 4test 4 5 1test 1 6 3test 3 7 2test 2 我想使用 SQL S
  • 部署 dacpac 所需的权限

    我正在尝试使用 sqlpackage exe 在租户上部署 dacpac 目前 我正在向将部署此功能的帐户授予 SysAdmin 或 db owner 权限 并且它工作正常 但在生产中 如果目标租户数据库属于其他应用程序 我可能无法获得这些
  • 1:1 关系中的双向外键约束

    我正在使用 MySQL 数据库 在我的关系数据模型中 我有两个相互 1 1 关联的实体 在我的架构中 通过将 FK 字段放入两个表之一中来建立 1 1 关系 该字段与另一个表的 PK 相关 两个表都有 PK 并且都是自动递增的 BIGINT
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • MySQL 和 MariaDB 数据库有什么区别?

    我已经使用 XAMPP 很长时间了 很惊讶 XAMPP 已经从 MySQL 切换到了 MariaDB https www apachefriends org index html https www apachefriends org in
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 计算树中值的总和(递归查询)

    我在表员工 id name parentid 中有树结构 并且该表可以嵌套 employees 与另一个具有列 id employeeid quantity 的 Sales 表是一对多关系 每个员工都有销售数量 我想计算每个员工以及儿童员工

随机推荐

  • 如何使 QLineEdit 在 Windows 中不可编辑

    我正在使用 Qt 5 2 我想做一个QLineEdit不可编辑 问题是 它看起来并不像这样 使用时setReadOnly true 它保持白色背景 看起来仍然可以编辑 如果我禁用它 它就会变成灰色 文本也会变成浅灰色 问题是 在禁用状态下
  • 如何在 Internet Explorer 中触发 script.onerror?

    The MSDN 上的 onerror 页面 http msdn microsoft com en us library cc197053 28VS 85 29 aspx指出 onerror 处理程序可以附加到脚本元素 并且它 在对象加载期
  • ggplot 中的直方图不是从 X 轴上的零开始[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 所以 这是第一次使用 ggplot 制作直方图 我看到的是 对于我的数据 导出的直方图如下所示 我不喜欢的是 第一个 bin 不包含零
  • 在 Pandas 中解析大型 CSV 文件的最快方法

    我正在使用 pandas 来分析大型 CSV 数据文件 它们的大小约为 100 兆 每次从 csv 加载需要几秒钟 然后需要更多时间来转换日期 我尝试加载文件 将日期从字符串转换为日期时间 然后将它们重新保存为 pickle 文件 但加载这
  • python中一个很好的持久同步队列

    我不会立即关心 fifo 或 filo 选项 但将来可能会很好 我正在寻找一种快速简单的方法来在磁盘上存储 最多一千兆数据或数千万个条目 可以由多个进程获取和放置 这些条目只是简单的 40 字节字符串 而不是 python 对象 并不真正需
  • VSCode 任务中的预定义变量替换用户输入

    看着VSCode 变量替换的文档 https code visualstudio com docs editor variables reference 我期待以下内容tasks json使用时在选择列表中执行变量替换chooseDirec
  • 从 NSString 中提取 2 个由特殊字符分隔的字符串

    我有一个像 你好 这是我 这样的 NSString 我想搜索 并将 前后的文本放在两个单独的字符串中 有人知道如何做到最好吗 问候麦克斯 NSArray subStrings myString componentsSeparatedBySt
  • 克服通过数据库链接批量插入的限制

    似乎有一个实施限制 禁止使用forall insert在 Oracle 上 当通过数据库链接使用时 这是一个简单的例子来演示 connect schema password db1 create table tmp ben test a n
  • 使用 Groovy 将 bean 序列化和反序列化为 json

    我读过关于 json 和 groovy 的新闻http www infoq com news 2014 04 groovy 2 3 json http www infoq com news 2014 04 groovy 2 3 json 所
  • 显式获取标签后,git 标签似乎不可用

    If I run git fetch force origin refs tags release 2017 12 22T15 28 47 05 00 它输出 From github com myname myrepo tag releas
  • Grid View 运行时如何更改列号?

    我正在尝试更改 gridView 列号 我打电话setNumColumn and invalidateViews 更新视图 然而 网格的单元格宽度不会动态改变 我设置了stretchMode columnWidth 但没有成功 问题解决了
  • mongoose.connect() 中的 useNewURLParser 和 useCreateIndex 是做什么的?

    我目前是 MongoDB 和 NodeJS 的新手 我想知道选项 useNewURLParser 和 useCreateIndex 的作用 const mongoose require mongoose mongoose connect m
  • 如何关闭 WPF Toolkit 图表中的动画

    有没有办法直接关闭Xaml中的动画 动画真的很慢 因为我的图表有很多点 我已经下载了最新的源代码http wpf codeplex com SourceControl list changesets http wpf codeplex co
  • 如何更新已创建的 Wi-Fi 配置(或“UID XXX 无权更新 [Wi-Fi] 配置错误”)?

    我正在开发一个管理 Wi Fi 连接的应用程序 我的场景如下 假设整个大楼都有一个名为 testing tls 的 Wi Fi 网络 我的应用程序应该能够仅连接到选定的接入点 基于 BSSID 或 MAC ID 我们用TLS 认证验证用户的
  • 用户名、密码、加盐、加密、哈希 - 这一切是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP 密码的安全哈希和盐 https stackoverflow com questions 401656 secure hash and salt for php passwords 我在 sta
  • Inno安装程序文件复制失败

    我正在开发一个安装程序 需要在安装之前创建目录的备份 我实现的方法纯粹是将所有文件从当前目录复制到新目录 然后我可以随意覆盖旧目录中的文件 我的安装程序 但是 我收到一条提示file copy failed 但我就是不明白为什么它不起作用
  • 如何更改 Web UI 中的工作/阶段描述?

    当我在 Apache Spark 上运行作业时 Web UI 会显示与此类似的视图 虽然这对于我作为开发人员查看事物的位置非常有用 但我认为阶段描述中的行号对于我的支持团队来说不太有用 为了使他们的工作更轻松 我希望能够为我工作的每个阶段以
  • C 语言中最快的抖动/半色调库

    我正在开发一个自定义瘦客户端服务器 为其客户端提供渲染的网页 服务器运行在多核 Linux 机器上 Webkit 提供 html 渲染引擎 唯一的问题是客户端显示仅限于 4 位 16 色 灰度调色板 我目前正在使用 LibGraphicsM
  • 在运行时为弹出视图锚点创建按钮

    这可能是不可能的 但我希望有人知道如何做到这一点 我有一个应用程序仅从 iPhone 移植到 Universal 在 iPhone 上 我使用的是选项卡式应用程序 我使用三个选项卡来显示正常数据 我有第四个选项卡 仅在满足某些条件时才显示
  • MySQL什么时候更新索引

    更新 插入后索引到底什么时候更新 是在更新 插入查询返回之前 是在查询返回之后的某个时间 还是在执行使用索引的查询时 索引更新有两个方面 第一部分是在索引中插入 更新 删除条目 一旦记录发生更改 索引就会更新 并且此过程会阻塞查询直到完成