我想问一下我们是否在控制器模型中编写查询。有什么作用吗?例如加载数据变慢还是其他?
我要使用的数据超过1000。
如果没有,那是什么使Web上的数据加载变慢。
像ajax请求一样,需要4-5秒,有些则要持续1分钟
答案 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}
(我称之为小魔术)来检查应用程序如何按照我实现的任何逻辑工作,您可以尝试一下。
我认为这会有所帮助。