gpt4 book ai didi

mysql - 最小化数据库查询

转载 作者:行者123 更新时间:2023-11-29 07:24:36 25 4
gpt4 key购买 nike

我有一个包含大约 30k 行数据的表,并且有多个表关联。问题是大约有 18 列,每列需要 1 个数据库查询。

这是我正在做的事情的示例

if col_num == 0
tmp_string_text = finding_phase
elsif col_num == 1
tmp_string_text = ""
elsif col_num == 2
tmp_string_text = ""
elsif col_num == 3
tmp_string_text = finding.vuln_finding.severity
elsif col_num == 4
tmp_string_text = finding_node_ip
elsif col_num == 5
tmp_string_text = finding.node.host_name
elsif col_num == 6
tmp_string_text = finding.node.dns_name
elsif col_num == 7
tmp_string_text = finding.port
elsif col_num == 8
tmp_string_text = finding.pentest_finding.name
elsif col_num == 9
tmp_string_text = finding.vuln_finding.name
elsif col_num == 10
tmp_string_text = finding.vuln_finding.description
elsif col_num == 11
tmp_string_text = finding.vuln_finding.solution
elsif col_num == 12
tmp_string_text = finding.additional_output
elsif col_num == 13
tmp_string_text = finding.cve
elsif col_num == 14
tmp_string_text = finding.node.os
elsif col_num == 15
tmp_string_text = finding.node.device_type
elsif col_num == 16
tmp_string_text = finding.node.scan_time
end

因此,每 1 行将有 15 个数据库查询。有什么办法可以提高效率吗?当我有 30k 行时,这需要很长时间。

最佳答案

我建议使用 includes 方法一次获取所有列,然后迭代内存中的结果。

Model.includes(:column1, :column2, column3: [:subcolumn1, :subcolumn2])

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com