gpt4 book ai didi

mysql - 如何使用 activerecord 在 JOIN 中指定 'USE INDEX'

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:55 25 4
gpt4 key购买 nike

当存在多个 JOIN 时,有没有一种方法可以在 Rails 中使用事件记录在 JOIN 上强制建立索引?

我希望生成的最终 SQL 为:

SELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id
INNER JOIN table3 USE INDEX('my_index')
ON table2.new_id = table3.new_id

希望这样的事情是可能的?

最佳答案

Rails 不支持开箱即用的连接。但是你总是可以写传递一个字符串到 joins 来准确描述你想要的:

Post
.joins(:author)
.joins("INNER JOIN comments USE INDEX('myindex') ON comments.post_id = posts.id")

我使用 postsuserscomments 而不是 table1table3 ,因为 table1 等不遵循 Rails 命名约定。

关于mysql - 如何使用 activerecord 在 JOIN 中指定 'USE INDEX',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com