thinkphp6 对于大数据的性能优化处理
一,分页功能
分页功能建议使用官方提供的paginateX分页查询方法,如下是官方原话:
对于大量数据的分页查询,系统提供了一个高性能的paginateX分页查询方法,用法和paginate分页查询存在一定区别。如果你要分页查询的数据量在百万级以上,使用paginateX方法会有明显的提升,尤其是在分页数较大的情况下。并且由于针对大数据量而设计,该分页查询只能采用简洁分页模式,所以没有总数。
由于paginateX没有总数,所以在查询一下总数就可以了,可以thinkphp6做api,前端用layui框架做分页界面。实现分页功能。
查询总数 $page = Db::query("SELECT COUNT(*) FROM think_user")[0]['COUNT(*)'];
二,用搜索功能
搜索功能使用模糊查询,我以前做搜索,就是遍历数据库,应该用模糊查询的。[尴尬],实例:
//模糊查询 $user = User::where('name','like','%'.$a1.'%')->column('id,name,create_time,img');
三,索引
给经常作为查询条件的字段做索引,字段做不做索引,对查询的速度真的影响很大,
注:尽量不使用select(),select()返回的是对象。可以使用其他例如:column(),column()返回的是数组。
zhangsir版权g4防采集https://mianka.xyz