MySQL字段个数限制与性能影响

MySQL字段个数限制与性能影响,第1张

mysql最多可以多少个字段? 答:1024个字段(一般可能没这么多) mysql每行的数据长度最大是多少? 答:8092字节 mysql每个库最多可以有多少个表? 答:20亿个表 mysql的查询速度会被字段数量影响吗?有没有简单点的优化方案呢? 答:肯定会影响的的,不然就不会有垂直分表这一说了 实际上垂直分表不仅仅是把字段按数量分开,还要按类型分开 经常被显示的单独一个表.比如cms新闻系统的标题,摘要,所属分类,缩略图 这些字段不管是在首页的列表还是分类页的列表。是显示频率很高的。 并且这些字段的长度都是有一定的规律的。 基本上不会太长,所以单独一个表。 定长和不定长的字段尽可能的分开。比如文章的正文。 一般情况下在列表页是不会显示的。所以就没必要查询。 可以放到副表中去。 新闻系统的主表中,尽可能的只使用定长字段。比如int 或 char 如果只使用定长字段 速度会有明显的提升。 这是为什么呢? 因为mysql的数据储存在硬盘中, 查询的时候如果你告诉他每个数据的长度, 那么系统就会直接按照长度计算出数据的位置。所以快 如果其中有一列的数据长度是未知的。 系统只能一点点的去找。所以慢。

可以不限制,如果你不设置mysql会根据所选字段选择默认长度的。

例如:char型。默认长度是255,但是你所存储的数据只需要10个字符。这样的话其余的245个字符就浪费了,而且还站着空间,不能存储其他的任何东西了。用一句俗话说就是“占着茅坑不拉屎”。

所以设置字段长度的其中一个好处就是节省空间,按需所取。

char是定长的,声明一个char字段时需要指定长度,比如字段声明为char(10),这个字段的值就最长10个字符,最短可以没有,不论实际存储的内容有没有到10个字符,这个字段在存储上总是占用10个字符的空间,最大支持到255

varchar 是不定长的,比如声明一个字段为varchar(20),那么这个字段实际占用的控件是动态的,并不是固定的占用20个字符的空间,最大支持到65535

text一般用于存放超长的文本时使用,text字段不能设置默认值,最大支持2的16次方长度

一般情况下对于固定长度的字段使用char来存放,查询性能会好,比如手机号这种,固定长度的

比如存储页面地址这种不定长度的,就使用varchar类型存储,非固定长度的值能用varchar存储的,就不要用text,text的检索效率实在不好


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8444088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存