MySQL 一个表中的字段太多有什么影响,如查询数据等问题....

MySQL 一个表中的字段太多有什么影响,如查询数据等问题....,第1张

太多是多少?

==========

一般说来没什么大的影响。如果用select * 来查可能会慢一些。内存消耗大些。

查询数据快慢主要还是取决于数据总量及sql语句本身。有没有建立索引,写的sql能否用到索引等等。

百万级是正常范围。

mysql性能主要耗在表间查询,如果没有涉及多个表的 *** 作,性能不会下降太多。

在同一张表内的话,再多也是没问题的。另外,表内也可以指定某字段为索引(创建时指定主键的话会自动创建索引)。这样就可以加速了。

提高性能有很多方面,但最基本的就是,

1.选好字段的数据类型,比如ip地址用整型,不要用字符。时间,日期用mysql给的类型,不要用整型等。这样不仅可以降低数据文件大小,也可以利用mysql的专门针对的优化。

2.索引。这个对性能提升很大,但也比较讲究。尤其用不同的引擎的时候。因为innodb引擎是按索引存,myisam引擎是按数据添加顺序存。基本是要该字段的数据都是唯一的值,类型尽量小等。。。但添加索引会增大表大小。

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


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

原文地址: http://outofmemory.cn/zaji/7296556.html

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

发表评论

登录后才能评论

评论列表(0条)

保存