php数据查询优化 php查询数据库数据( 四 )


首先保持良好的开发习惯,了解 Db类和模型的正确使用姿势 ,数据库本身的性能优化可以参考 MySQL性能优化的最佳21条经验 ,下面主要是对框架中数据查询相关的优化策略 。
尽量减少每次请求的查询次数,并对实时性要求不高的数据查询合理规划数据查询缓存(优先考虑使用Redis缓存)
如果使用了关联查询,cache方法只能用于主模型的数据缓存,但你可以使用Cache类的remember方法进行方便的数据缓存 。
尽量减少查询次数是出于性能考虑,但不是必须,使用最少的查询不代表性能就一定是最高 。一个复杂的JOIN查询性能不见得有两次简单的查询高,而使用简单的查询反而更清晰易懂,并且更方便进行数据查询缓存 。
不要总是以为模型的性能一定比Db类低,框架的ORM查询设计经过了较为合理的优化,正确使用模型一样可以有出色的性能,而且比Db查询要方便很多 。
尤其是对于一些复杂的设计来说使用模型关联显得比直接用Db更加简单,例如使用关联预载入查询就可以避免N+1查询问题 。
如果用Db类自己实现的话,费时费力,性能还不一定优 。
对于内存开销比较大的应用,在做大量数据查询和处理的时候,使用cursor方法,可以利用PHP的生成器特性,减少内存占用 。
你会发现用户数据不论是1万还是10万级别,内存开销并没有大的变化 。
涉及到对大量数据的处理,包括数据迁移、批量更新,尽量使用命令行指令运行,否则会因为超时而中断
可以通过数据集的方法完成的子集或者排序操作不要再次查询,例如:
利用下面指令在部署后生成字段缓存,可以减少每次数据表的字段查询开销 。
注意:一旦数据库的表结构发生变化 , 必须重新生成 。
每次在应用初始化或者模块初始化的时候会有一定的I/O开销,如果已经开启OpCache的话对性能影响甚微,如果比较在意的也可以通过命令行指令生成配置缓存(包括相关的公共文件和各种定义文件) 。
生成应用配置缓存:
生成模块配置缓存:
注意:一旦配置或者公共文件发生变化,必须重新生成 。
类库映射可以提升类库的自动加载性能 , 使用下面的指令可以生成系统类库和应用类库的类库映射(包括extend目录下的类库) 。
vendor目录下的类库可以使用composer的dump-autoload指令优化加载性能 。
该命令把PSR-0和PSR-4转换为一个类映射表,来提高类的加载速度 。
php 从excel读取1万条数据插入数据库优化1.你在数据库进行设置,不允许重复数据.然后随便写入就可以了.
2.你可以先把这些数据全部添加进去,不管重复不重复,然后再到数据库去查有重复数据就删掉只留一条.
关于php数据查询优化和php查询数据库数据的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读