1. 表的大小:如果每个表都有数百万行或更多数据,则可能会对性能产生影响。
2. 数据库服务器硬件配置:如果数据库服务器配置较低,例如内存、CPU等资源不足,则可能无法支持处理这么多表格和数据。
3. 访问模式:如果所有表都经常被同时访问,并且查询涉及到了多个表之间的关联 *** 作,则可能会导致性能问题。
总之,MySQL 100张表可以说是中等规模的系统,在合适的硬件环境下进行优化和管理,应该可以很好地运行。
这么大的表优化是很痛苦的,看你对数据的用途,如果不经常查询、而是频繁的增加,可以考虑定期(每周或者每日)把表中的数据复制到历史表中,清空工作表的数据,这样插入的效率能大大提高,但是查询的时候需要在两个表中进行查询。用于频繁插入数据的工作表要尽量少建索引,用于查询的历史表要多建索引。mysql单数据库对数据表限制数量的问题:1.一个数据库是没有表现值的,或者说这个被限制的值很大
2.一个mysqld服务可以支持的表对象数量是,42亿多点,所以这个限制基本上不需要考虑
从性能考虑的话,一个数据库建立多少张表适合的问题:
1.当一个数据库或实例中,表太多,意味着可能同时需要打开的表,从 *** 作系统角度说就是:文件描述符很多,这个 *** 作系统有限制的,但是可以修改 *** 作系统的内核参数达到
2.多少表性能就会下降,分2点阐述
2.1.分表多,意味着需要维护的表结构和统计信息多,一般情况下此不会成为任何瓶颈,但是太不合理,比如几万甚至更大,可能就有问题了
2.2.性能是否下降明显,最直接的就是:跟服务器的承载能力和数据量有关系,这个是最直接的
3.反问“为何要分很多表”呢?
3.1.分表太多,容易造成程序逻辑复杂,降低性能,以及增加出错的风险点
3.2.若是表中的数据量(指容量,多少GB)很大,只是分表解决不了问题,因为在同一个服务器上,其物理IO能力最优先达到瓶颈
所以,一个数据库建立多少表,这个MYSQL是没有限制的。但是从性能考虑,肯定是有一定影响的,但是从IO和其他服务器性能考虑,这块的性能基本上还不足影响到很大成份。所以建议大家一个数据库建立在二百个表以下,这样也是比较合理的了。影响性能也不大。
但是如果你执意要知道MYSQL能够建立多少个表的话,可以参考以下理论值的资料吧:
在mysql中,每个数据库最多可创建20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度)。
当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)