我是一个报告数量更多的应用程序。我为每个报告做的是我创建一个mysql视图和一个mysql存储过程。从前端php我用where子句调用存储过程,基于这个where子句我从特定视图中获取结果。最近我发现它导致了性能问题。所以我避免了视图,并在存储过程中编写了相同的代码并提高了性能。所以从那个poit我很困惑,当我应该使用存储过程和我应该使用视图时的理想情况。
上面我的场景是否真的导致了性能问题,或者我的问题是否存在问题?
答案 0 :(得分:1)
mysql中的视图主要是为了提高可读性。它们使您能够将多个表上可能复杂的查询隐藏到看似单个表的内容中。
我怀疑最可能的原因不是自己使用视图(虽然不确定它们会以任何方式帮助您,而存储过程可能会更有效),而是您使用的视图优化不佳(可能忽略了键)。