gpt4 book ai didi

mysql - 将索引添加到 MySQL 中的 BIGINT 列会有所帮助吗?

转载 作者:可可西里 更新时间:2023-11-01 07:23:09 26 4
gpt4 key购买 nike

我有一个包含数百万个条目的表,以及一个包含每行唯一的 BIGINT(20) 值的列。它们不是主键,但在某些操作期间,有数千个 SELECTWHERE 子句中使用此列。

问:当条目数量增长到数百万时,向该列添加索引是否有帮助?我知道它适用于文本值,但我不熟悉索引对 INTBIGINT 的作用。

将发生数千次的示例 SELECT 与此类似:

`SELECT * FROM table1 WHERE my_big_number=19287319283784

最佳答案

如果您有一个非常大的表,那么搜索未索引的值可能会非常慢。在 MySQL 术语中,这种查询最终成为“表扫描”,也就是说它必须按顺序测试表中的每一行。这显然不是最好的方法。

添加索引将有助于提高读取 速度,但您付出的代价是写入 速度稍慢。进行优化时总是需要权衡取舍,但在您的情况下,读取时间的减少将是巨大的,而写入时间的增加将是微不足道的。

请记住,向大型表添加索引可能会花费大量时间,因此在将其应用到您的生产系统之前,请针对生产数据进行测试。该表可能会在 ALTER TABLE 语句期间被锁定。

一如既往,在您的查询中使用EXPLAIN 来确定它们的执行策略。在你的情况下它会是这样的:

EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784

关于mysql - 将索引添加到 MySQL 中的 BIGINT 列会有所帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13367797/

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