视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php高性能接口怎么设计
2020-11-03 23:09:56 责编:小采
文档

php高性能接口怎么设计

php接口设计要考虑性能,这样才能有效面对高并发的情况,下面来说说PHP接口优化提高性能的几条技巧。

一、服务器

从配置上做提升,对于系统整体的执行效率是相当明显的,这一点没有什么好质疑的,只要有实力,自然就可以多在这方面做提升了。

二、数据查询

这个查询的优化,涉及sql的优化,或者到数据库的优化,下面有几个简单的优化方案。

1. sql的优化,适当使用链表查询,使用连接(JOIN)来代替子查询,一般大表和多表的情况避免使用JOIN,这种情况下使用JOIN反而达不到简化查询的效果。

2. sql的优化,查询表数据时精确字段名进行查询,避免不必要的字段查询。

3. sql的优化,适当使用主外键和索引,索引字段的查询效率在大表查询的效率对比相当明细。但是针对对索引得使用,稍作备注。索引在很多情况下是会失效得,比如,索引列得字段内容若整体占比过大,那这个索引也就没什么作用了;not in ,not exist 中也是无效得;对索引列进行运算.需要建立函数索引等

4. sql的优化,适当使用in查询,尽量少用,最好用union代替,效率会明显高 。 用in时,尽量使用索引字段。sql的优化,适当使用模糊查询。最好不用,替换成全等,因为模糊中无法用索引

5. 数据库的优化,字段使用合理的字段类型,另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOTNULL,避免空间浪费。

6. 数据库的优化,合理设计表结构。比如,有时多些必要得冗余得字段,要好过连表查询。

7. 数据库的优化,合理设计索引,在联表查询或条件筛选中,数据表增加索引后查询的效率会快特别多。

三、代码优化

代码上的优化也是因人而异的,每个人可能编码习惯和风格不同,对于提高代码性能有各自的见解,以下是我的部分看法。

1. foreach合理使用,尽量少在循环中套用循环,在循环次数过多的情况下,非常耗性能。

2. 循环中,尽量避免数据操作,特别是查询操作,在循环次数过多的情况下,多次调用效率很低,可一次获取数据再拼接。

3. 同理,在循环中,避免配置的多次获取,和time()函数方法的调用,这种一次声明就可以重复使用。

4. 在php中,单引号和双引号是有区别的,作为一种习惯字符串我都用单引号,因为它无需编译,对于效率,可能谈不上差异大小,可能就一点点

5. 合理利用在php中的函数,像数组函数就非常丰富,要充分利用,一般不要自己去做他本身就支持的函数方法

6. 可以用上字典的概念,将数组以新索引形式存储起来,我在数据的重组中很常用

7. 根据场景,合理使用缓存可以减少重复的数据查询,提高效率

8. 合理拆分功能,比如一个列表查询,并带有详情查看,可以将此处拆成两个接口实现,在需要时获取数据,减少资源浪费。

四、业务逻辑优化

跟响应无关的程序(如记录日志等)耗时过多,使用fastcgi_finish_request()函数冲刷(flush)所有响应的数据给客户端并结束请求, 这使得客户端结束连接后,需要大量时间运行的任务能够继续运行,且不影响响应客户端的时间。

echo '例子:';
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上传视频
", FILE_APPEND);
fastcgi_finish_request();
sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 转换格式
", FILE_APPEND);
sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取图片
", FILE_APPEND);

更多PHP相关知识,请访问PHP中文网!

下载本文
显示全文
专题