一般来说,你拥有的东西越多,性能就会降低。然而,200 似乎是一个相当小的数字。2,000 可能是真正的性能打击,绝对是 20,000。但是,一般而言,您应该保持表的数量较少,因为 MySQL 可以处理表中非常多的行。
小智 5
一般来说,200 个表应该不是问题,但这取决于很多事情。
专用 MySQL 服务器与与其他软件共享的服务器、128Mb 与 128Gb RAM 等、具有少量记录的小表与具有 blob 和数百万行的表。
MySQL 有多种设置和多个引擎,每个引擎以不同的方式影响表的性能。
MyISAM 通常每个表有三个文件 .frm、.MYD、.MYI
正常模式下的 INNODB 具有 .frm,所有数据都存储在中央文件中
INNODB 在一个文件中每表模式有 .frm、.idb
table_open_cache 是可以同时打开的表数(默认 64)。这可能需要大于模式中的表数,因为它与查询数据库的连接数有关。100 个连接加入 3 个表可能意味着您缓存了 300 个表以及任何临时表。通常,模式或连接越复杂,数字越大。
open-files-limit 我倾向于将其设置为 4x table_open_cache,这应该是慷慨的,而不是费心计算出一个确切的值。
mysql 用户的操作系统文件句柄限制也可能是一个问题(在 linux 上,默认值通常是 1024,ulimit -n 显示用户限制)这可能会导致大量表的问题,当它小于数量时mysql 需要。这应该至少与 open-files-limit 相同。
与任何数据库一样,您可以调整数百个调整参数以针对您的特定模式优化数据库。MySQL 在这方面比大多数更糟糕,因为如果你想要 NDB 集群引擎,你可以插入额外的引擎。
http://dev.mysql.com/doc/refman/5.1/en/table-cache.html
希望能帮助到你
归档时间: |
|
查看次数: |
24236 次 |
最近记录: |