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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

最后一条我不认同

2年前 评论
douresources (楼主) 2年前
王大牛 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!