接近百万数据联表查询
时间:2011-11-05
来源:互联网
A服务器的情况:
A表有数据15万条,B表有88万条.
A表是房源信息表,B表是储存图片地址表.
B服务器的情况:
B表的图片储存在B服务器
每次查询都需要join表查询,显示相关数据与图片。
由于A、B表数据量不断的增大,查询mysql的速度越来越慢。
请问有什么好的解决方法?
A表有数据15万条,B表有88万条.
A表是房源信息表,B表是储存图片地址表.
B服务器的情况:
B表的图片储存在B服务器
每次查询都需要join表查询,显示相关数据与图片。
由于A、B表数据量不断的增大,查询mysql的速度越来越慢。
请问有什么好的解决方法?
作者: Ygb_Prince 发布时间: 2011-11-05
B表中的索引情况如何? 你的查询语句是什么样?
作者: ACMAIN_CHM 发布时间: 2011-11-05
索引设置的合理,按照join 表的原理,效率不会差的。
作者: mr_mablevi 发布时间: 2011-11-05
引用 1 楼 acmain_chm 的回复:
B表中的索引情况如何? 你的查询语句是什么样?
B表中的索引情况如何? 你的查询语句是什么样?
忘记说C表了,应该是A表与C表根据条件查询,然后得到的ID后,从B表中得到图片地址,然后在前台显示。
A表有50多个字段,B表有10个字段,C表有25个字段。
他们的关系是这样的,A表的id与C表oid,B表的loft_id之间建立了索引的关系,也就是外键!
作者: Ygb_Prince 发布时间: 2011-11-05
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";
}
}
$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";
}
}
作者: Ygb_Prince 发布时间: 2011-11-05
引用 2 楼 mr_mablevi 的回复:
索引设置的合理,按照join 表的原理,效率不会差的。
索引设置的合理,按照join 表的原理,效率不会差的。
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";
}
}
作者: Ygb_Prince 发布时间: 2011-11-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28