gpt4 book ai didi

MYSQL 最佳使用索引进行 JOIN 查询

转载 作者:行者123 更新时间:2023-11-29 07:29:24 26 4
gpt4 key购买 nike

我有两个表

homes_info 有 4 列

 home_id (primary_key)  
title (varchar)
price (double)
location_id (foreign key)

我还有一张 table

locations 有 3 列

 location_id (primary key)
location_name (varchar)
location_state (varchar)

我只想做这两个查询

SELECT * FROM homes_info WHERE title = 'xxxxx' && price = 'xxxx'

SELECT * FROM homes_info LEFT JOIN locations on homes_info.location_id = locations.location_id WHERE title = 'xxx' && price = 'xxxxx' && location_name = 'xxxx'

以下是在上述表上使用索引优化上述两个查询的最佳方式吗?

ALTER TABLE homes_info ADD INDEX(title, price)

ALTER TABLE 位置 ADD INDEX(location_name)

我知道对于第一个查询,复合索引 INDEX(title, price) 比单独的索引要好,但是第二个查询呢(我使用了 LEFT JOIN )?在 titleprice 列上使用单独的索引对于第二个查询会更好

简单来说, 优化上述两个查询时,这两个表上的索引的最佳用途是什么?

谢谢!

最佳答案

对于表格位置,您可以使用 y .. 您可以使用单个复合

ALTER TABLE locations ADD locations_info INDEX(location_name , localtion_id)

使用带有 localtion_name 和 location_id 的组合)你确定 where (join ) 子句所需的所有信息都由索引解析,避免访问数据表以获取 .. location_id

关于MYSQL 最佳使用索引进行 JOIN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224111/

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