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

低选择性色谱柱的索引和替代方法

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

低选择性色谱柱的索引和替代方法

我同意非理性的 不过 分支。但是,这种情况下有些事情要知道。

这称为歪斜和歪斜杀死。这对于部分索引是一种完美的用法,在该索引中,您将排除95%的已付款发票,而仅对更有趣和更具选择性的统计信息进行索引。但是你没有。您可以将所有行水平划分到单独的表/分区中,但随后需要考虑行迁移(从一种状态迁移到另一种状态),这很昂贵。DBMS必须执行更新,删除和插入才能更改状态。如果您使用的是大容量系统,那将会很痛苦。

忘记您关于是否基于选择性建立索引的说法,因为将索引放在快速变化的列上通常也是一个坏主意。您的索引将包含热块,其中所有步骤1都将被删除,另一个将所有步骤2都将被插入,并且顺便说一句,某些步骤2同时被删除到了步骤3中。这将无法很好地扩展。

我建议将您的状态垂直划分到一个单独的表中。

您的发票表将包含一个PK和除状态之外的所有列。

您可以通过两种方式处理您的身份。该表将具有PK值作为返回发票表的FK,状态以及您输入该状态时的时间戳。最好的是关于状态的水平分区表。您将为每个可能的状态分配一个分区。因此,找到全部或一个“已放置”状态将对修剪进行分区,并仅读取所需的分区-
这是很少的块。由于该行非常狭窄,因此您可能在单个块上获得400个发票状态。查找任何一张发票的状态都很容易,因为PK上有一个全局索引。

如果RDBMS不支持通过行迁移进行分区,则需要将这些分区作为表进行管理,然后从一个表中删除并插入另一个表中。您将把这些移动封装在一个过程的事务中,以便保持数据干净。每张发票都在一个且只有一个状态表中。较难的部分是按发票ID查询,您必须检查每个表以查看其位置。

您还有另一种选择。
您可以写或不写付费状态。如果它是分区表,则只需将其移至已付款状态,就可以从发票状态表中删除该发票。(当然,您会在奖金材料中提到的历史记录表中写一个付费记录)。然后,您将对状态表进行外部连接,并且null表示已支付。如果您几乎从未查询过付费状态,那么实际上没有理由进行快速查询。

奖金材料

无论哪种情况,您都希望在报告表中跟踪这些运动。每次更新状态时,您都希望将其写入历史记录表。最终,您将需要分析我所说的运输时间。从满额到有薪的平均时间是多少个月?由于经济不景气,这种情况会增加吗?从放置到填充的运输时间(以月为单位)是多少?夏季是否因为假期遗失身体而花费更长的时间?你明白了。通过更新该列,您将丢失这些答案,因此您需要将该历史记录日志嵌入到您的过程中。



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

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

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