我需要使用 Laravel 查询从数据库中获取目录,所以我简单地写:
$catalogs = Catalog::where('shop_id', $shop->id)->latest()->get(['id','title', 'created_at', 'shop_id', 'cover_bg', 'frontpage', 'pdf', 'clicks', 'finished']);
在目录表中,我有 100 多列 - 其中 2 列是 type longtext
。目录当前包含大约 14000 条记录,并且获取资料非常慢:
这是 phpMyAdmin 的执行时间
这是 Laravel 查询执行时间:
如何加快查询速度?我认为 14 000 条记录不是大表。此外,如您所见,我尽量避免使用长文本列,因此我没有获取它们。
是服务器性能问题还是其他问题?
CPU也很低:
uj5u.com热心网友回复:
我认为您可以通过将索引陈述句添加到表结构中的 shop_id 来加快查询速度。访问https://www.sqlshack.com/sql-index-overview-and-strategy/
uj5u.com热心网友回复:
尝试切换到使用原始查询,而不是使用 Eloquent DB::select(DB::raw('...'))
0 评论