mysql 语句,球分析,第1张

mysql 语句,球分析,第2张

explain select `id` from `ao_articles` where (select count(*) from `ao_articles_tags` inner join `ao_articles_relationships` on `ao_articles_tags`.`id` = `ao_articles_relationships`.`tag_id` where `ao_articles_relationships`.`cid` = `ao_articles`.`id` and `id` in (1,2,3,4,5)) >= 1 limit 10000

mysql 语句,球分析,第3张

应该已经添加索引,为什么还会扫描全表?

上面是 Eloquent 自动生成的 join ,使用构造器重写效率提高

```mysql
DB::table('articles')
->join('articles_relationships', 'articles_relationships.cid', '=', 'articles.id')
->join('articles_tags', 'articles_relationships.tag_id', '=', 'articles_tags.id')
->select('articles.id')
->whereIn('articles_tags.id', [1,2,3])
->lists('id');
``` ----------------------- 以下是精选回复-----------------------

答:我一直没搞明白索引。。。帮不了忙~
答:count(*) 是全表扫描,自己百度下一目了然~

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » mysql 语句,球分析

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情