Ben 500.000 kayıtları kadar işleme olabilir, karmaşık bir senaryo çalışıyorum. İşte benim sorum.
Temelde benim kod bu 500.000 kadar kayıtların her almak için bir metin dosyası ayrıştırma olacaktır. Her kayıt bir kategori olacak, benim kod categories
tabloda yeni bir rekor söz konusu işlenirken, bu kategori için yaratılmış olsaydı, kontrol etmek gerekir, ve değilse, bu kaydı yaratacaktır.
Yani 2 seçeneğiniz var:
1) Ben tuşları kategori adını ve kimliğini içeren => değerler bir dizi depolamak, yani ben bunu:
if (array_key_exists($category,$allCategories))
$id=$allCategories[$category];
else
{
mysql_query("INSERT INTO categories (procId,category)
VALUES ('$procId''$category')");
$id=mysql_insert_id();
$allCategories[$category]=$id;
}
2) Bu metin dosyası işlenir her zaman, kendi süreç kimliği alırsınız. Yani oldukça 100.000 + girdileri için büyümek olabilir $allCategories
değişkeni kontrol etmek yerine, bunu yapabilirsiniz:
SELECT id FROM categories WHERE procId='$procId' AND category='$category'
Burada olumsuz bu sorgu 500,000 + kayıtların her biri için çalışacak olmasıdır. Bir dizideki tüm kategoriler tutma dezavantajı bellek veya sunucunun tükendi olmasıdır oysa kaza olabilir.
Herhangi bir düşünce?