要导出一批数据 数据放在四张相关联的表中
学院表--专业表--班级表--学生表
学生表的数据量在10W的样子
要从中取出几十个班的学生5000条左右记录  记录中要显示学生所在的学院  专业 班级信息
方法1 用表连接来做 INNER JOIN把表全部连起来 直接取得班级 学院 专业信息
方法2 取得学生记录  然后一个个去读学院 专业 班级信息(1个学生访问3次数据库读回三个信息)。
方法3 取得学生记录 然后一个个用表连接去读学院 专业 班级信息(1次读回3个信息)
希望高手指点
或者给我个原则 什么时候用方法1效率高  什么时候用方法3效率高~~另外如果排序是通过学院来排序 是不是会效率很低?谢谢了~

解决方案 »

  1.   

    建议用第一种,,第二种效率最低,用第一种的原因是SQL使用内联会自动筛选出学生所对应的学院专业班级...如果通过学院来排序,那么最好引入学院ID,用学院ID来排序,效率不会低多少
      

  2.   

    学习下..之前只做过大量数据的测试,索引很重要..利用好了可以减少很多资源.还有就是利用一个临时变量来存放临时表...这个可以存放一次搜索的内容...之后只要传变量...这个是看我老师以前这么搞过,具体的SQL语句忘记了...