我有一个列表,想通过 ID 选择行。这是否会影响查询性能以及更好的替代方案。
最佳答案
如果您有一个列表并执行以下类型的查询:
select * from your_table where id = 123
select * from your_table where id = 345
select * from your_table where id = 679
对于列表中的每一项,您最终都会执行大量查询 - 正如您可以猜到的那样,这对性能来说并不是很好。
一个想法可能是将这些查询分组,如下所示:
select * from your_table where id in (123, 345, 679)
减少查询:这里只有一个,而不是三个。
当然,这意味着您的代码需要更多逻辑,以从数据库获取结果;但在性能方面,它通常会有帮助。
但请注意:您不应该在单个 in()
子句中使用太多 id - 这意味着您最终可能会执行多个查询 - 每个查询都处理多个 id。
关于mysql - 如何根据 ID 选择 MySQL 行?对性能有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687558/