当前位置:数据库 > MySQL >>

mysql 语句执行效率优化

String sql = "SELECT u.userid,u.STARTDATE, f.star, a.downmoney,a.downamount,a.pvamount " + "from sys_user u INNER JOIN fuser_fixinfo f ON u.USERID=f.userid " + "INNER JOIN fuser_accountdynamic a on u.userid=a.userid " + "WHERE f.star= "+star+" and a.downmoney>" + downmoney + " and u.startdate > '" + startDate + "' order by "+orderBy+" desc "; 与 这样的语句 select u.userid,u.STARTDATE, f.star, a.downmoney,a.downamount,a.pvamount from sys_user u,fuser_fixinfo f,fuser_accountdynamic a where u.userid in(select f.userid from fuser_fixinfo where f.star= ) and u.userid in(select a.userid from fuser_accountdynamic where downmoney>0) and u.satrtDate> order by 这两个哪个效率更高? 这几张表没有大小之分的,不能确定那张表数据量大。求还能优化吗?求指点。。。
追问:能知道个qq吗。详细问下。谢谢
答案:效率你自己执行下就看得出了......我估计是一样的,因为2条语句都是采用嵌套循环查询,如果我选的话,会选where u.USERID=f.userid and u.userid=a.userid这种形式,因为看着顺眼点~~~
       非要优化的话,可以在f.star、downmoney、u.userid列上加索引,看看表的大小和列的离散度再考虑是否需要加吧。
其他:第一个语句要效率高些。
第一个比第二个有序
in 子句本身效率不高。

上一个:MySql数据库时间判定问题
下一个:mysql 改了密码

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,