在控制器模型中编写查询

时间:2019-06-27 04:36:10

标签: codeigniter model-view-controller

我想问一下我们是否在控制器模型中编写查询。有什么作用吗?例如加载数据变慢还是其他?

我要使用的数据超过1000。

如果没有,那是什么使Web上的数据加载变慢。

像ajax请求一样,需要4-5秒,有些则要持续1分钟

2 个答案:

答案 0 :(得分:0)

在控制器或模型中运行查询之间几乎没有区别,除了模型增加的少量(可忽略)开销(如果是我,我不会担心)。如果要遵循MVC设计模式,则通常在模型中而不是在控制器中完成数据库查询。但这在CodeIgniter中更像是一种样式问题,因为它没有像在其他使用ORM的框架中那样严格执行。

话虽如此,如果您执行时间较长,建议不要一次获取所有数据,而应使用更多加载,分页,数据表或类似系统来减少一次选择的记录数量,根据您可接受的执行/响应时间,一些更易于管理的事情。

您可以通过设置基准点来测试哪种情况最适合您:https://www.codeigniter.com/user_guide/libraries/benchmark.html

答案 1 :(得分:0)

我已经与CodeIgniter一起工作了几年,我意识到要正确地在模型中进行查询。

MVC的思想是关于代码分离,其中M(Model)处理或完成大部分与数据库有关的应用程序的繁重工作,V(View)进行演示,这是系统用户可以进行交互的地方应用程序和C(Controller)充当模型和视图之间的信使或中介。

这将使控制器从许多进程中释放出来,从而不必从数据库中查询,也不必尝试上传大量数据,然后再将其显示在视图中。

我总是使用{elapsed_time}{memory_usage}(我称之为小魔术)来检查应用程序如何按照我实现的任何逻辑工作,您可以尝试一下。

我认为这会有所帮助。