mysql - 如何根据 ID 选择 MySQL 行?对性能有影响吗?

标签 mysql sql database

我有一个列表,想通过 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/

相关文章:

c# - MySqlDataReader GetBytes 缓冲区问题...

php - 尝试使用prepare和bindParam将用户数据插入SQL表

java - 将记录从数据库转储到 CSV 格式的文件

android - 在没有客户端的情况下测试 http post?

database - eclipse 月神 : Tool to Create new MySQL database

php - 为没有 PHP 的数据库生成 PHP 密码

php - 在一页中动态加载模态对话框

mysql - 来自 .CSV 的 'LOAD DATA INFILE' 警告 - 整数和日期

php - when in 从句与 mysql pdo

database - Neo4j 数据库的实际大小是多少?