有一个庞大的MySQL数据库,其数据权重高达数百of。它遇到了性能问题。表的垂直和水平分区是提高性能的可能途径。
在您看来,将这个数据库分成几个数据库是否也有利于提高性能?
该项目基于Rails
发布于 2010-01-16 01:00:10
对于InnoDB存储类型,您可以指定将每个表存储在单独的文件中
http://www.electrictoolbox.com/mysql-innodb-one-file-per-table/
这将帮助您的文件系统为您的表制定缓存策略。
发布于 2010-01-19 22:05:39
“它遇到性能问题”是一种症状,而不是根源。现在是时候做一些数据库分析并找出瓶颈了。找到运行时间最长的查询(是对一个表的查询,还是对12个表的查询,是不是更新,等等),看看你需要做什么。你对数据库有多大的控制权?当然,这也将决定你能做什么和不能做什么。
如果数据的某个子集被更频繁地访问,也许您可以将其合并到影子表中-更小的表,访问速度会更快。
你可以索引更多/更少/其他东西。
有很多选择!但到底哪里出了问题?:)
发布于 2010-01-16 18:44:51
你可能想看看你的存储类型。根据您的数据库使用情况,您可能希望切换到另一个存储引擎。http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html
您还可以考虑使用memcached来为内存中的数据提供服务。关于mysql文档也有一个很好的解释:http://dev.mysql.com/doc/refman/5.0/en/ha-memcached.html。
https://stackoverflow.com/questions/2071673
复制相似问题