A服务器的情况:
    A表有数据15万条,B表有88万条.
    A表是房源信息表,B表是储存图片地址表.B服务器的情况:
   B表的图片储存在B服务器每次查询都需要join表查询,显示相关数据与图片。由于A、B表数据量不断的增大,查询mysql的速度越来越慢。
请问有什么好的解决方法?

解决方案 »

  1.   

    索引设置的合理,按照join 表的原理,效率不会差的。
      

  2.   

    忘记说C表了,应该是A表与C表根据条件查询,然后得到的ID后,从B表中得到图片地址,然后在前台显示。
    A表有50多个字段,B表有10个字段,C表有25个字段。
    他们的关系是这样的,A表的id与C表oid,B表的loft_id之间建立了索引的关系,也就是外键!
      

  3.   

    sql语句:
    $sql="SELECT L.*,S.* FROM $loft_info_t AS L JOIN $loft_support_t AS S ON L.id=S.aid $where $orderby $limit";
    $loft_list = array();
    $db->query($sql);
    while($db->next_record_assoc()) {
            $loft_id=$db->Record["id"];
         $imgarr=$qjwh_db->row_query("SELECT fl_sname FROM files_list WHERE loft_id=$loft_id ORDER BY oid ASC LIMIT 1");
            if(count($imgarr[0]["fl_sname"])){
              $img="http://223.4.8.70/photo_edit/GZ_PHOTOS/".$imgarr[0]["fl_sname"];
            }else{
                $img=$web_root."/images/others/hotimg.jpg";
            }
      

  4.   

    sql语句:
    $sql="SELECT L.*,S.* FROM $loft_info_t AS L JOIN $loft_support_t AS S ON L.id=S.aid $where $orderby $limit";
    $loft_list = array();
    $db->query($sql);
    while($db->next_record_assoc()) {
      $loft_id=$db->Record["id"];
      $imgarr=$qjwh_db->row_query("SELECT fl_sname FROM files_list WHERE loft_id=$loft_id ORDER BY oid ASC LIMIT 1");
      if(count($imgarr[0]["fl_sname"])){
      $img="http://223.4.8.70/photo_edit/GZ_PHOTOS/".$imgarr[0]["fl_sname"];
      }else{
      $img=$web_root."/images/others/hotimg.jpg";
      }
      

  5.   

    你打印出来纯sql吧 别在程序里欠着