gpt4 book ai didi

mysql - 我们应该在下面的例子中使用 "LIMIT clause"吗?

转载 作者:可可西里 更新时间:2023-11-01 07:27:50 26 4
gpt4 key购买 nike


<strong>There is a structure:</strong>
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(11) unsigned NOT NULL DEFAULT '0',
`title` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

<strong>Query_1:</strong>
SELECT * FROM `categories` WHERE `id` = 1234
<strong>Query_2:</strong>
SELECT * FROM `categories` WHERE `id` = 1234 LIMIT 1

我只需要一行。由于我们应用WHERE id=1234(通过PRIMARY KEY查找)显然id=1234的行在整个表中只有一个。
MySQL找到该行后,使用Query_1时引擎是否继续搜索?
提前致谢。

最佳答案

看看这个 SQLFiddle:http://sqlfiddle.com/#!2/a8713/4尤其是查看执行计划

你看,MySQL 识别 PRIMARY 列上的谓词,因此添加或不添加 LIMIT 1 都没有关系。

PS:稍微多解释一下:看Execution Plan的rows列。那里的数字是列的数量,查询引擎认为,它必须检查。由于列内容是唯一的(因为它是主键),所以这是 1。将它与此进行比较:http://sqlfiddle.com/#!2/9868b/2相同的架构但没有主键。这里的 rows 表示 8。(执行计划在德语 MySQL 引用中有解释,http://dev.mysql.com/doc/refman/5.1/en/explain.html 英语的由于某种原因没有那么详细。)

关于mysql - 我们应该在下面的例子中使用 "LIMIT clause"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298316/

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