Ben büyük bir veritabanından veri almak için çalışıyorum. Ben birkaç yüz binlerce kayıtları ile iki tablo var. Daha sonra kayıt zaten 3 tablo varsa o zaman ben 3 tablodaki bir sütun kaydı güncellemek zorunda, yeni bir tablo (3 tablo) bu kayıt eklediğinizde iki tablodaki verileri aramak zorunda.
Bu kolay geliyor, ama bu süreç çok uzun sürüyor.
Aşağıda örnek sorgular ve sahte kod şunlardır:
select * from table1 INNER JOIN table2 USING(id)
search in table 3 ->
if record exist{
update record in table 3 (update counter in a column)
}else{
Insert new record in table 3
}
Birinci ve ikinci tablo fazla iki yüz bin kayıtları vardır. Ben 3. tabloda kayıt ekleme başlangıç olarak sonra da bir kaydı güncelleştirmek veya eklemek için 3. tabloda aramak zorunda çünkü bütün hız öldürür.
Database Name = MySql
Language = Php
Sorun nedir? Bunu nasıl artırabilir? Bunu işlemek için saat sabırsızlanıyorum: (
Teşekkürler
EDIT:
Tablo 3, id birincil anahtarı vardır ve diğer tüm sütunları normaldir. Veritabanı şeması çok büyük bir artı karmaşık. Siz burada hatları yüz yapıştırın istiyorsun?
Siz benim sahte kod ve sorguda hata işaret mutlu edebilirsiniz? Ne endeksi veya yapısı I performansını artırmak için kullanabilir?
Structure
Table 1 - usr_id, first name, last name (usr_id is primary key)
Table 2 - id, usr_id, amount (id is primary key and usr_id is foreign key)
Table 3 - new_id , first name, last name, usr_id, total_amount (new_id is primary key and usr_id is foreign key
)
Tablo 3 sonra bunlar farklı ise o zaman yeni bir kayıt eklemek, toplam tutarı güncellemek aynı ad ve soyadı varsa ben kontrol