witam
Załóżmy sytuację, uzytkownik ma do zaznaczenia zmienną, dużą liczbę checkboxów(np 20-30)
Uzytkownikow pare tysięcy, formularzy skladanych 500-1000 na godzine.
MySQL 5.6, baza na innodb
dane zapiszemy w tabeli
id_usera | id_checkboxa | zaznaczyl (0/1)
mamy index na id_usera
Co z punktu widzenia wydajnosci będzie szybsze w momencie zapisania formularza?
1.
Wyczyszczenie tabeli z poprzenich odpowiedzi (delete * from where id usera)
A następnie w dodanie przeslanych odpowiedzi w jednym duzym insercie (insert into (id,id_checkboxa,zaznaczyl) values (1,2,3)(3,4,5) )
lub
2. sprawdzenie czy sa juz odpowiedzi od tego usera (select count(*) form where id usera)
a ) jesli nie bylo odpowiedzi to w petli php for dla przeslanych odpoweidzi insert kazdej odpowiedzi
lub
b ) jesli są wczesniejsze odpowiedzi to update kazdje z nich w petli for (update ....)
Zastanawia mnie wydajność obu podejść biorąc pod uwagę konieczność aktualizowania indexu w każdym z nich.