希望在WordPress数据库增长的同时,能够得到一些关于优化和保持性能的反馈。画一幅画..。假设您有一个WordPress / Buddypress MU站点,起始于150 at (香草安装).随着时间的推移,用户添加博客、论坛、帖子和评论,数据库增长到5MB.接下来的一年.还假设宿主控件是标准的协同设置,如Cpanel或Plesk。
谢谢你的反馈意见,你可能会保持紧密的船。
致以敬意,
S.
发布于 2012-05-29 18:33:21
1)在性能受到影响之前,DB可能包含的“条目数”没有严格限制。性能既取决于您的硬件和配置,也取决于DB的大小和结构。
2)如果您担心DB层的可伸缩性,可以在集群中运行它,或者在允许调整大小的云盒或VPS上运行它。如果您的DB开始变得迟钝,您可以进行评估(尽管通常需要额外的成本)。这些选项增加了成本,但实际上是确保DB可伸缩性的最佳方法。
3)这取决于您的主机设置和DB体系结构。但是通常(除非你在一个非常便宜的盒子上),我不会担心一个30 in的WordPress数据库。WordPress在索引表方面做得很好,即使是OOB MySQL配置也可以轻松地处理这样大小的DB上的WordPress查询。当你进入千兆字节时,你可能需要认真考虑性能优化选项。
一般情况下
如果您担心性能问题,请集中精力调优现有的MySQL设置和/或设置缓存层。缓存可以大大减轻MySQL上的负担(特别是对于WordPress站点,因为它们通常执行大量DB查询)。
如果在对MySQL进行了适当的调优并设置了一个像样的缓存层之后,您仍然担心硬件配置的增长会超过您的配置,那么您可以制定一项在x时间之后删除内容的策略。
所有这些东西都不是WordPress特有的。我不确定这个问题是否有任何答案不适用于任何在台灯堆上运行的网站或应用程序。但也许其他人对MU表结构或其他特定于WP的DB技巧有建议.我不知道。
发布于 2012-06-05 19:58:36
严格地说,从MySQL的角度来看,我对如何改进MySQL实例的数据/索引缓存提出了建议。
请记住,MySQL有两个主要的存储引擎
它们的缓存机制是不同的。对于您选择的存储引擎,您可以做一些调整。
MyISAM只缓存索引页。它从不缓存数据。您可以做两件事来改进MyISAM表的I/O。
任何具有VARCHAR列的MyISAM表都可以在内部转换为CHAR,而无需触及初始设计。假设您有一个名为mydb.mytable的表,并且您希望改进它的I/O,那么在它上执行以下操作:
ALTER TABLE mydb.mytable ROW_FORMAT=Fixed;这将增加表的大小60%-100%,但将产生20-30%的I/O性能增加而不改变任何其他。我以前在DBA StackExchange中写过这样的文章:
您需要增加MyISAM键缓存(按钥匙大小)。请运行此查询:
SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','mysql','performance_schema')) AA ) A,
(SELECT 2 PowerOf1024) B;这将显示基于当前数据集的理想key_buffer_size。
InnoDB缓存数据和索引。如果您将所有数据转换为InnoDB,并且目前正在从全InnoDB数据库运行WordPress,则需要调整InnoDB缓冲池的大小(使用诺姆b大小)。请运行此查询:
SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 2 PowerOf1024) B;这将显示基于当前数据集的理想key_buffer_size。
如果您预测数据集将增长20倍,则只需将此查询建议的值乘以20。假设您的MyISAM数据集为15 3MB,而3MB是您的索引的总和。如果您估计有20倍的数据,那么在/etc/my.cnf中将key_buffer_size设置为60 in:
[mysqld]
key_buffer_size=60M然后重新启动MySQL。同样的情况也适用于InnoDB缓冲池。
如果所有数据都是InnoDB,则需要执行全面清理您的InnoDB基础设施,这是我在StackOverflow中发布的。
发布于 2012-05-29 17:09:34
数据库中的条目数量在什么程度上会影响前端网站的性能?
当查询开始达到托管帐户的资源限制时。
作为一个网站经理,你能做些什么来保持数据库增长的顺利运行呢?
注意资源的使用情况。采取措施增加资源和/或优化使用。
当数据库大小为25-30MB时,在第五年之后,您能期望获得什么样的性能呢?
在那个小小的数据库上,性能应该不会改变。
如果您期望您的网站增长缓慢,那么您就有足够的时间来学习如何管理增长。
https://wordpress.stackexchange.com/questions/53634
复制相似问题