Ben 9 milyon IP'leri bir listesi var ve karma tabloları bir dizi, ben belirli bir IP bu listede olup olmadığını döndüren bir sabit zaman işlevi yapabilirsiniz. PHP bunu yapabilir miyim? Eğer öyleyse, nasıl?
Bu soru hakkında ilginç şey gidebilirsiniz yönde sayısıdır.
Önbelleğe alma çünkü verilerin büyük bir set ve üzerinde sorguları nispeten düşük sayıda en iyi seçenek ise emin değilim. İşte birkaç fikir.
1) Build a ram disk. Ramdisk bölüm kullanmak için MySQL veritabanı tablo bağlamak. Ben bu hiç denemedim, ama denemek için eğlenceli olurdu.
2) Linux, genellikle çok hızlı bir dosya sistemi vardır. Dosyalarının içine kayıtları kırılır yapılandırılmış bir dosya sistemi oluşturmak, ve sadece file_get_contents () veya file_exists () arayın. Tabii ki bu çözüm de eğlenceli olacağını dosya sistemi, inşa etmek ve korumak için gerektirecektir. rsync bugüne kadar canlı dosya sistemini tutmak yararlı olabilir.
Örnek:
/002/209/001/299.txt
<?
$file = $this->build_file_from_ip($_GET['ip']);
if(file_exists($file)) {
// Execute your code.
}
?>
Eğer böyle bir NoSQL çözüm denedim Redis? Tüm veri seti bellekte yönetilmektedir.
İşte bazıları benchmarks.