当前位置:首页 > php > 正文内容

thinkphp6 对于大数据的性能优化处理

zhangsir3年前 (2023-01-15)php358

一,分页功能

分页功能建议使用官方提供的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

扫描二维码推送至手机访问。

版权声明:本文由zhangsir or zhangmaam发布,如需转载请注明出处。

本文链接:https://www.mianka.xyz/post/101.html

标签: phpthinkphp
分享给朋友:

“thinkphp6 对于大数据的性能优化处理” 的相关文章

php如何计算数组长度?

php如何计算数组长度?在PHP中,可以使用count() 或sizeof函数来获取数组中存在的元素的总长度或总数,计算数组长度。方法一:count()函数首先我们创建了一个数组,如下:$array = array  ("ABC",&quo...

迅睿CMS如何在列表循环中调用模块附表内容字段

列表循环标签改一下:join=1_news_data_0 on=id例如列表循环时,加上的效果{module catid=$catid join=1_news_data_0 on=id order=updatetime page=1}这个写法仅限于5万以内的数据...

Thinkphp6 把用Db类的条件查询转成原生的sql语句

Thinkphp6经常需要查看 SQL 原生语句,这里有两种方式获取:1、getLastSql(), 获取方法前最后一条 SQL 原生语句$a1 = Movies::where('state',1)->limit(10)->select(); $a2...

thinkphp 使用Filesystem类提示未找到Filesystem类

这是因为thinkphp官方升级了thinkphp版本的原因,只需要更新Filesystem类就行了更新命令行如下:composer require topthink/think-filesystem 1.0.1...

php 判断当前请求是http请求还是https请求!

php判断http请求还是https请求$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'...

php 显示当前时间的代码实例

在 PHP 中,date() 函数格式化本地日期和时间,并返回格式化的日期字符串。显示当前时间:<?php $a1 = date("Y-m-d H:i:s",time()); echo $a1;显示一天前的时间<?php...