重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
从sql本身来看,基本上没有优化的余地了,如果数据量过大造成的缓慢,
成都创新互联公司2013年开创至今,先为平潭等服务建站,平潭等地企业,进行企业商务咨询服务。为平潭企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
可以考虑使用sql分页语句:
(即分页由sql完成,并不是由PHP完成)
你要告诉我用的是什么数据库: mysql? mssql? oracle?
如果不用sql分页语句去写,只能从数据库上工夫。
1. 将几个table 的 hotelId 字段, name字段 分别建立索引。
2. 建立分表,将大数据分之。
你的语句是正确的,速度慢两种可能:
一、是索引不对,你所有的关联字段,应该在相应表中有唯一索引,最好是主键,例如:
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条数据,然后在循环里面每条数据库关联获取其它表的信息,这样就不需要先对五个表做链接。
1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;
2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;
3.优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);
4.尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);
5.循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?);
6.多维数组尽量不要循环嵌套赋值;
7.在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;
8.foreach效率更高,尽量用foreach代替while和for循环;
9.用单引号替代双引号引用字符串;
10.“用i =1代替i=i 1。符合c/c 的习惯,效率还高”;
11.对global变量,应该用完就unset()掉