首页 > 解决方案 > Maria DB - Help on Index

问题描述

I have below query

Select main.display_column, lookup.lookup_column from
main
inner join lookup on main.main_column = lookup.lookup_column
where main.another_column = 123;

Is it enough to create index on main.another_column and lookup.lookup_column

or index on main.main_column is also required to increase the performance?

标签: mysqlindexingmariadb

解决方案


不,不需要也不会使用 main.main_column 上的索引。

设置所有三个索引,然后执行explain select rest-of-your-query;它只会显示正在使用的两个索引。

如果你有这样的事情:

select main.display_column, lookup.lookup_column
from main
inner join lookup on main.main_column = lookup.lookup_column
where main.another_column >= 123
order by lookup.primarykey

优化器可能会选择反转连接并使用 main.main_column 上的索引,以使记录的顺序正确,但在您的直接情况下,这不应该发生。


推荐阅读