gpt4 book ai didi

sql - 页拆分?这个怎么运作?

转载 作者:行者123 更新时间:2023-12-04 16:03:11 25 4
gpt4 key购买 nike

  • 页拆分是否会影响索引或表中数据的物理排序?示例:如果您有一个已编入索引的电子邮件列并且经常发生页面拆分,那么地址中的电子邮件是否会在列表中出现乱序,而现在不再是有序的?
  • 页面拆分/碎片如何与被删除的主键记录一起工作?示例:如果您有下表,主键是数字。
    1, bob, chair
    2, joe, table
    3, brandon, lamp
    4, jared, tv

  • 假设您删除记录 3。现在表读取 1、2、4(乱序),然后记录 3 稍后重新插入?然后它将读取 1,2,4,3。记录 4 会占用记录 3 的空间还是保留以备稍后重新插入记录 3 时使用?或者您是否必须执行索引重建以对其进行物理重新排序?

    谢谢

    最佳答案

    1.) 聚集索引是一个逻辑顺序而不是物理顺序,避免试图将其视为真正的物理顺序,索引和存储之间的抽象层次太多,无法考虑物理顺序。 (盘区分配、文件组、磁盘/Lun 上的碎片、Lun 本身——所有这些都使物理顺序的概念不正确。)

    页面拆分以维护逻辑顺序的方式进行处理,表的正向/反向双链表链接页面被更新以考虑按“顺序”插入它的新页面。

    2.) 物理顺序 vs 逻辑 - 再一次,不要再考虑物理顺序了,即使行在同一页上,页的槽数组也是维护页本身数据实际顺序的数组。因此,虽然在页面上它可能以 1,2,4,3 结束,槽数组将是 4,3,2,1(槽数组从页面末尾开始并向后读取) - 空间是否重新- 使用与否并不重要,因为它将处理页面上的偏移位置与通过该数组维护的顺序。

    Impaler 提到使用主键的自动增量值 - 主键和聚集键不必是同一件事,而我同意你经常使用身份字段作为聚集键 - 主键应该是根据需要和可用的候选键单独考虑。

    SQL Server 如何在存储级别工作是一个相当复杂的话题,我个人会推荐 Kalen Delaney 的书,尽管其他书也可用。

    关于sql - 页拆分?这个怎么运作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49957355/

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