Php 在第一行之后停止MySQL查询
我有一段MySQL代码,可以搜索相当长的MySQL数据库。当多次执行时,这需要很长时间,尽管我需要从代码中检查是否存在至少一个条目。在找到一行后,是否可以指示mysql代码停止搜索?谢谢。请在查询结束时尝试Php 在第一行之后停止MySQL查询,php,mysql,optimization,Php,Mysql,Optimization,我有一段MySQL代码,可以搜索相当长的MySQL数据库。当多次执行时,这需要很长时间,尽管我需要从代码中检查是否存在至少一个条目。在找到一行后,是否可以指示mysql代码停止搜索?谢谢。请在查询结束时尝试限制1。在查询结束时尝试限制1。如果您仅尝试搜索一项内容,则必须有一些主键与之关联。因此,在查询中,您可以在where子句中包含somethere,它只会带来一个结果。像这样的 select * from students where id='123' 由于主键是唯一的键,因此不会
限制1
。在查询结束时尝试限制1
。如果您仅尝试搜索一项内容,则必须有一些主键与之关联。因此,在查询中,您可以在where子句中包含somethere,它只会带来一个结果。像这样的
select * from students where id='123'
由于主键是唯一的键,因此不会有任何重复,只会执行一次搜索。如果您试图只搜索一件事,则必须有一些主键与之关联。因此,在查询中,您可以在where子句中包含somethere,它只会带来一个结果。像这样的
select * from students where id='123'
SELECT * FROM tablename LIMIT 1 OFFSET 0
因为主键是唯一的键,所以不会有任何重复,只会进行一次搜索
SELECT * FROM tablename LIMIT 1 OFFSET 0
- “限制”将设置您想要返回的最大项目数
- 偏移量让您声明开始查询的起点
- “限制”将设置您想要返回的最大项目数
- 偏移量让您声明开始查询的起点
将
LIMIT 1
添加到查询中。LIMIT 1
有什么问题?不会使搜索变短。将LIMIT 1
添加到查询中。LIMIT 1
有什么问题?不会使搜索变短。这无论如何都不会使搜索变短,实际上有时会使搜索变长。限制1只是让代码返回1行,而不是只搜索一行。上面说“一旦MySQL向客户端发送了所需数量的行,它就会中止查询”不,它仍然需要找到行-它只是不需要找到所有行。我只是再次检查,没有限制1,我的查询返回33000行,限制为1,显然是1,但不幸的是,两者都需要相同的时间(大约1.2秒),您不应该基于phpMyAdmin工具测试MySQL性能。在这两种情况下,花费相同时间的原因很可能只有95%的时间是由phpMyAdmin的PHP代码消耗的,而最后5%的时间是由MySQL消耗的,因此没有区别。尝试使用MySQL Workbench或命令行工具来真正测试查询的执行时间:)这并不会缩短搜索时间,实际上有时会延长搜索时间。限制1只是让代码返回1行,而不是只搜索一行。上面说“一旦MySQL向客户端发送了所需数量的行,它就会中止查询”不,它仍然需要找到行-它只是不需要找到所有行。我只是再次检查,没有限制1,我的查询返回33000行,限制为1,显然是1,但不幸的是,两者都需要相同的时间(大约1.2秒),您不应该基于phpMyAdmin工具测试MySQL性能。在这两种情况下,花费相同时间的原因很可能只有95%的时间是由phpMyAdmin的PHP代码消耗的,而最后5%的时间是由MySQL消耗的,因此没有区别。尝试MySQL Workbench或命令行工具来真正测试查询的执行时间:)