Birden php diziler ya da birleştirmek gerekir?

3 Cevap php

Ben o zaman bir sayfada sadece bir moderatör ayrıcalığı olmalıdır olmadığını belirlemek için () in_array'in kullanabilirsiniz sitemde moderatör / yöneticileri takip etmek için bir User_id numarasını saklamak PHP aşağıda aşağıdaki diziler var, ben bu rakam yerine bir dizi kullanarak bazı mysql sorguları kaydeder.

Yerine ayrı olanlar 1 büyük diziye bu birleştirerek herhangi bir performans artışı olacağını ben, merak ediyorum?

Böylece bir örnek göstermek olabilir, nasıl ben bunları birleştirmek ve bunu kullanabilir miyim?

Belki diğer üzerinden 1 yol için bazı nedenleri sıralayabiliriz?

$moderators = array(1,99,88,77,2,3,4,5);
$bulletin_moderators = array(1,1091,13,103);
$forum_moderators = array(1,1091,34850,13,103,21);
$blog_moderators = array(1,1091,21);
$photo_moderators = array(1,1091,13,34850,103,21);
$chat_moderators = array(1,44534);

3 Cevap

Performans kazanç? No kazanç Onarılabilirlik? Kesinlikle. Bu deneyin:

$roles=array(
    'moderators'          => array(1,99,88,77,2,3,4,5),
    'bulletin_moderators' => array(1,1091,13,103),
    'forum_moderators'    => array(1,1091,34850,13,103,21),
    'blog_moderators'     => array(1,1091,21),
    'photo_moderators'    => array(1,1091,13,34850,103,21),
    'chat_moderators'     => array(1,44534)
);

Yukarıdaki poster olsa söylediğim gibi, bunlar gerçekten hardcoded olmamalıdır. DB sorgu zaman herhangi bir önemli miktarda almak olmaz, ve muhtemelen (eğer mysql kullanmak varsayarak) bellekte veya veritabanının kendisi önbelleğe olacaktır.

Ne fazla kullanıcı eklerseniz? Sen kaynağı düzenlemek gerekir. Ne birden çok sunucu olsaydı? Eğer sunucularında X miktar üzerinde kaynağı düzenlemek gerekir.

Ben bu zaten oldukça aşırı bir optimizasyon olduğunu düşünüyorum. Bunun için açık bir ihtiyaç gösteren bazı kriterler yoksa, sadece roller db tarafı saklamak ve bir sorgu yapmak için hiçbir neden yok. Bu bir saniyenin sadece küçücük bir kısmını almak gerek.

Orada kesinlikle herhangi bir performans artışı olacağını, ancak bununla çok corcerned olmamalıdır. Böyle bir şey genel sayfa performansı üzerinde çok düşük bir etkiye sahiptir.

Şahsen, bunun yerine tüm bu diziler uygulanması, ben kullanıcının izinlerini tüm tutan bir User sınıf oluşturmak istiyorum. Bu sınıfta bir fonksiyonu sayesinde kontrol edin. Normalde, aynı kullanıcı adı ve kullanıcı hakkında başka şeyler gerekir, ve bir kullanıcı nesnesi, tüm bu pekiştirmek için güzel bir yoldur.

Sizin ihtiyaçlarınıza uygun olursa olsun, sayfa yük başında kullanıcı hakkında bilmeniz gereken bir oturumda bunları önbelleğe şeyi yükleyin.