gpt4 book ai didi

php - 字符串大小会影响MySQL中的选择查询速度吗?

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

我目前正在设计数据库的结构。计划拥有一个包含数亿行的巨大表(我们称之为 Clicks 表)。它的许多列将被其他表中的外键引用,以减少这个巨大表的大小并减少查询时间。

在其他“引用表”中,我计划存储大部分有关点击的数据。因此,当我查找“点击”表时,我只需加入其中一些引用表即可获取我想了解的有关点击的信息。

第一个问题:就速度而言,这是一个很好的做法吗 - 如果我稍后要在这个巨大的点击表上进行大量选择?

这些较小的引用表将包含数千行,其中大部分包含 1 列字符串类型。这些字符串的长度在 5-50 个字符之间。

我打算做的是,当点击时,我将检查这些小表是否已经存在相同的值,如果不存在,那么我将插入它们。

这需要选择。

第二个问题:是对字符串本身执行搜索并为其建立索引更好,还是我应该使用另一列包含字符串的 MD5 结果并查找 MD5 字符串(带索引)反而?换句话说,字符串的大小是否会影响在简单选择中查找字符串的长度?

我计划像这样进行选择:

SELECT id FROM table1 WHERE string = $string

有没有更好的方法来实现上述目标?

最佳答案

你的设计听起来不错。您希望每个引用表中的字符串都有一个二级索引。

您的描述不清楚您是一次“点击”一次还是批量进行此操作。

我建议对此操作使用批处理方法,除非您对实时数据有迫切的需求。如果您确实需要实时数据,我倾向于提倡“流式”方法,其中通过插入现有表来添加新数据,而不是更新。

如果您每天要单独更新数百万行,那么高峰处理期间的锁定操作可能会代价高昂。如果该表用于分析或报告,则该处理中的查询负载也可能会干扰更新。

关于php - 字符串大小会影响MySQL中的选择查询速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079802/

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