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

在MySQL中是否可以有索引视图?

胡俊弼
2023-03-14
问题内容

我从2005年起在MySQL论坛上找到了一个帖子,但是最近才发布。基于此,这是不可能的。但是在3-4年内会有很多变化。

我正在寻找的是一种在视图上建立索引但使被查看的表保持未建立索引的方法。索引会损害写入过程,并且该表的写入频率非常高(索引会减慢所有内容的爬取速度)。但是,缺少索引使我的查询非常缓慢。


问题答案:

我不认为MySQL支持您需要的物化视图,但无论如何在这种情况下它不会帮助您。无论索引是在视图上还是在基础表上,都需要在基础表的更新过程中的某个时刻对其进行写入和更新,因此仍然会导致写入速度问题。

最好的选择是创建定期更新的摘要表。



 类似资料:
  • 问题内容: 我记得在Oracle中可以基于函数进行索引,例如。 MySQL支持吗?如果没有,还有其他选择吗? 问题答案: 不,不是一般意义上的,我什至不认为5.6(首次编写此答案时的最新版本)具有此功能。值得注意的是,8.0.13及更高版本现在支持功能索引,使您无需下面所述的触发方法即可实现所需的功能。 有关更多详细信息,请参见https://dev.mysql.com/doc/refman/8.

  • 问题内容: 您需要显式创建索引,还是在定义主键时隐式创建索引?MyISAM和InnoDB的答案是否相同? 问题答案: 主键始终被索引。对于MyISAM和InnoDB,这是相同的,并且通常对所有支持索引的存储引擎都是如此。

  • 问题内容: 我们的MySql表有2500万行 以下是表中的列 以上我们在c_id,c_name,s_id,l_type,域列上具有正常索引 我打算在域,l_time,l_type列上添加复合索引。因此,现在我可以删除域上的单个索引了吗? 谢谢 问题答案: 复合索引的任何前缀也将单独用作索引。因此,如果您有一个复合索引,则相当于在和上都有索引。无需分别将这些索引分开,它们将是多余的并且浪费空间。 因

  • 我知道在elasticsearch中没有连接索引的选项,但我需要找到一种方法来解决这个问题: 我有两个索引,比如A,B IndexA的信息像field d1、field d2、field d3 IndexB有field d4、field d5、field d6 如果我将按查询字段5(在本例中为“test”)进行搜索,我希望树中的所有关系如下: 匹配IndexA中与“field2”(来自IndexA

  • 问题内容: 我必须转换一个传递查询的MSSQL存储过程: 这不起作用。我敢肯定,而不是MySQL的命令,但也不管用。 有谁知道是否有可能为MySQL提供类似JavaScript的功能? 问题答案: EXECUTE是MySQL中的有效命令。MySQL参考手册

  • 问题内容: 是否可以在增强的for循环中找到当前索引?如果可以,怎么办? 我知道我们可以用一个额外的变量来检查它。但是还有其他方法。 问题答案: 是否可以在增强的for循环中找到当前索引? 不。如果需要索引,建议您使用普通的for循环。 但是,在这种情况下,您似乎实际上并不需要索引。除非您要处理某种非常奇怪的列表类型,否则可以使用和使用方法,如下所示: