gpt4 book ai didi

mysql - 我怎样才能使查询强制使用这样的索引?

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

我有这样的查询:

SELECT u.id, user_fname, user_lname, reputation, email, events
FROM users u
INNER JOIN cookies c ON u.id = c.user_id
WHERE c.cookie = $token

我还有这些索引:

  1. cookies(cookie, user_id) -- 这是一个普通索引
  2. cookies(cookie) -- 这是一个唯一索引

当我在 上执行查询(连同 EXPLAIN) 时,它使用第二个索引:cookies(cookie)。那么我怎样才能让它强制使用第一个索引呢? cookies(cookie, user_id)

最佳答案

如果 cookie 是一个唯一 索引,那么使用第一个索引就没有优势。如果 SELECT 中的任何列来自 cookies 表,则尤其如此。

无论如何,如果cookie是唯一的,基本上处理是:

  • 查找 cookie 值(非常快,使用索引)。
  • 查找对应的cookie记录(真的很快,抓取一页)。
  • 从用户中查找相应的记录(非常快,使用索引)。

第一个索引可能能够消除第二次提取。但是,唯一索引提供的附加信息可能会平衡这一点——无论哪种方式,查询都应该非常快。

关于mysql - 我怎样才能使查询强制使用这样的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38213649/

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