PHP MYSQL SQL语句优化

来源:百度知道 编辑:UC知道 时间:2024/05/05 20:36:02
select * from cdb_members inner join cdb_memberfields on cdb_members.uid=cdb_memberfields .uid inner join supe_userfields on cdb_members.uid=supe_userfields.uid inner join cdb_usergroups on cdb_members.groupid=cdb_usergroups.groupid inner join supe_userspaces on cdb_members.uid=supe_userspaces.uid inner join supe_userspacefields on cdb_members.uid=supe_userspacefields.uid order by cdb_members.uid desc limit 0,500

请问各位高手这个SQL语句还能不能进行更好的优化?

在执行的时候会很慢~~~

你的语句是正确的,速度慢两种可能:

一、是索引不对,你所有的关联字段,应该在相应表中有唯一索引,最好是主键,例如:
cdb_members.uid
cdb_memberfields .uid
supe_userfields.uid
cdb_members.groupid
cdb_usergroups.groupid
supe_userspaces.uid
supe_userspacefields.uid
如果以上的表没有主键,请设置相应字段为主键,如果有其他的主键而且是必须的,那么在上面的字段建立唯一索引。

二、数据量过大,如果你cdb_members的记录很多,远远大于500条,可以考虑改变程序,先重此表里面获取500条数据,然后在循环里面每条数据库关联获取其它表的信息,这样就不需要先对五个表做链接。