Mysql VIEWS vs.PHP query

2022-08-30 20:02:18

我正在开发一个Web应用程序,该应用程序涉及在各种列表中创建餐厅列表,例如“Joe's必须访问的地方”。现在,对于每个餐厅和列表,我在网站上都有显示,该显示可以计算

  • 计算餐厅的受欢迎程度
  • 列表的受欢迎程度
  • 餐厅所在的列表数

目前,我正在PHP中使用MySQL语句,但计划切换到MySQL VIEWS并在PHP中执行简单的选择语句...

我的问题是,与在PHP中编写SQL查询相比,使用VIEWS的优点/缺点是什么?


答案 1

使用视图可以增加一个抽象级别:您以后可以更改表的结构,并且不必更改显示有关列表的信息的代码,因为您仍将查询视图(但是视图定义可能会更改)。

主要区别在于视图在每次插入后都会更新,因此每当您查询视图时,数据都是“就绪”的,而使用自定义查询将使MySQL每次都计算所有内容(当然,有一些缓存)。

最重要的是,如果列表的更新速度不如查看列表的更新速度快,那么使用视图的性能将有所提高。


答案 2

我的完整答案将取决于几件事(从您的应用程序的角度来看):

  • 您是否计划允许用户创建和共享此类列表?
  • 用户可以创建任何类型的列表,还是仅通过将值插入到现有查询模板中来创建?

假设您有几个预定义的列表要显示:

使用视图具有以下几个优点:

  • 你的代码会更干净
  • 生成视图的查询不必每次都由 mysql 解析。

我不确定这一点:我不认为mysql缓存视图,如Tomasz所建议的那样 - 我不认为视图包含“已经准备的数据”。

一个缺点是,创建列表所涉及的逻辑进入数据库而不是存在于PHP代码中 - 我非常反对这一点。在我的世界里,数据库是用于数据的,代码是用于逻辑的。

干杯


推荐