gpt4 book ai didi

mysql - 使用 group_concat 标记查询

转载 作者:可可西里 更新时间:2023-11-01 06:41:57 26 4
gpt4 key购买 nike

使用数据库模式标记这个问题已被接受 answer是否可以使用 group_concat 进行查询以处理大量数据?我需要为所有标有标签 x 的项目获取带有标签的项目。使用具有约 50 万个标签的 group_concat 的查询在 > 15 秒时非常慢。没有 group_concat(项目没有标签)是~0.05秒。

作为附带问题,SO 如何解决这个问题?

最佳答案

这可能是索引策略不佳的情况。调整 the accepted answer 中所示的模式您链接到的问题:

CREATE Table Items (
Item_ID SERIAL,
Item_Title VARCHAR(255),
Content TEXT
) ENGINE=InnoDB;

CREATE TABLE Tags (
Tag_ID SERIAL,
Tag_Title VARCHAR(255)
) ENGINE=InnoDB;

CREATE TABLE Items_Tags (
Item_ID BIGINT UNSIGNED REFERENCES Items (Item_ID),
Tag_ID BIGINT UNSIGNED REFERENCES Tags ( Tag_ID),
PRIMARY KEY (Item_ID, Tag_ID)
) ENGINE=InnoDB;

注意:

  • MySQL 的 SERIAL 数据类型是 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE 的别名,因此被索引;

  • Items_Tags 中定义外键约束会在外键列上创建索引。

关于mysql - 使用 group_concat 标记查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16620480/

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