Tema: Need nuomonės iš šono - DB
Autorius: NicMC
Data: 2011-12-07 12:31:19
Sveiki,

Yra centrinis DB serveris, yra Ndešimt klientų. Susijungimus klientai 
laiko atidarytus. Kiekvienas klientas lockina teiblą, selectina vieną 
įrašą, ištrina, unlockina. Apdoroja (kelios sekundės) ir rezultatą 
insertina į kitą teiblą.
Visa tai pakurta ant MySQL, storage - MyISAM, indeksas tik ant primary 
key (nėra ten ką indexuot, FIFO ir basta).
Problema - nuo ~150000 įrašų lentoje bendras sistemos našumas juntamai 
pradeda mažėti.

Labai welcome bet kokios nuomonės kaip ir ką geriau tvarkyti. Kol kas 
variantai - hardware upgrade / kita DBMS / tik vienas klientas į DB, 
kuris pats QUEUE managementą darytų. O gal tiesiog InnoDB vietoj MyISAM 
ir transakcijas naudot?

Užduotis elementari - vieni softai per vieną galą grūda į DB įrašus, 
kiti softai per kitą galą juos valgo. Esminis momentas - reikalinga 
garantija, kad nei vienas valgantis klientas negaus įrašo, kurį ką tik 
gavo kitas klientas.

Taip, suprantu, ne DB darbas čia. Tiesiog softas maitinantis įrašais - 
nepajudinamas, max galima ODBC kitą pakišti.