MySQL、fetchone 和 LIMIT
MySQL, fetchone and LIMIT
这是 python 代码的示例:
query = "SELECT * FROM users WHERE id = 17"
cursor.execute(query)
row = cursor.fetchone()
在这个例子中,查询意味着最多 return 一行;但有时我想使用相同的代码从多行结果中获取单行,例如:
query = "SELECT * FROM users WHERE name LIKE 'foo%'"
cursor.execute(query)
row = cursor.fetchone()
在性能方面,显式写成LIMIT 1
更好吗?
不是,LIMIT子句是在Result集上SELECT之后执行的。如果你有很多 id = 17 的行,如果你不使用 LIMIT,你必须从服务器传输更多一点到客户端。
这是 python 代码的示例:
query = "SELECT * FROM users WHERE id = 17"
cursor.execute(query)
row = cursor.fetchone()
在这个例子中,查询意味着最多 return 一行;但有时我想使用相同的代码从多行结果中获取单行,例如:
query = "SELECT * FROM users WHERE name LIKE 'foo%'"
cursor.execute(query)
row = cursor.fetchone()
在性能方面,显式写成LIMIT 1
更好吗?
不是,LIMIT子句是在Result集上SELECT之后执行的。如果你有很多 id = 17 的行,如果你不使用 LIMIT,你必须从服务器传输更多一点到客户端。