当前位置: 首页 > 编程笔记 >

php+mysql查询优化简单实例

西门骁
2023-03-14
本文向大家介绍php+mysql查询优化简单实例,包括了php+mysql查询优化简单实例的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了php+mysql查询优化的方法。分享给大家供大家参考。具体分析如下:

PHP+Mysql是一个最经常使用的黄金搭档,它们俩配合使用,能够发挥出最佳性能,当然,如果配合Apache使用,就更加Perfect了.

因此,需要做好对mysql的查询优化,下面通过一个简单的例子,展现不同的SQL语句对于查询速度的影响.

存在这样的一张表test,它有一个自增的id作为主索引,现在要查询id号处于某一个范围内的记录,可以使用如下SQL语句:

SELECT * 

FROM `test` 

order by id asc 

limit 208888,50

这条SQL语句的意思是从id号为208888的记录开始向后取50条记录,在一个30万条记录的数据库中测试,在主索引都已经建立好的情况下,执行这条语句的时间为40~50秒,那么有没有更快SQL语句来执行呢?显然是有的,看看下面这条SQL语句:
SELECT * 

FROM `test` 

WHERE id 

BETWEEN 208838 

AND 208888

这条语句使用了一个条件进行过滤,在实际中测试的执行时间约为0.06秒.

究其原因,是因为虽然id属性上已经有索引了,但是排序仍然是一个非常高代价的操作,要慎用,而第二个语句,就可以让MySql充分利用数据库中已经建立好的B+树索引,所以查找起来速度相当快,是原来的几百倍.

由此可见,网站开发者在使用SQL语句的时候,一定要小心谨慎,因为一个疏忽大意的SQL语句,可能使得你的网站访问速度急剧下降,后台数据库面临巨大压力,并且很快陷入无法打开页面的窘境.

希望本文所述对大家的php+mysql程序设计有所帮助。

 类似资料:
  • 本文向大家介绍对MySQL子查询的简单改写优化,包括了对MySQL子查询的简单改写优化的使用技巧和注意事项,需要的朋友参考一下 使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动表执行,然后在把该经验移植到mysql数据库上,但是不幸的是,mysql在子查询的处理上有可能会让你大失所望,在我们的生产系统上就由于碰到了这个问

  • 问题内容: 这就是整个查询… 如果… 和… 有明显的理由吗? 正在服用? 扩展说明 问题答案: 您可以始终使用EXPLAIN或EXPLAIN EXTENDED 来查看MySql对查询所做的操作 您也可以用稍微不同的方式编写查询,是否尝试过以下方法? 看看效果如何会很有趣。我希望它会更快,因为目前,我认为MySql将为您拥有的每个节目运行内部查询1(这样一个查询将运行多次。联接应该更有效。) 如果希

  • 主要内容:概述,一、关联查询优化,1.左(右)外连接,2.内连接,3.JOIN语句原理,4.JOIN小结,5.Hash Join,二、子查询优化,三、排序优化,四、GROUP BY优化,五、优先考虑覆盖索引,六、使用前缀索引,七、索引下推ICP,八、其他查询优化,1.COUNT(*)与COUNT(具体字段)效率,2.不使用SELECT *,3.LIMIT 1优化,4.多使用commit概述 数据库调优的方式有多种: 建立索引、充分利用到索引、不让索引失效 对SQL语句进行优化 调优如缓冲、线程数

  • 本文向大家介绍MySQL中对表连接查询的简单优化教程,包括了MySQL中对表连接查询的简单优化教程的使用技巧和注意事项,需要的朋友参考一下 在MySQL中,A LEFT JOIN B join_condition执行过程如下: · 根据表A和A依赖的所有表设置表B。 · 根据LEFT JOIN条件中使用的所有表(除了B)设置表A。 · LEFT JOIN条件用于确定如何从表B搜索行。(换句话说,不

  • 问题内容: 一个供您所有MySQL专家使用的技巧:-) 我有以下查询: 订单表= 80,900行 产品表= 125,389行 o.id和p.order_id已建立索引 该查询大约需要6秒钟才能完成-太长了。我正在寻找一种优化它的方法,可能使用临时表或其他类型的联接。恐怕我对这两个概念的理解还很有限。 谁能建议我优化此查询的方法? 问题答案: 首先,我将使用其他样式的语法。 已经有20年的睡眠时间了

  • 本文向大家介绍Mysql使用索引实现查询优化,包括了Mysql使用索引实现查询优化的使用技巧和注意事项,需要的朋友参考一下 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的。 1.索引的优点 假设你拥有三个未索引的表t1、t2和t3,每个表都分