gpt4 book ai didi

MYSQL 自动增加一列或只有一个整数,区别?

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

如果我有一列,设置为主索引,设置为INT。

如果我不将其设置为自动递增,而只是将唯一的随机整数插入其中,与自动递增相比,这是否会减慢 future 的查询速度?

如果我在主索引和唯一索引为 INT 的表上运行 OPTIMIZE 会加快速度吗? (假设只有 2 列,第二列只是一些 INT 值)

(主要担心的是自动增量的上限,因为我的表中有很多添加和删除)

最佳答案

If I don't set it as auto increment and just insert random integers which are unique into it, does that slow it down compared to autincrementing?

MyISAM 中,它实际上会加快速度(略微)。

InnoDB 中,由于页面拆分,这可能会减慢 INSERT 操作。

这当然意味着您的号码确实是独一无二的。

Does it speed things up if I optimise a table with its primary and only index as INT? (assuming only 2 columns, and second column is just some INT value)

AUTO_INCREMENTINT 可以一起使用。

OPTIMIZE TABLE 将压缩您的表和索引,释放删除的行和页面拆分留下的空间。如果您在表上有很多 DELETE 操作或乱序 INSERT(例如在您的随机数解决方案中),这将有所帮助。

它还会使索引页的逻辑顺序和物理顺序彼此保持一致,从而加快对 PK 的全扫描或范围查询(PK BETWEEN val1 AND val2),但对于随机查找几乎没有影响。

(the main worry is the upper limit on the autoincrement as theres lots of adds and deletes in my table)

BIGINT UNSIGNED(也可以与 AUTO_INCREMENT 一起使用)最多可以容纳 18446744073709551615 的值。

关于MYSQL 自动增加一列或只有一个整数,区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539734/

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