首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引使用和列类型

索引使用和列类型
EN

Database Administration用户
提问于 2013-03-14 22:06:42
回答 1查看 132关注 0票数 0

我今天被告知,由于列类型的不匹配,具有类似于此的表结构不利于索引的性能。

表1 id - int (7) PK其他.

表2 id int (11)索引(必须在逻辑上存在于表1-尽管不是通过FK强制执行的)其他索引。

我将MySQL与InnoDB结合使用。

例如,我认为这个问题也可能与Varchar 200 vs 220有关。

我知道索引大小将受到每个项目所需的额外空间(以及一般的存储空间)的影响,可能在5-10%的范围内,但是连接发生所需的时间会增加吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-03-14 22:36:39

像对表现不利的短语本质上是毫无意义的。测量是有意义的;意见是,嗯,不是测量。

但是int(7)int(11)都是32位整数.parens中的数字是指显示宽度;它与存储大小或索引大小无关。

对于varchar()列,可以创建一个基于第一个'n‘字符的索引。这个决定对性能有一定的影响,例如,当您在前三个字符索引的列中搜索“wi球”时。还有几个微妙的点,列的类型为“文本”。仔细阅读创建表。(搜索“长度”)

但是,如果您能够度量varchar(200)/varchar(200的连接列和varchar(220)/varchar(200)的连接列的差异,我会感到有点惊讶。也就是说,除了明显的--在varchar(220)列中存储超过200个字符。

有一种简单的方法可以判断:用您最喜欢的脚本语言编写一些代码,生成几百万行示例数据,加载并测试它。把你的结果也发到这里。

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

https://dba.stackexchange.com/questions/36730

复制
相关文章

相似问题

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