mysql - 优化数据库查询的使用

标签 mysql ruby-on-rails database optimization performance

执行单个数据库查询以找到页面所需的所有结果,然后使用 if/else 语句对其进行多次循环以提取要在每个部分中显示的内容,或者执行多个数据库是否更快?查询选择您需要的确切数据,然后分别遍历每个数据?

例如:

@completed = HostTask.find(:all, :include => [:task], :conditions =>["host_tasks.decommission_id = ? AND host_tasks.completed IS NOT NULL", params[:id]], :order => "tasks.position")
@incomplete = HostTask.find(:all, :include => [:task], :conditions =>["host_tasks.decommission_id = ? AND host_tasks.completed IS NULL", params[:id]], :order => "tasks.position")

然后循环显示每个。或者只是:

@tasks = HostTask.find(:all, :include => [:task], :conditions =>["host_tasks.decommission_id = ?", params[:id]], :order => "tasks.position")

循环遍历@tasks 两次并仅在@tasks.completed 为空时才显示然后不为空?

最佳答案

多次往返成本高昂,但选择超过所需数据的成本也很高。在大多数情况下,仅选择具有多个数据库查询的确切数据而不尝试使用复杂的异常业务逻辑是首选方式,但这取决于用例。我推荐缓存,缓存,缓存。您可以获得巨大的性能优势。

关于mysql - 优化数据库查询的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3919125/

相关文章:

mysql - Codeigniter 中的 mysql 错误表单验证

mysql - 如何根据mysql中的输入重命名表

android - android中的sqlite查询

php - 如何使用 table2 中的检查字段将数据插入 table1 (Codeigniter)

database - Google App Engine 上的无向图和遍历

PHP/MYSQL - 将多行插入一列,通过 phpmyadmin 工作但仅部分通过 myqli 准备语句?

mysql - 仅使用 MySQL 查询即可检索复杂数据(本周各天的总访问量)

ruby-on-rails - 如何修改 Rails 3 项目中的 gem 文件

ruby-on-rails - ruby rails : How can I get all sessions data from Redis on server side?

ruby-on-rails - 如何在 rails 6 应用程序中使用来自 Gem 的 js 文件