Mysql InnoDB 视图变得缓慢并且不使用 Where 子句

Posted

技术标签:

【中文标题】Mysql InnoDB 视图变得缓慢并且不使用 Where 子句【英文标题】:Mysql InnoDB views are becoming slow and Not Using Where Clause 【发布时间】:2018-11-06 13:25:54 【问题描述】:

我们的 500K 行视图变得很糟糕,因为它们无法在基础表上使用索引。 View 上的 where 子句对视图创建没有影响。在 Sql server 中应用 mysql Where 子句之前创建视图是真的吗? 我们有没有办法使用 Where 子句和 Join 来加快我们的视图查询?

MySQL 视图存在的一个问题是 MySQL 不会将谓词从外部查询“推”到视图查询中。 here

select * from reportview_23 where id = 100;

【问题讨论】:

您的问题是什么?您似乎了解视图在 MySQL 中的工作原理。 @GordonLinoff 嘿,我更新了。 。 .我不相信 MySQL,尽管最新版本可能改进了视图优化。 【参考方案1】:

您可能会在视图中遇到一些查询限制,这会阻止视图合并预测值...例如使用 LIMIT、DISTINCT、子查询列...

【讨论】:

你能提供一些代码吗?

以上是关于Mysql InnoDB 视图变得缓慢并且不使用 Where 子句的主要内容,如果未能解决你的问题,请参考以下文章

MySQL单独存放表空间Innodb_file_per_table

MySQL——索引视图事务,存储引擎MyLSAM和InnoDB(实战篇!)

在 UIPageViewController 中实例化页面后非常不稳定、缓慢的翻页

使用 ADF 和 Oracle SQL 执行缓慢的视图

mysql优化随笔

在 MS SQL Server 中,将行插入表变量突然变得非常缓慢