gpt4 book ai didi

MySQL多对多最优索引

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

我有以下用于表的 MySQL 代码:

CREATE TABLE `tag_to_photo` (
`tag_id` INT UNSIGNED NOT NULL,
`photo_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`tag_id`, `photo_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果我要搜索两者:所有固定到照片的标签和所有固定到标签的照片,如何优化定义索引?我假设可以组合主键。但是我应该为 tag_idphoto_id 还是为两者定义额外的索引?

最佳答案

多个列索引称为Composite Keys,您不需要为所述列添加单独的索引,因为Primary Composite Key就足够了,假设大多数您的查询与此类似:

SELECT  ...
FROM tag_to_photo
WHERE tag_id = ...
AND photo_id = ...

检查 Composite Keys 的链接详细了解如何利用其性能。

SO Question还将根据您的数据库配置 (InnoDB/MyISAM) 提供一些关于组合键的底层知识。

当表变大时,INSERT/UPDATE 的查询可能会变慢。届时我们可以分析执行计划,了解我们可以做什么以及如何实现它们以优化您的查询。

关于MySQL多对多最优索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49506685/

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