mysql优化手册v1.0
查询数据尽量不用 JOIN,用 with(禁止超过 3 张表 JOIN)#
错误:
App(Users::class)->leftjoin('users_basic')->limit(20)->get()
正确:
App(Users::class)->with('usersBasic')->limit(20)->get()
2. 查询条件主表超过 100 条的禁止使用 whereHas#
错误:
App(Users::class)
->whereHas('UsersBasic',function($query)use($mobile){
$query->where('mobile','like','$mobile%')
})
正确:
App(Users::class)
->whereHasIn('UsersBasic',function($query)use($mobile){
$query->where('mobile','like','$mobile%')
})
App(Users::class)
->whereHasJoin('UsersBasic',function($query)use($mobile){
$query->yjwhere('mobile','like','$mobile%')
})
使用这个组件
composer require eugenes/laravel-builder
3. 批量更新一定要走主键,不要直接更新#
原因。会锁住大量数据,导致出现死锁
解决方法:先查出主键,然后通过主键更新
4.JOIN 方法关联条件一定要加索引#
5. 尽量避免在字段开头模糊查询,会导致数据库引擎放弃索引进行全表扫描。#
错误
SELECT * FROM t WHERE username LIKE '%陈%'
正确
SELECT * FROM t WHERE username LIKE '陈%'
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: