$ksja = mysql_query("select * from supe_spacenews where newsfrom='$b'");
$user = mysql_fetch_array($ksja);
$user1= $user["newsfrom"];
$user2= $user["itemid"];这段代码 刚开始还好 目前newsfrom字段已经增加到了几十万条数据 获取的奇慢   求优化方案

解决方案 »

  1.   

    1. newsfrom 这字段加索引值2. 查询不要用*号, 需要什么字段就查什么3. 适当缓存经常用的数据
      

  2.   

    $ksja = mysql_query("select newsfrom,itemid from supe_spacenews where newsfrom='".$b."'");
    $user = mysql_fetch_row($ksja);
    $user1= $user["newsfrom"];
    $user2= $user["itemid"];
      

  3.   

    首先,不要选择表格中的全部列。
    其次,获取结果是,我一般用while。
      

  4.   

    该字段内容都如60702ae30100hklj 这类内容 这段代码的作用是获取这条数据的itemid内容 和newsfrom内容是否为空 也就是数据库中是否存在60702ae30100hklj这段内容
      

  5.   

    怎么不用* select from supe_spacenews where newsfrom='$b' 这样?
      

  6.   

    newsfrom 建索引了吗?看你说的好像可以建unique索引呢, 才几十万数据,就取一条。select * 影响也不大拉
      

  7.   


    不是我拍马屁,高手啊.. 不过有一点的就是:看newsfrom的唯一性,如果是分类id的话,
    你加了性能也不会好哪去,比如说分2个类.. 但是2个类中都十几万条数据.
      

  8.   

    突然发现 csdn 不能盖楼!~~
      

  9.   


    That situation is specific ...
      

  10.   

    explain 一下你的SQL语句的执行方案。主要是索引的添加和设置。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
    在CSDN的数据库版块中有专门的MYSQL版。