栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

列顺序对我已调优的某些数据库(包括Sql
Server,Oracle和MySQL)产生了很大的性能影响。这篇文章有很好的经验法则:

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

性能差异的一个示例是索引查找。数据库引擎根据索引中的某些条件查找行,然后获取行地址。现在说您正在寻找Somevalue,它在此表中:

 SomeId int, SomeString varchar(100), Somevalue int

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

 SomeId int, Somevalue int, SomeString varchar(100)

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416479.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号