PHP+MYSQL网站查询一个只有几千条数据的数据表非常慢,要10秒!怎么办?程序很老了是不是查询语句写的太烂了?谁帮帮我;愿意出点辛苦费!main.php里面大概是这样写的$sql = "SELECT b. * , k.id AS likeid , f.id AS followid ,m.username,m.domain
FROM `".DBPRE."blog` AS b LEFT JOIN `".DBPRE."likes` AS k ON ( b.bid = k.bid AND k.uid ='$uid' )
LEFT JOIN `".DBPRE."follow` AS f ON ( b.uid = f.touid and f.uid = '$uid' )
LEFT JOIN `".DBPRE."member`  as m on b.uid = m.uid where b.open = 1 " ;可以加我QQ4181691

解决方案 »

  1.   

    请听从 EXPLAIN 的意见
      

  2.   

    开启慢查询日志,在[mysqld]中添加如下信息:[mysqld]log-slow-queries="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-slow.log"
    long_query_time = 1log-queries-not-using-indexeslog-slow-queries: 代表MYSQL慢查询的日志存储目录, 此目录文件一定要有写权限;Windows下需要写绝对路径,如:log-slow-queries="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-slow.log"long_query_time: 最长执行时间. 
      

  3.   

    explain 该语句,并且适当加索引
      

  4.   

    你这三个表都是数据很少?
    EXPLAIN分析一下吧。另外,这个语句也是有问题啊,既然过滤条件都在右表,那左连接就和内连接一样一样的了。