Ben 90GB + tablo optimize doğru bir adım atmak için çalışıyorum:
Old Table
Her gün masa yaklaşık kapmak. 750,000 harici bir kaynaktan kayıtları ve yeni tarih ile masaya ekler. Bu ne anlamak itibaren üç yıl boyunca devam etmektedir. Kayıtların% 97 bir sonraki günden için değişmez.
New Table
Ben eski masa (milyonlarca ve milyonlarca kayıt) geçmesi ve büyük olasılıkla oldukça dramatik tablo boyutunu azaltacaktır fazlalığını ortadan kaldırmak için çalışıyorum.
old_table
- tarih
- record_id
- data_field (gerçekten çok alan, ancak örnek uğruna)
new_table_index
- tarih
- index_id
new_table
- index_id
- record_id
- data_field
Logic as we go through each record in old_table
(record_id new_table değil) veya (record_id new_table olduğunu, ancak bunun son giriş farklı data_field vardır) varsa
new_table takın ve index_id olsun
başka
new_table_index o record_id için son giriş index_id olsun
her zaman
new_table_index içine index_id ve tarih eklemek
Bunu yapmak için en uygun yolları üzerinde herhangi bir düşünce? Hep birlikte bu koymak için MySQL ile yeterince gelişmiş değilim. PHP bir senaryo yazmaya çalıştım zaman 3GB bellek kadar kullanılan ve daha sonra başarısız oldu. Diğer öneriler veya sorgular?? Çok teşekkürler!