刀客孩哥 发表于 2010-11-28 11:15:13

我的查询语句写得好么,科学么,求鉴定!

SELECT cu.uid, cu.nickname, cu.sex, cu.brithyear, cu.resideprovince, cu.residecity, cu.height, ca.pic, cua.content, cua.checka

FROM cndc_user AS cu, cndc_album AS ca, cndc_user_aboutme AS cua

WHERE cu.uid = ca.uid

AND cu.uid = cua.uid

AND cu.sex = $sex
AND cu.brithyear < $maxage
AND cu.brithyear > $minage
AND resideprovince = $province
AND residecity = $city

自我感觉稍显臃肿,试问有没有别的替代办法

yunnysunny 发表于 2010-11-28 13:17:04

先判断,后连接。这个是实现查询优化树的一个简单方法。所以你应该这么写:
where cu.sex = $sex
AND resideprovince = $province
AND residecity = $city
AND cu.brithyear < $maxage
AND cu.brithyear > $minage
and cu.uid = ca.uid
AND cu.uid = cua.uid
坚持的原则是把限制性大的放到最前面,每次尽量取最少的数据。

刀客孩哥 发表于 2010-11-28 13:47:39

谢了老白!

doutu 发表于 2010-12-2 00:10:23

建索引,然后最好explain查看一下,想当然有时是错的

pipigui 发表于 2010-12-24 18:06:06

学习一下,呵呵
页: [1]
查看完整版本: 我的查询语句写得好么,科学么,求鉴定!