首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解与同一行中的索引列和非索引列数据相关的索引和性能。

理解与同一行中的索引列和非索引列数据相关的索引和性能。
EN

Stack Overflow用户
提问于 2017-08-03 18:02:16
回答 1查看 338关注 0票数 0

我有一些大约100列宽的桌子。我还没有将它们归一化,因为要将它们重新组合起来将需要将近30多个连接,并且不确定它是否会表现得更好……还没有测试(我会),所以不能肯定。

不管怎么说,这不是问题。我一直在为这些表中的列编制索引,我知道这些列会被频繁地提取,因此每个表大约有50个索引。

不过我得考虑一下。如果没有主键(基本上是一个项目号),这些列将永远不会被自己拉出来,并且是没有意义的。PK将始终用于连接,即使在简单的SELECT查询中,它也必须是指定的列,因此数据是有意义的。

这让我进一步思考了指数以及它们是如何工作的。据我所理解,值的位置被提交到该列的内存中,因此在查询中很快就能找到。

例如,如果您有:

代码语言:javascript
运行
复制
SELECT itemnumber, expdate
FROM items;

而且itemnumberexpdate都是索引的,这是否过分,是否真的增加了任何好处?仅仅索引itemnumber就足够了,索引就会知道expdate或为该项查询的其他任何内容都在同一行中吗?

其次,如果多列构成主键,索引是将它们组合在一起,还是单独地进行分组?

例如,

代码语言:javascript
运行
复制
CREATE INDEX test_index ON table (pk_col1, pk_col2, pk_col3);

代码语言:javascript
运行
复制
CREATE INDEX test_index1 ON table (pk_col1);
CREATE INDEX test_index2 ON table (pk_col2);
CREATE INDEX test_index3 ON table (pk_col3);

谢谢你提前把它清理干净!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45491514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档