【发布时间】:2021-03-22 16:00:34
【问题描述】:
我编写了一些脚本来获取与 ID 列表匹配的所有记录。它工作得很好:
select * from invoices where iOpen=1; // 收集未结发票
公司在任何时候都可以有 1 或 20 多张未结发票。使用php,遍历结果收集一次companyID,然后使用companyID列表抓取其他企业数据:
select ct.*,bs.* from clientTable ct, billSettings bs where ct.cID=bs.cID AND ct.cID IN (companyIDs);
当 LIST(companyIDs)的长度为 5 到 10 个项目时,它没有问题....但是当该列表增长到 100 个 ID 或 500 个 ID 或更多时会发生什么?从技术上讲,它仍然只是对数据库的一次调用,而不是迭代一个会击中数据库 100 或 500 次的循环。但是单次调用本身在什么时候会变得低效呢?
是否有其他方法可以更有效地获取相同的数据?
【问题讨论】:
-
你是如何获得 id 列表的?
-
@ysth - 我确定你的问题是相关的,但是我附加了我的问题。