gpt4 book ai didi

mysql - 有什么理由担心表格中的列顺序吗?

转载 作者:IT老高 更新时间:2023-10-28 12:52:20 27 4
gpt4 key购买 nike

我知道你可以用 FIRST 和 AFTER 来改变 MySQL 中的列顺序,但是你为什么要打扰呢?既然好的查询在插入数据时会显式命名列,那么真的有任何理由关心您的列在表中的顺序吗?

最佳答案

列顺序对我调整过的一些数据库有很大的性能影响,包括 Sql Server、Oracle 和 MySQL。这篇文章有 good rules of thumb :

  • 主键列优先
  • 接下来是外键列。
  • 下一个经常搜索的列
  • 以后经常更新的列
  • 可空列最后。
  • 在更频繁使用的可空列之后使用最少的可空列

性能差异的一个例子是索引查找。数据库引擎根据索引中的某些条件找到一行,并取回一个行地址。现在假设您正在寻找 SomeValue,它在此表中:

 SomeId int,
SomeString varchar(100),
SomeValue int

引擎必须猜测 SomeValue 从哪里开始,因为 SomeString 的长度未知。但是,如果您将顺序更改为:

 SomeId int,
SomeValue int,
SomeString varchar(100)

现在引擎知道可以在行开始后 4 个字节找到 SomeValue。因此,列顺序会对性能产生相当大的影响。

编辑:Sql Server 2005 在行首存储固定长度的字段。并且每一行都有一个对 varchar 开头的引用。这完全否定了我上面列出的效果。所以对于最近的数据库,列顺序不再有任何影响。

关于mysql - 有什么理由担心表格中的列顺序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894522/

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