Tartışmadan gelen yorumların bir kısmını yeniden ifade edip yeniden biçimlendirme ile bir cevaba taşımak.
Temel olarak, bunun aşağısı şudur: süper aşırı bir durumunuz olmadığı sürece, gerçekten “toplanmış çöpler” olmaları gerekmez. Onları asla getirmezseniz, onların orada olup olmadıklarının önemi yoktur.
Görüyorsunuz, geçici olanlar seçenekler tablosunda varsayılan olarak saklanıyor. Bir temel kurulumda, seçenekler tablosunda 100 giriş olabilir. Her geçici iki giriş daha ekler, ancak binlerce tane olsa bile, otomatik olarak yüklenmediklerinden site hızını etkilemezler.
Başlangıçta, WordPress seçenekleri belleğe yükler, ancak yalnızca otomatik yükleme bayrağı açık olan seçenekleri yükler. Geçici olanlar bunu anlamıyor ve hafızaya yüklenmiyorlar. Yalnızca daha sonra gerçekten kullanılan geçici olaylar bir maliyete neden olur.
Veritabanına göre, seçenekler tablosunda hem seçenek kimliği hem de seçenek adı üzerinde dizinler bulunur. Geçici olaylar her zaman adı (anahtar) temel alarak yüklenir ve bu nedenle, bunlar için yapılan aramalar her zaman basit bir benzersiz anahtar değer seçer. Böylece arama O (log (n)) ve süper hızlıdır. Büyük O kütüğüyle (n), farkedilmeden önce milyonlarca ve milyonlarca sıraya girmeniz gerekir. Açıkçası, gerçek veri aktarımı ile birlikte sorgunun kurulumunda ve aranmasında genel gider daha uzun sürüyor. Sorgu, karşılaştırma yaparak aslında sıfır zamanda çalışır. Yani basitçe sahip ekstra disk alanı kullanarak başka bir şey etkilemez ekstra kullanılmayan satırları.
Veritabanlarında indeksleme, sahnelerin gerisinde neler olup bittiğini anlamayan insanlara mantıklı gelmeyen derinlemesine düşünülmüş fikirlerden biridir. Veritabanları sıfırdan hızlı veri alımı için tasarlanmıştır ve bu tür şeyleri sorunsuzca halledebilir. Bu oldukça iyi bir okuma: http://en.wikipedia.org/wiki/Index_(database )
Şimdi, en belirgin şekilde temizleme (üzerlerinde SQL DELETE çağırmak) aslında onları veritabanından silmez. Sadece dizinden kaldırır ve satırı "silindi" olarak işaretler. Yine, bu sadece veritabanlarının nasıl çalıştığıdır. Disk alanını gerçekten temizlemek için devam etmeli ve daha sonra OPTİMİZE TABLOSU yapmalısınız ve bu hızlı bir işlem değildir. O zaman alır. Muhtemelen değdiğinden daha fazla zaman. Toplamda CPU zamanından tasarruf etmek için muhtemelen yeterli değildir.
Kullanılmayan yeni geçici olayların sürekli olarak eklenmesine neden olan bir durum varsa, bunun yerine bunun altında yatan sorunu bulmanız gerekir. Bu geçici olayları ne ekliyor? Değişen veya mutasyona uğramış bir anahtar mı kullanıyorlar? Öyleyse, buna neden olan eklenti veya kodun, temelde bunu yapmaması için sabitlenmesi gerekir. Bu daha yararlı olacaktır, çünkü onları doğru şekilde oluşturmayan kodun da onları almadığı ve bu nedenle yapması gerekenden daha fazla iş yaptığı muhtemeldir.
Öte yandan, her yazı gibi bir şey için geçici olayların yaratıldığı bir durum olabilir. Bu gerçekten de tamamen kabul edilebilir olabilir. Bunu Facebook'tan gelen yorumları saklamak için SFC'de yapıyorum. Her gönderi, kendisiyle ilişkili potansiyel bir geçici süreye sahiptir, bu da gönderi başına iki ekstra satır anlamına gelir. 10k yayınınız varsa, seçenekler tablosunda (sonunda) 20k satırınız olur. Bu kötü ya da yavaş değildir, çünkü yine de, veritabanlarının gerçekten umursadığı sürece 100 satır ile 20.000 satır arasında çok az bir fark vardır. Her şey endekslendi. Heck kadar hızlı. Alt alt milisaniye.
Milyonlarca sıraya girmeye başladığınızda , o zaman endişelenirim. Seçenekler tablosu yüzlerce megabaytın üstüne çıktığında, daha yakından bakmak için yeterince endişeliyim. Ancak genel olarak konuşursak, bu aşırı durumlar dışında bir sorun değildir. Bu, kesinlikle yüz binlerce yayın içeren büyük bir haber sitesi gibi bir şeyden daha küçük bir şey için önemli değil. Ve sorun yaratabilecek kadar büyük herhangi bir site için, bir tür harici nesne önbellek kullanıyor olmalısınız ve bu durumda, geçici veriler veritabanında otomatik olarak orada saklanır.