首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >改进长mysql查询

改进长mysql查询
EN

Stack Overflow用户
提问于 2010-04-16 12:49:37
回答 2查看 169关注 0票数 1

我有一个这样的php mysql查询

代码语言:javascript
运行
复制
$query = <<<EOS
    SELECT * FROM articles 
      FORCE INDEX (articleindex) 
      WHERE category='$thiscat' AND did>'$thisdid' 
        AND mid!='$thismid' AND status='1' 
        AND group='$thisgroup' AND pid>'$thispid' 
      LIMIT 10
EOS;

作为优化,我已经对文章索引中的所有参数进行了索引,并且我使用强制索引来强制mysql使用索引,据说是为了加快处理速度。

但是这个查询似乎仍然很慢,而且它会导致阻塞,并达到mysql的最大连接限制。

我们如何改进这种长时间运行的查询?

EN

回答 2

Stack Overflow用户

发布于 2010-04-16 12:54:34

强制索引索引很可能会对您造成伤害,因为您实际上并没有在where子句中引用它。索引的存在是为了加快搜索速度,使您可以快速找到具有特定值的行。如果没有关于您的表和其中包含的数据的更多详细信息,我无法给出更准确的答案,但您绝对应该从删除force索引开始。如果仍然很慢,也许你可以发布EXPLAIN (your query)的结果。

票数 1
EN

Stack Overflow用户

发布于 2010-11-28 09:35:04

希望您以前已经听说过,但是当有人发送请求时,您会怎么做

代码语言:javascript
运行
复制
category="';drop table articles;"

...?请使用带有占位符的准备好的语句,这些语句将自动清理您的值,以防止他人冲刷您的数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2650682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档