我正在开发一个网络应用程序,它涉及在各种列表中创建餐馆列表,比如"Joe's‘s必须访问的地方“。现在,对于每一家餐厅和列表,我在网站上显示了计算
计算Restaurant
目前,我在PHP中使用MySQL语句,但计划切换到MySQL视图,并在PHP中执行一个简单的select语句.
我的问题是,使用视图比用PHP编写sql查询有什么优缺点?。
发布于 2010-12-13 08:29:50
使用视图可以添加一个级别的抽象:您以后可能会更改表的结构,并且不必更改显示列表信息的代码,因为您仍然在查询视图(视图定义可能会改变)。
主要的区别是每次插入后都会更新视图,这样,每次查询视图时,数据都是“就绪”的,而使用自定义查询时,每次都会让MySQL计算所有内容(当然还有一些缓存)。
底线是,如果您的列表比查看的列表更新得少,那么在使用视图时,您将看到一些性能上的提高。
发布于 2010-12-13 08:31:45
我的完整答案将取决于以下几点(从应用程序的角度来看):
假设您有几个预定义的列表要显示:
使用视图具有以下几个优点:
解析。
我不确定:我不认为mysql像Tomasz建议的那样缓存视图--我不认为视图包含“已经准备好的数据”。
一个缺点是,创建列表所涉及的逻辑进入数据库,而不是驻留在PHP代码中--这一点我非常反感。在我的世界里,数据库是用于数据的,代码是用于逻辑的。
干杯
发布于 2012-08-03 03:48:24
最初的问题是关于正反两方面的,但到目前为止,在答案中并没有看到太多的缺点。
视图的一个缺点不是它们可以给您运行简单查询带来的虚假安慰吗?例如,从myview中选择username,其中id='1‘看起来很简单,但是如果"myview“是一个非常复杂的SELECT .也许甚至建立在其他观点之上?最后,您会有一个简单的查询,而在后台,这个查询所需的工作量要比从头开始编写查询所花费的工作量多得多。
我一直在尝试各种观点,尽管有好处,但还没有完全售出。我想听听其他人对“视图的缺点”( of Views )的看法,而不仅仅是关于视图为何如此伟大的党派观点。可能还是会做出改变,但想了解更多关于性能的知识。
https://stackoverflow.com/questions/4426919
复制相似问题