MySQL对于被驱动表的关联字段没索引的关联查询 , 一般都会使用 BNL 算法 。如果有索引一般选择 NLJ 算法 , 有 索引的情况下 NLJ 算法比 BNL算法性能更高 。
关联查询优化总结
- 超过三个表禁止 join 。【阿里巴巴JAVA开发手册】
- 需要 join 的字段 , 数据类型必须绝对一致;【阿里巴巴JAVA开发手册】
- 多表关联查询时 , 保证被关联的字段需要有索引 , 尽量选择NLJ算法 。【阿里巴巴JAVA开发手册】
- 小表驱动大表 , 写多表连接sql时如果明确知道哪张表是小表可以用straight_join写法固定连接驱动方式 , 省去mysql优化器自己判断的时间
【MySQL两个表的亲密接触-连接查询的原理】
推荐阅读
- JS大额数字相加
- MySQL利用int类型高性能实现签到活动
- 高送配股票一览表2020!股票中的高送转是什么意思?
- 煤安标志查询官网?MA是代表煤矿电缆吗?
- 巩俐|巩俐夫妻陪法国总统访华,70多岁老公似小伙,提两个皮箱不嫌累
- 丝袜|低俗营销何时休?“为人师表”请您穿好衣服
- 高校|福建高校招聘会上招“KTV公主”?校方霸气回应,家长表示不接受
- 浪姐4|《浪姐4》导摄爆料,初舞台满分400,8首选曲曝光,谢娜唱代表作
- 秦岚|刘雯秦岚同框,大表姐赢麻了?秦岚被批网红感上不了台面?
- 人生之路|“为人师表”请您穿好衣服,低俗营销何时休?