如何实现仅对部分数据构建索引?
2021-03-05 09:37
yzsDBA
关注
索引会占用比想象中的还要大的空间,有好几次我向表中添加索引以增加速度,但是对磁盘使用量的快速增长感到震惊。虽然索引是构建在列上,但是并不是每个行记录都需要在索引里面,这是部分索引partial indexes就提供了一个解决方案。
假设在电子商务应用程序的数据库中有一个很大的orders表,包含应用程序中指定的每种类型的订单数据,甚至包括那些未完成的订单。此时应用程序有一个搜索功能,可以根据orders表中的一列进行过滤,但是那些未完成的订单不需要在这个索引中。
创建部分索引时使用WHERE子句,使索引只包含符合条件的行。下面是一个简单示例:
CREATE INDEXorders_completed_user_id ON orders (user_id) WHERE completed IS TRUE;
诚然,在这样的场景中保持的数据量将会很少(user_id可能只是一个整数),但是对于文本列或多列索引,最终节省的磁盘空间将会很大。

声明:
本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
最新活动更多
-
3月27日立即报名>> 【工程师系列】汽车电子技术在线大会
-
即日-4.22立即报名>> 【在线会议】汽车腐蚀及防护的多物理场仿真
-
4月23日立即报名>> 【在线会议】研华嵌入式核心优势,以Edge AI驱动机器视觉升级
-
4月25日立即报名>> 【线下论坛】新唐科技2025新品发布会
-
在线会议观看回放>>> AI加速卡中村田的技术创新与趋势探讨
-
即日-5.15立即报名>>> 【在线会议】安森美Hyperlux™ ID系列引领iToF技术革新
-
10 AI时代,车企营销大变天
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论