放网站的服务器吗,wordpress内链插件,郑州网站建设企业推荐,做网站都需要租服务器吗select * from A left join B on A.c B.c where A.employee_id 3
1.一句sql中 是可能走多次索引的#xff0c;具体的 一般 表连接 #xff0c;或者说生成临时表的时候#xff0c;会走索引 然后条件过滤的时候也会走索引#xff0c;具体的 还是要具体分析
2.表连接 字段…select * from A left join B on A.c B.c where A.employee_id 3
1.一句sql中 是可能走多次索引的具体的 一般 表连接 或者说生成临时表的时候会走索引 然后条件过滤的时候也会走索引具体的 还是要具体分析
2.表连接 字段 一定要加索引过程是一次全表扫描然后 拿着这张表的值去走另外一张表的索引
3.where 后面 or 少用or 可能会全表扫描union比较好
4.复合索引顺序不一定和 sql字段顺序 一致 例如 上面这句 结合上面的Mysql优化可知 这一句Sql在执行的时候首先是选择了使用 表B 的索引来进行优化 将表A单独放出来进行后续的操作 然后又发现了where语句中A.employee_id有一个聚合索引 并且employee_id处于索引头所以这个聚合索引是可用的 so自然使用了此索引
5.表连接 建好索引后 一定会留 下一个 全表扫描的然后 后面的 where 可以和 前面的 表连接字段关联索引 也可以单独建立都是会走 索引的只是 不是我们想的表关联 后 得到 临时表然后 where 字段 走 索引 得到的值回表 回到 临时表(回表 不可能 回到 临时表的)可能是 例如 A B
mysql优化器选择 A.a 作为 索引列B.a 不走然后 如果这时 有 B.a xxx 这个条件那么可能 B走全表前先 索引一下 得到 剩下的记录然后 剩下的 记录 和 B走索引
所以我们考虑的是把 A表的 关联字段 和 A表的 条件字段 一起建索引往往效果更好 当然单独键 where 后面的 索引 也是 可以的
6.order by 后面的 可以 和 where 一起建立 联合索引但是不一定用的到会走联合索引但是 order by 字段的 索引没有走