mysql - 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?
解决方案
不,不需要也不会使用 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 上的索引,以使记录的顺序正确,但在您的直接情况下,这不应该发生。
推荐阅读
- c# - 我应该如何在 RabbitMQ 标头中传递字符串值
- c# - 如何在 ViewComponent 或库中向 nSwag 生成的客户端添加不记名令牌?
- .htaccess - 使用 .htaccess 重写文件夹
- php - Ajax XMLhttprequest 发布到 PHP 脚本并旋转图像
- json - 你如何重写结构中的类型?
- amazon-web-services - AWS Gluescript 使用 spark,胶水作业如何帮助将数据持久存储到持久存储层,如镶木地板?
- reactjs - 如何通过renderInput将状态数据传递给DesktopDatePicker?
- sql - 连接 SQL 数据库中 2 个表的多个列
- css - 根据项目内容将两列居中对齐布局转换为左对齐堆叠布局
- java - 在查询中访问用户定义的方法属性 - Esper