gpt4 book ai didi

mysql - 哪个更快 - 从 n 列中获取具有大小 t 的单个值的列,或从 1 列中获取大小为 n*t 的列?

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

例如,我有一个“NAMES”表,其中有一个 Name 类型为 varchar(10) 的列;该表有 500 行。我还有一个“NAME_COLLECTIONS”表,其中有一列长文本类型;在表的单行中,该列包含长度为 5500 的字符串。

SELECT * FROM NAMES WHERE :Name = 'Tom'; 的运行速度会比 SELECT * FROM NAME_COLLECTIONS; 慢吗?

增加 NAMES 中的列数与增加 NAME_COLLECTIONS 中单个文本的大小对性能有何影响?

最佳答案

SELECT * FROM NAMES WHERE Name = 'Tom';

假设您在列上有索引(您应该这样做,因为您似乎正在尝试获得最佳性能),这应该会更快。它只需从索引中读取一行,并且该行将占用一页数据。

长文本可能跨越多个数据页,并且每次读取姓名列表都将被迫读取整个集合。

如果您想搜索特定名称,我建议您对数据进行正确建模,每个名称一行。并为该列创建索引。

虽然500行对于MySQL来说微不足道。无论如何,它可能适合内存缓冲池中的几页,因此在获得更大的数据集之前,您不应该专注于性能。

顺便说一句,您的语法 WHERE :Name = 'Tom' 不正确。以冒号为前缀的列名似乎是命名参数占位符,而不是列名。参数占位符只能是固定字符串,不能是列名。

关于mysql - 哪个更快 - 从 n 列中获取具有大小 t 的单个值的列,或从 1 列中获取大小为 n*t 的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42519588/

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