mysql数据库表的数量会不会影响性能?

键盘浪人 发布于 2015/01/03 21:13
阅读 2K+
收藏 2
mysql+PHP,如果mysql的表越建越多会不会影响其中的性能,之前是50多个表,现在70多个表了,可能后面还会增加。现在很郁闷,mysql表的数量到底会不会影响性能,查询速度会不会下降等。望大牛们多多指教。希望详情点!
加载中
1
eechen
eechen
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_table_definition_cache
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_table_open_cache

table_definition_cache是表定义信息缓存,用来存放表定义信息.当我们的MySQL中使用了较多的表的时候,此缓存无疑会提高对表定义信息的访问效率.注意,这里设置的是可以缓存的表定义信息的数目,而不是内存空间的大小.

table_open_cache是打开表的缓存数量,不是定义内存的大小,而是定义可以缓存多少打开的表的文件句柄信息.如果定义的太小,那么MySQL在需要打开新表的时候就要不断的关闭已经打开的表和打开此次需要打开的表,性能会受到影响.

mysql -uroot -p -e "show variables" | egrep 'table_definition_cache|table_open_cache'
MySQL5.6的默认值:
table_definition_cache    1400
table_open_cache    2000
table_definition_cache 默认值为1400,计算公式为400+(table_open_cache/2),此时mysqld内存占用为430MB左右,已经能够容纳足够多的表结构缓存了.
0
蔡佳娃
蔡佳娃
当然不会了,如果表多是因为设计不合理,导致表之间的关系复杂化,对这些表的操作肯定会有影响,但从数据库这层面说,还是不需要多虑
返回顶部
顶部