WordPress DB büyümesini planlamak için iyi bir strateji nedir?


9

Bir WordPress veritabanı büyüdükçe optimizasyon ve performansın üstünde kalmak konusunda bir geri bildirim umuyoruz ... bir resim çizmek için .... diyelim 150kb'den başlayan bir WordPress / Buddypress MU siteniz var (vanilya yüklemesi) ... zamanla kullanıcılar bloglar, forumlar, mesajlar ve yorumlar ekler ve veritabanı 5mb'ye kadar büyür .... sonra 10mb ertesi yıl .... Ayrıca barındırma kontrollerinin Cpanel veya Plesk gibi standart bir ortak yerleştirilmiş kurulum olduğunu varsayarsak.

  • Veritabanındaki girişlerin sayısı, ön uç web sitesinin performansını ne noktada etkiler?
  • Bir web sitesi yöneticisi olarak, veritabanınız büyüdükçe sorunsuz çalışmasını sağlamak için ne yapabilirsiniz?
  • Veritabanınız 500 - 600mb büyük olduğunda, 5. yıldan sonraki performans açısından ne bekleyebilirsiniz?

Sıkı bir gemi tutmaya ilişkin herhangi bir geri bildiriminiz için teşekkürler.

Saygılarımızla,

S.


3
7 soru sordunuz ve sadece 1'i kabul ettiniz. İyi bir kayıt değil. :-(

8
25mb hiçbir şey değildir. GB'lara ulaştıkça veritabanı boyutu konusunda endişeleniyor olmalısınız.
Dunhamzzz

Geri bildiriminiz için teşekkürler. 500 mb'de performansla ilgili sorun yaşıyorsak, muhtemelen hosting şirketimiz o zaman. PS Geri döndü ve sorular arasında cevapları kabul etti.
Simon

Yanıtlar:


4

Özel sorularınız:

1) Bir DB'nin performans etkilenmeden önce içerebileceği "giriş sayısı" için kesin bir sınır yoktur. Performans, DB'nin boyutuna ve yapısına olduğu kadar donanımınıza ve yapılandırmanıza da bağlıdır.

2) DB katmanınızın ölçeklenebilirliği konusunda endişeleriniz varsa, bunu bir kümede veya yeniden boyutlandırmaya izin veren bir bulut kutusunda veya VPS'de çalıştırabilirsiniz. DB'niz yavaşlamaya başlarsa, boyutlandırabilirsiniz (genellikle ek ücrete tabidir). Bu seçenekler maliyet katar, ancak bir DB'nin ölçeklenebilirliğini sağlamanın en iyi yoludur.

3) Bu gerçekten hosting kurulumunuza ve DB mimarinize bağlıdır. Ama genel olarak ( gerçekten ucuz bir kutuda değilseniz ), 30MB'lık bir WordPress veritabanı için endişelenmezdim. WordPress tabloları indekslemek için iyi bir iş çıkarır ve bir OOB MySQL yapılandırması bile bu boyuttaki bir DB'deki WordPress sorgularını kolayca işlemelidir. Gigabytes'e girdiğinizde, o zaman performans optimizasyonu seçeneklerine ciddi bir şekilde bakmanız gerekebilir.

Genel olarak:

Performans konusunda endişeleriniz varsa, mevcut MySQL kurulumunuzu ayarlamaya ve / veya bir önbellek katmanı oluşturmaya odaklanın. Önbellekleme, MySQL üzerindeki yükü büyük ölçüde azaltabilir (özellikle çok sayıda DB sorgusu gerçekleştirdikleri için özellikle WordPress sitelerinde).

Düzgün MySQL ayarlanmış ve iyi bir önbelleğe alma katmanı kurduktan sonra, sen ediyorsanız hala donanım konfigürasyonu outgrowing endişe, zaman x miktar sonra içeriği silme politikası Enstitüsü başladı.

Bunların hiçbiri WordPress'e özgü değildir. Ve sorunun bir LAMP yığınında çalışan herhangi bir web sitesi veya uygulama için geçerli olmayan cevapları olduğundan emin değilim . Ama belki bir başkasının MU tablo yapıları veya diğer WP'ye özgü DB hileleri ile ilgili önerileri var ... Bilmiyorum.


4

Kesinlikle bir MySQL Bakış Açısından, bir MySQL Örneği için verilerin / dizinlerin önbelleğe alınmasının nasıl geliştirileceğine dair önerilerim var.

MySQL için iki büyük Depolama Motoru olduğunu unutmayın

  • MyISAM
  • InnoDB'nin

Önbellekleme mekanizmaları farklıdır. Seçtiğiniz Depolama Motorunu ayarlamak için yapabileceğiniz bir şey var.

MyISAM

MyISAM yalnızca dizin sayfalarını önbelleğe alır. Verileri asla önbelleğe almaz. MyISAM tabloları için G / Ç geliştirmek için iki şey yapabilirsiniz.

MyISAM Geliştirme # 1

VARCHAR sütunları olan herhangi bir MyISAM tablosu, ilk tasarıma dokunmadan dahili olarak CHAR'a dönüştürülebilir. Mydb.mytable adlı bir tablonuz olduğunu ve bunun için G / Ç'yi geliştirmek istediğinizi varsayalım:

ALTER TABLE mydb.mytable ROW_FORMAT=Fixed;

Bu, tablonun boyutunu% 60 -% 100 artıracak, ancak başka bir şey değiştirmeden G / Ç'de% 20-30 performans artışı sağlayacaktır . Bu konuda daha önce DBA StackExchange yazdı:

MyISAM Geliştirme # 2

MyISAM Anahtar Önbelleğini artırmanız gerekir ( key_buffer_size boyutunda ). Bu sorguyu çalıştırın, lütfen:

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;

Bu, mevcut veri kümenize göre ideal key_buffer_size değerini gösterir.

InnoDB'nin

InnoDB hem verileri hem de dizinleri önbelleğe alır. Tüm verilerinizi InnoDB'ye dönüştürdüyseniz ve şu anda tüm InnoDB veritabanından WordPress çalıştırıyorsanız, InnoDB Buffer Pool'unuzu ( innodb_buffer_pool_size ile boyutlandırılmış ) boyutlandırmanız gerekir . Bu sorguyu çalıştırın, lütfen:

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;

Bu, mevcut veri kümenize göre ideal key_buffer_size değerini gösterir.

projeksiyonlar

Veri kümenizin 20 kat daha fazla büyüyeceğini tahmin ederseniz, bu sorgunun 20 ile önerdiğini katlayın. MyISAM veri kümenizin 15 MB ve 3 MB’nin dizinlerinizin toplamı olduğunu varsayalım. 20 kat daha fazla veriye sahip olacağınızı tahmin ediyorsanız, key_buffer_size değerini /etc/my.cnf içinde bunun gibi 60 MB olarak ayarlayın:

[mysqld]
key_buffer_size=60M

ardından MySQL'i yeniden başlatın. Aynı şey InnoDB Buffer Pool için de geçerlidir.

Tüm verileriniz InnoDB ise, StackOverflow'da yayınladığım InnoDB altyapınızın tam bir Temizlemesini gerçekleştirmeniz gerekir .


2

Veritabanındaki girişlerin sayısı, ön uç web sitesinin performansını ne noktada etkiler?

Sorgular, barındırma hesabınızın kaynak sınırına ulaşmaya başladığında.

Bir web sitesi yöneticisi olarak, veritabanınız büyüdükçe sorunsuz çalışmasını sağlamak için ne yapabilirsiniz?

Kaynak kullanımını göz önünde bulundurun. Kaynağı artırmak ve / veya kullanımı optimize etmek için adımlar atın.

Veritabanınız 25 - 30mb büyük olduğunda, 5. yıldan sonra performans açısından ne bekleyebilirsiniz?

Bu küçük veritabanı üzerinde performans değişikliği olmamalıdır.

Sitenizin bu kadar yavaş büyümesini bekliyorsanız, büyümeyi nasıl yöneteceğinizi öğrenmek için bolca zamanınız vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.